VirtualBox

Changeset 83784 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Apr 17, 2020 11:30:24 PM (5 years ago)
Author:
vboxsync
Message:

Main/Makefile.kmk: Work around midl bugs preventing spaces in /cpp_cmd (not fixed in more recent versions). bugref:8489

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/Makefile.kmk

    r82968 r83784  
    14291429endef
    14301430
     1431# Tricks to work around midl.exe problems with spaces in the /cpp_cmd value, it
     1432# forgets to quote it when creating the commandline and cl.exe gets very confused.
     1433if1of (quote, $(KBUILD_FEATURES))
     1434VBOX_MIDL_REDIRECT     = $(REDIRECT) -E "$(quote-sh-dq PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN);$(PATH))" --
     1435VBOX_MIDL_REDIRECT_X86 = $(REDIRECT) -E "$(quote-sh-dq PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN);$(PATH))" --
     1436else
     1437VBOX_MIDL_REDIRECT     = $(REDIRECT) -E 'PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN);$(PATH)' --
     1438VBOX_MIDL_REDIRECT_X86 = $(REDIRECT) -E 'PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN);$(PATH)' --
     1439endif
     1440VBOX_MIDL_CPP_CMD      = $(lastword $(notdir ,$(subst $(EXEC_X86_WIN32),,$(TOOL_$(VBOX_VCC_TOOL)_CC))))
     1441VBOX_MIDL_CPP_CMD_X86  = $(lastword $(notdir ,$(subst $(EXEC_X86_WIN32),,$(TOOL_$(VBOX_VCC_TOOL_STEM)X86_CC))))
     1442
    14311443# Note! Because we've got a different proxy stub DLL for pre windows 7 64-bit hosts, we target windows 7 for AMD64.
    14321444#       The output is different and hopefully more efficient, at least memory wise (using more helpers in OLE32).
     
    14391451+ $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
    14401452        $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
    1441         $(VBOX_WIN_MIDL) /nologo /W4 \
     1453        $(VBOX_MIDL_REDIRECT) $(VBOX_WIN_MIDL) /nologo /W4 \
    14421454                /env $(if-expr "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.amd64" ,amd64,win32) \
    14431455                /robust /protocol all /target $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),NT61,NT51) \
    14441456                /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM_0_OUTDIR)) \
    1445                 /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
     1457                /cpp_cmd $(VBOX_MIDL_CPP_CMD) \
    14461458                /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_$(VBOX_WINPSDK)_INC)) \
    14471459                /I idl \
     
    14631475+ $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
    14641476        $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
    1465         $(VBOX_WIN_MIDL) /nologo /W4 \
     1477        $(VBOX_MIDL_REDIRECT) $(VBOX_WIN_MIDL) /nologo /W4 \
    14661478                $(if-expr "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.amd64" \
    14671479                ,/env amd64 /x64 /target NT50 /robust \
    14681480                ,/env win32      /target NT51 /robust /protocol all ) \
    14691481                /out $(call VBOX_FN_MAKE_WIN_PATH,$(dir $@)) \
    1470                 /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
     1482                /cpp_cmd $(VBOX_MIDL_CPP_CMD) \
    14711483                /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_$(VBOX_WINPSDK)_INC)) \
    14721484                /I idl \
     
    14851497+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
    14861498        $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
    1487         $(VBOX_WIN_MIDL) /nologo /W4 \
     1499        $(VBOX_MIDL_REDIRECT_X86) $(VBOX_WIN_MIDL) /nologo /W4 \
    14881500                /env win32 /target NT51 /robust /protocol all  \
    14891501                /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)) \
    14901502                /tlb $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb) \
    1491                 /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL_STEM)X86_CC))) \
     1503                /cpp_cmd $(VBOX_MIDL_CPP_CMD_X86) \
    14921504                /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_$(VBOX_WINPSDK)_INC)) \
    14931505                /I idl \
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette