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

Target level precompiled header support for VCC100*.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.