summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-21 06:31:33 +0000
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-21 06:31:33 +0000
commitf88b9153c0a1e442e14e4a3afe0401eec06fec06 (patch)
treeafb50640def8ce26fcbc4d62fbc664f97beb6f39 /Tools
parent55bfa0f1aea986c67ba87905ccbb2df8b69fad0b (diff)
downloadedk2-f88b9153c0a1e442e14e4a3afe0401eec06fec06.zip
edk2-f88b9153c0a1e442e14e4a3afe0401eec06fec06.tar.gz
edk2-f88b9153c0a1e442e14e4a3afe0401eec06fec06.tar.bz2
Changed the way of generating the pre-compiled header to solve incremental build issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1587 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools')
-rw-r--r--Tools/Conf/BuildMacro.xml52
1 files changed, 45 insertions, 7 deletions
diff --git a/Tools/Conf/BuildMacro.xml b/Tools/Conf/BuildMacro.xml
index a0b2346..c08039d 100644
--- a/Tools/Conf/BuildMacro.xml
+++ b/Tools/Conf/BuildMacro.xml
@@ -64,10 +64,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<if>
<and>
<equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
- <available file="${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <available file="${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</and>
<then>
- <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</then>
<else>
<var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
@@ -113,6 +113,44 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
<if>
+ <available type="file" file="${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
+ <then>
+ <makedeps DepsFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep">
+ <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>
+ <EXTRA.INC/>
+ </makedeps>
+ </then>
+ </if>
+
+ <OnDependency>
+ <sourcefiles>
+ <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>
+ </sourcefiles>
+ <targetfiles>
+ <file Name="${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
+ </targetfiles>
+
+ <sequential>
+ <!-- Generate pre-compiled header -->
+ <if>
+ <equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
+ <then>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /TC /Yc /Fp${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
+ <cc userdefine="on">
+ <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"
+ outputFile="${DEST_DIR_OUTPUT}/AutoGen.h.obj">
+ <EXTRA.INC/>
+ <argument value="${LOCAL_CC_FLAGS}"/>
+ <EXTRA.ARG/>
+ <fileset casesensitive="on" file="${DEST_DIR_DEBUG}/AutoGen.h"/>
+ </command>
+ </cc>
+ </then>
+ </if>
+ </sequential>
+ </OnDependency>
+
+ <if>
<available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
<then>
<makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
@@ -136,7 +174,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<if>
<equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
<then>
- <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yc${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</then>
<else>
<var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
@@ -605,10 +643,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<if>
<and>
<equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
- <available file="${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <available file="${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</and>
<then>
- <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yc${DEST_DIR_DEBUG}/AutoGen.h /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yc${DEST_DIR_DEBUG}/AutoGen.h /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</then>
<else>
<var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
@@ -682,10 +720,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<if>
<and>
<equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
- <available file="${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <available file="${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</and>
<then>
- <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.h.gch"/>
</then>
<else>
<var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>