import property-set ; import feature : feature ; feature threadapi : win32 pthread : optional propagated ; rule get-default ( property-set ) { local api = pthread ; if [ $(property-set).get ] = windows { api = win32 ; } return $(api) ; } rule detect ( properties * ) { local ps = [ property-set.create $(properties) ] ; local api = [ $(ps).get ] ; if ! $(api) { api = [ get-default $(ps) ] ; } return $(api) ; }