@ -3327,6 +3327,7 @@ class Interpreter(InterpreterBase, HoldableObject):
kwargs [ ' include_directories ' ] = self . extract_incdirs ( kwargs )
kwargs [ ' include_directories ' ] = self . extract_incdirs ( kwargs )
if targetclass is build . Executable :
if targetclass is build . Executable :
kwargs = T . cast ( ' kwtypes.Executable ' , kwargs )
if kwargs [ ' gui_app ' ] is not None :
if kwargs [ ' gui_app ' ] is not None :
if kwargs [ ' win_subsystem ' ] is not None :
if kwargs [ ' win_subsystem ' ] is not None :
raise InvalidArguments . from_node (
raise InvalidArguments . from_node (
@ -3337,6 +3338,21 @@ class Interpreter(InterpreterBase, HoldableObject):
if kwargs [ ' win_subsystem ' ] is None :
if kwargs [ ' win_subsystem ' ] is None :
kwargs [ ' win_subsystem ' ] = ' console '
kwargs [ ' win_subsystem ' ] = ' console '
if kwargs [ ' implib ' ] :
if kwargs [ ' export_dynamic ' ] is False :
FeatureDeprecated . single_use ( ' implib overrides explict export_dynamic off ' , ' 1.3.0 ' , self . subprojct ,
' Do not set ths if want export_dynamic disabled if implib is enabled ' ,
location = node )
kwargs [ ' export_dynamic ' ] = True
elif kwargs [ ' export_dynamic ' ] :
if kwargs [ ' implib ' ] is False :
raise InvalidArguments ( ' " implib " keyword " must not be false if " export_dynamic " is set and not false. ' )
kwargs [ ' implib ' ] = True
if kwargs [ ' export_dynamic ' ] is None :
kwargs [ ' export_dynamic ' ] = False
if kwargs [ ' implib ' ] is None :
kwargs [ ' implib ' ] = False
target = targetclass ( name , self . subdir , self . subproject , for_machine , srcs , struct , objs ,
target = targetclass ( name , self . subdir , self . subproject , for_machine , srcs , struct , objs ,
self . environment , self . compilers [ for_machine ] , kwargs )
self . environment , self . compilers [ for_machine ] , kwargs )