flags('midl.compile.idl', 'MIDLFLAGS', [ar + '/<address-model>64' for ar in architecture_x86], ['/x64']) flags('midl.compile.idl', 'MIDLFLAGS', ['<architecture>ia64/' + m for m in address_model_64], ['/ia64']) flags('midl.compile.idl', 'DEFINES', [], ['<define>']) flags('midl.compile.idl', 'UNDEFS', [], ['<undef>']) flags('midl.compile.idl', 'INCLUDES', [], ['<include>']) builtin.register_c_compiler('midl.compile.idl', ['IDL'], ['MSTYPELIB', 'H', 'C(%_i)', 'C(%_proxy)', 'C(%_dlldata)'], []) # MIDL does not always generate '%_proxy.c' and '%_dlldata.c'. This behavior # depends on contents of the source IDL file. Calling TOUCH_FILE below ensures # that both files will be created so bjam will not try to recreate them # constantly. get_manager().engine().register_action( 'midl.compile.idl', '''midl /nologo @"@($(<[1]:W).rsp:E= "$(>:W)" -D$(DEFINES) "-I$(INCLUDES)" -U$(UNDEFS) $(MIDLFLAGS) /tlb "$(<[1]:W)" /h "$(<[2]:W)" /iid "$(<[3]:W)" /proxy "$(<[4]:W)" /dlldata "$(<[5]:W)")" {touch} "$(<[4]:W)" {touch} "$(<[5]:W)"'''.format(touch=common.file_creation_command()))
[ar + '/<address-model>64' for ar in architecture_x86], ['/x64']) flags('midl.compile.idl', 'MIDLFLAGS', ['<architecture>ia64/' + m for m in address_model_64], ['/ia64']) flags('midl.compile.idl', 'DEFINES', [], ['<define>']) flags('midl.compile.idl', 'UNDEFS', [], ['<undef>']) flags('midl.compile.idl', 'INCLUDES', [], ['<include>']) builtin.register_c_compiler( 'midl.compile.idl', ['IDL'], ['MSTYPELIB', 'H', 'C(%_i)', 'C(%_proxy)', 'C(%_dlldata)'], []) # MIDL does not always generate '%_proxy.c' and '%_dlldata.c'. This behavior # depends on contents of the source IDL file. Calling TOUCH_FILE below ensures # that both files will be created so bjam will not try to recreate them # constantly. get_manager().engine().register_action( 'midl.compile.idl', '''midl /nologo @"@($(<[1]:W).rsp:E= "$(>:W)" -D$(DEFINES) "-I$(INCLUDES)" -U$(UNDEFS) $(MIDLFLAGS) /tlb "$(<[1]:W)" /h "$(<[2]:W)" /iid "$(<[3]:W)" /proxy "$(<[4]:W)" /dlldata "$(<[5]:W)")" {touch} "$(<[4]:W)" {touch} "$(<[5]:W)"'''.format(touch=common.file_creation_command()))
flags("midl.compile.idl", "DEFINES", [], ["<define>"]) flags("midl.compile.idl", "UNDEFS", [], ["<undef>"]) flags("midl.compile.idl", "INCLUDES", [], ["<include>"]) builtin.register_c_compiler("midl.compile.idl", ["IDL"], ["MSTYPELIB", "H", "C(%_i)", "C(%_proxy)", "C(%_dlldata)"], []) # MIDL does not always generate '%_proxy.c' and '%_dlldata.c'. This behavior # depends on contents of the source IDL file. Calling TOUCH_FILE below ensures # that both files will be created so bjam will not try to recreate them # constantly. get_manager().engine().register_action( "midl.compile.idl", '''midl /nologo @"@($(<[1]:W).rsp:E= "$(>:W)" -D$(DEFINES) "-I$(INCLUDES)" -U$(UNDEFS) $(MIDLFLAGS) /tlb "$(<[1]:W)" /h "$(<[2]:W)" /iid "$(<[3]:W)" /proxy "$(<[4]:W)" /dlldata "$(<[5]:W)")" {touch} "$(<[4]:W)" {touch} "$(<[5]:W)"'''.format( touch=common.file_creation_command() ), )