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/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
Note: See TracChangeset for help on using the changeset viewer.