VirtualBox

Changeset 2954 in kBuild


Ignore:
Timestamp:
Sep 21, 2016 7:04:45 PM (8 years ago)
Author:
bird
Message:

Target level precompiled header support for VCC100*.

Location:
trunk/kBuild
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/tools/VCC100.kmk

    r2953 r2954  
    108108TOOL_VCC100_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    109109
     110
     111# General Properties used by kBuild
    110112TOOL_VCC100_COBJSUFF         ?= .obj
    111113TOOL_VCC100_CFLAGS           ?= -TC -nologo -Zi
     
    188190# @param    $(outbase)  Output basename (full). Use this for list files and such.
    189191# @param    $(objsuff)  Object suffix.
    190 TOOL_VCC100_COMPILE_CXX_DEPEND =
     192TOOL_VCC100_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    191193TOOL_VCC100_COMPILE_CXX_DEPORD =
    192194TOOL_VCC100_COMPILE_CXX_OUTPUT =
    193 TOOL_VCC100_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100_PDB, $(outbase)-obj,idb)
     195TOOL_VCC100_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     196        ,,$(call TOOL_VCC100_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100_PDB, $(outbase)-obj,idb))
    194197define TOOL_VCC100_COMPILE_CXX_CMDS
    195198        $(QUIET)$(TOOL_VCC100_CXX) -c\
    196199                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    197                 -Fd$(outbase)-obj.pdb \
     200                $(if-expr defined($(target)_VCC_PCH_HDR)\
     201                ,-FI$($(target)_VCC_PCH_HDR) -Yu$($(target)_VCC_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     202                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    198203                -Fo$(obj)\
    199204                $(subst /,\\,$(abspath $(source)))
    200205        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    201206endef
     207
     208
     209#
     210# Helper tool for creating the precompiled C++ header.
     211#
     212# It only have the C++ compile bits and it's purpose is to skip bits
     213# related _1_VCC_PCH_FILE and add -Yc.
     214#
     215TOOL_VCC100-PCH                         := Helper for creating precompiled header using CXX handling.
     216TOOL_VCC100-PCH_EXTENDS                 := VCC100
     217TOOL_VCC100-PCH_CXXOBJSUFF              := .obj
     218TOOL_VCC100-PCH_CXXINCS                  = $(TOOL_VCC100_CXXINCS)
     219TOOL_VCC100-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     220TOOL_VCC100-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     221TOOL_VCC100-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     222TOOL_VCC100-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     223ifdef TOOL_VCC100_KSUBMIT
     224 define TOOL_VCC100-PCH_COMPILE_CXX_CMDS
     225        $(QUIET)$(TOOL_VCC100_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     226                -- $(TOOL_VCC100_CXX) -c -Yc\
     227                $(filter-out $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     228               -Fp$($(target)_1_VCC_PCH_FILE) \
     229                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     230                -Fo$(obj)\
     231               -TP \
     232                $(subst /,\\,$(abspath $(source)))
     233 endef
     234else
     235 define TOOL_VCC100-PCH_COMPILE_CXX_CMDS
     236        $(QUIET)$(TOOL_VCC100_CXX) -c -Yc\
     237                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     238               -Fp$($(target)_1_VCC_PCH_FILE) \
     239                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     240                -Fo$(obj)\
     241               -TP \
     242                $(subst /,\\,$(abspath $(source)))
     243        $(QUIET)$(DEP_OBJ) -f -s -q  -e .pch -o $(dep) -t $(obj) $(obj)
     244
     245 endef
     246endif # !TOOL_VCC100_KSUBMIT
     247
    202248
    203249## @todo configure the assembler template.
     
    250296        $(QUIET)$(TOOL_VCC100_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    251297endef
    252 
    253 
    254298
    255299
  • trunk/kBuild/tools/VCC100AMD64.kmk

    r2953 r2954  
    106106TOOL_VCC100AMD64_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    107107
     108
     109# General Properties used by kBuild
    108110TOOL_VCC100AMD64_COBJSUFF         ?= .obj
    109111TOOL_VCC100AMD64_CFLAGS           ?= -TC -nologo -Zi
     
    192194# @param    $(outbase)  Output basename (full). Use this for list files and such.
    193195# @param    $(objsuff)  Object suffix.
    194 TOOL_VCC100AMD64_COMPILE_CXX_DEPEND =
     196TOOL_VCC100AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    195197TOOL_VCC100AMD64_COMPILE_CXX_DEPORD =
    196198TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT =
    197 TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb)
     199TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     200        ,,$(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb))
    198201ifdef TOOL_VCC100AMD64_KSUBMIT
    199202 TOOL_VCC100AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     
    202205                -- $(TOOL_VCC100AMD64_CXX) -c\
    203206                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    204                 -Fd$(outbase)-obj.pdb \
     207                $(if-expr defined($(target)_VCC_PCH_HDR)\
     208                ,-FI$($(target)_VCC_PCH_HDR) -Yu$($(target)_VCC_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     209                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    205210                -Fo$(obj)\
    206211                $(subst /,\\,$(abspath $(source)))
     
    210215        $(QUIET)$(TOOL_VCC100AMD64_CXX) -c\
    211216                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    212                 -Fd$(outbase)-obj.pdb \
     217                $(if-expr defined($(target)_VCC_PCH_HDR)\
     218                ,-FI$($(target)_VCC_PCH_HDR) -Yu$($(target)_VCC_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     219                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    213220                -Fo$(obj)\
    214221                $(subst /,\\,$(abspath $(source)))
     
    216223 endef
    217224endif # !TOOL_VCC100AMD64_KSUBMIT
     225
     226
     227#
     228# Helper tool for creating the precompiled C++ header.
     229#
     230# It only have the C++ compile bits and it's purpose is to skip bits
     231# related _1_VCC_PCH_FILE and add -Yc.
     232#
     233TOOL_VCC100AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
     234TOOL_VCC100AMD64-PCH_EXTENDS                 := VCC100AMD64
     235TOOL_VCC100AMD64-PCH_CXXOBJSUFF              := .obj
     236TOOL_VCC100AMD64-PCH_CXXINCS                  = $(TOOL_VCC100AMD64_CXXINCS)
     237TOOL_VCC100AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     238TOOL_VCC100AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     239TOOL_VCC100AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     240TOOL_VCC100AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     241ifdef TOOL_VCC100AMD64_KSUBMIT
     242 define TOOL_VCC100AMD64-PCH_COMPILE_CXX_CMDS
     243        $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     244                -- $(TOOL_VCC100AMD64_CXX) -c -Yc\
     245                $(filter-out $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     246               -Fp$($(target)_1_VCC_PCH_FILE) \
     247                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     248                -Fo$(obj)\
     249               -TP \
     250                $(subst /,\\,$(abspath $(source)))
     251 endef
     252else
     253 define TOOL_VCC100AMD64-PCH_COMPILE_CXX_CMDS
     254        $(QUIET)$(TOOL_VCC100AMD64_CXX) -c -Yc\
     255                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     256               -Fp$($(target)_1_VCC_PCH_FILE) \
     257                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     258                -Fo$(obj)\
     259               -TP \
     260                $(subst /,\\,$(abspath $(source)))
     261        $(QUIET)$(DEP_OBJ) -f -s -q  -e .pch -o $(dep) -t $(obj) $(obj)
     262
     263 endef
     264endif # !TOOL_VCC100AMD64_KSUBMIT
     265
    218266
    219267## @todo configure the assembler template.
  • trunk/kBuild/tools/VCC100X86.kmk

    r2953 r2954  
    187187# @param    $(outbase)  Output basename (full). Use this for list files and such.
    188188# @param    $(objsuff)  Object suffix.
    189 TOOL_VCC100X86_COMPILE_CXX_DEPEND =
     189TOOL_VCC100X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    190190TOOL_VCC100X86_COMPILE_CXX_DEPORD =
    191191TOOL_VCC100X86_COMPILE_CXX_OUTPUT =
    192 TOOL_VCC100X86_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb)
     192TOOL_VCC100X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     193        ,,$(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb))
    193194ifdef TOOL_VCC100X86_KSUBMIT
    194195 TOOL_VCC100X86_COMPILE_CXX_DONT_PURGE_OUTPUT = 1 # speed
     
    197198                -- $(TOOL_VCC100X86_CXX) -c\
    198199                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    199                 -Fd$(outbase)-obj.pdb \
     200                $(if-expr defined($(target)_VCC_PCH_HDR)\
     201                ,-FI$($(target)_VCC_PCH_HDR) -Yu$($(target)_VCC_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     202                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    200203                -Fo$(obj)\
    201204                $(subst /,\\,$(abspath $(source)))
     
    205208        $(QUIET)$(TOOL_VCC100X86_CXX) -c\
    206209                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    207                 -Fd$(outbase)-obj.pdb \
     210                $(if-expr defined($(target)_VCC_PCH_HDR)\
     211                ,-FI$($(target)_VCC_PCH_HDR) -Yu$($(target)_VCC_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     212                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    208213                -Fo$(obj)\
    209214                $(subst /,\\,$(abspath $(source)))
     
    211216 endef
    212217endif # !TOOL_VCC100X86_KSUBMIT
     218
     219
     220#
     221# Helper tool for creating the precompiled C++ header.
     222#
     223# It only have the C++ compile bits and it's purpose is to skip bits
     224# related _1_VCC_PCH_FILE and add -Yc.
     225#
     226TOOL_VCC100X86-PCH                         := Helper for creating precompiled header using CXX handling.
     227TOOL_VCC100X86-PCH_EXTENDS                 := VCC100X86
     228TOOL_VCC100X86-PCH_CXXOBJSUFF              := .obj
     229TOOL_VCC100X86-PCH_CXXINCS                  = $(TOOL_VCC100X86_CXXINCS)
     230TOOL_VCC100X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     231TOOL_VCC100X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     232TOOL_VCC100X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     233TOOL_VCC100X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     234ifdef TOOL_VCC100X86_KSUBMIT
     235 define TOOL_VCC100X86-PCH_COMPILE_CXX_CMDS
     236        $(QUIET)$(TOOL_VCC100X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     237                -- $(TOOL_VCC100X86_CXX) -c -Yc\
     238                $(filter-out $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     239               -Fp$($(target)_1_VCC_PCH_FILE) \
     240                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     241                -Fo$(obj)\
     242               -TP \
     243                $(subst /,\\,$(abspath $(source)))
     244 endef
     245else
     246 define TOOL_VCC100X86-PCH_COMPILE_CXX_CMDS
     247        $(QUIET)$(TOOL_VCC100X86_CXX) -c -Yc\
     248                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     249               -Fp$($(target)_1_VCC_PCH_FILE) \
     250                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     251                -Fo$(obj)\
     252               -TP \
     253                $(subst /,\\,$(abspath $(source)))
     254        $(QUIET)$(DEP_OBJ) -f -s -q  -e .pch -o $(dep) -t $(obj) $(obj)
     255
     256 endef
     257endif # !TOOL_VCC100X86_KSUBMIT
     258
    213259
    214260## @todo configure the assembler template.
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