Ignore:
Timestamp:
Jan 23, 2014, 8:12:43 PM (5 years ago)
Author:
sean@…
Message:

mpi-1.0: add mpi.enforce_variant proc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dports/_resources/port1.0/group/mpi-1.0.tcl

    r116345 r116346  
    151151}
    152152
     153proc mpi.enforce_variant {args} {
     154    foreach portname $args {
     155        if {![catch {set result [active_variants $portname "" ""]}]} {
     156            set otmpi  [mpi_active_variant_name $portname]
     157            set mympi  [mpi_variant_name]
     158
     159            if {$otmpi ne "" && $mympi eq ""} {
     160                default_variants +$otmpi
     161            } elseif {$otmpi ne $mympi} {
     162                ui_error "Install $portname +$mympi"
     163                return -code error "$portname +$mympi not installed"
     164            }
     165
     166            compilers.enforce_c $portname
     167        }
     168    }
     169}
     170
     171# only run this if mpi is chosen
     172pre-fetch {
     173    if {${compilers.require_fortran} && [mpi_variant_isset]} {
     174        set mpif [fortran_active_variant_name ${mpi.name}]
     175        set myf  [fortran_variant_name]
     176
     177        if {$myf eq "g95" && $myf ne $mpif} {
     178            ui_error "${mpi.name} has a different fortran variant ($mpif) than the selected $myf"
     179            return -code error "${mpi.name} needs the $myf variant"
     180        }
     181    }
     182}
     183
    153184proc mpi_variant_isset {} {
    154185    return [expr {[mpi_variant_name] ne ""}]
Note: See TracChangeset for help on using the changeset viewer.