Ticket #43431: py-oursql.diff

File py-oursql.diff, 3.2 KB (added by ryandesign (Ryan Carsten Schmidt), 6 years ago)

a simpler example of the proposed db-variant-generation code

  • python/py-oursql/Portfile

    diff --git a/python/py-oursql/Portfile b/python/py-oursql/Portfile
    index bc7e351add..fbf9b4c62c 100644
    a b if {${name} ne ${subport}} { 
    4747                            sha256  58c12b577804b1d0174536ed075d31d27346aa9efc686482f99b265e5a1fa984
    4848    }
    4949
    50     variant mysql5 conflicts mysql51 mysql55 mysql56 mariadb percona description {Build with MySQL 5} {
    51         depends_lib-append  port:mysql5
    52         build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql5/bin/mysql_config
    53     }
    54     variant mysql51 conflicts mysql5 mysql55 mysql56 mariadb percona description {Build with MySQL 5.1} {
    55         depends_lib-append  port:mysql51
    56         build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql51/bin/mysql_config
    57     }
    58     variant mysql55 conflicts mysql5 mysql51 mysql56 mariadb percona description {Build with MySQL 5.5} {
    59         depends_lib-append  port:mysql55
    60         build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql55/bin/mysql_config
    61     }
    62     variant mysql56 conflicts mysql5 mysql51 mysql55 mariadb percona description {Build with MySQL 5.6} {
    63         depends_lib-append  port:mysql56
    64         build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql56/bin/mysql_config
    65     }
    66     variant mariadb conflicts mysql5 mysql51 mysql55 mysql56 percona description {Build with MariaDB} {
    67         depends_lib-append  port:mariadb
    68         build.env-append    MYSQL_CONFIG=${prefix}/lib/mariadb/bin/mysql_config
     50    set db_ports {mariadb mariadb-10.0 mariadb-10.1 mariadb-10.2 mysql51 mysql55 mysql56 mysql57 percona}
     51    set db_variants [string map {- {}} ${db_ports}]
     52    proc db_variant_isset {} {
     53        global db_variants
     54        foreach db_variant ${db_variants} {
     55            if [variant_isset ${db_variant}] {
     56                return yes
     57            }
     58        }
     59        return no
    6960    }
    70     variant percona conflicts mysql5 mysql51 mysql55 mysql56 mariadb description {Build with Percona} {
    71         depends_lib-append  port:percona
    72         build.env-append    MYSQL_CONFIG=${prefix}/lib/percona/bin/mysql_config
     61    foreach db_port ${db_ports} {
     62        set db_type [regsub -nocase {[^a-z].*$} ${db_port} {}]
     63        set db_index [lsearch -exact ${db_ports} ${db_port}]
     64        set db_variant [lindex ${db_variants} ${db_index}]
     65        set db_conflicts [lreplace ${db_variants} ${db_index} ${db_index}]
     66        variant ${db_variant} description "Build with ${db_port}" conflicts {*}${db_conflicts} "
     67            depends_lib-append  port:${db_port}
     68            build.env-append    MYSQL_CONFIG=${prefix}/lib/${db_port}/bin/mysql_config
     69        "
    7370    }
    7471
    75     proc no_variant_set {} {
    76         return [expr {!([variant_isset mysql5] || [variant_isset mysql51] ||
    77                         [variant_isset mysql55] || [variant_isset mysql56] ||
    78                         [variant_isset mariadb] || [variant_isset percona])}]
    79     }
    80     if {[no_variant_set]} {
    81         default_variants +mysql5
     72    if {![db_variant_isset]} {
     73        default_variants +mariadb10.2
    8274    }
    8375    pre-fetch {
    84         if {[no_variant_set]} {
     76        if {![db_variant_isset]} {
    8577            return -code error "Variant selection required"
    8678        }
    8779    }