summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-05 03:16:09 +0000
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-05 03:16:09 +0000
commita1c90cf694d1bd315cdc36f80148992a9c3c3b4e (patch)
tree7b545b5edb8397611e7f457c4548aa5ef2ba92a2
parent473f57d42eb9934ce612f1ebde94754276b84ae7 (diff)
downloadedk2-platforms-a1c90cf694d1bd315cdc36f80148992a9c3c3b4e.tar.xz
Added pre-compiled header support for compiling source code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1448 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--Tools/Conf/BuildMacro.xml63
1 files changed, 58 insertions, 5 deletions
diff --git a/Tools/Conf/BuildMacro.xml b/Tools/Conf/BuildMacro.xml
index bad774ec4b..0de9f321f3 100644
--- a/Tools/Conf/BuildMacro.xml
+++ b/Tools/Conf/BuildMacro.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
@@ -60,11 +60,25 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</targetfiles>
<sequential>
+ <!-- Use pre-compiled header if available -->
+ <if>
+ <and>
+ <equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
+ <available file="${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ </and>
+ <then>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ </then>
+ <else>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
+ </else>
+ </if>
+
<cc userdefine="on">
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
<EXTRA.INC/>
- <argument value="${CC_FLAGS}"/>
+ <argument value="${LOCAL_CC_FLAGS}"/>
<EXTRA.ARG/>
<fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
</command>
@@ -118,11 +132,22 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</targetfiles>
<sequential>
+ <!-- Generate pre-compiled header -->
+ <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"/>
+ </then>
+ <else>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
+ </else>
+ </if>
+
<cc userdefine="on">
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
<EXTRA.INC/>
- <argument value="${CC_FLAGS}"/>
+ <argument value="${LOCAL_CC_FLAGS}"/>
<EXTRA.ARG/>
<fileset casesensitive="on" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
</command>
@@ -575,11 +600,25 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</targetfiles>
<sequential>
+ <!-- Use pre-compiled header if available -->
+ <if>
+ <and>
+ <equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
+ <available file="${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ </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"/>
+ </then>
+ <else>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
+ </else>
+ </if>
+
<cc userdefine="on">
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"
includepathDelimiter="-I"
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">
- <argument value="${CC_FLAGS}"/>
+ <argument value="${LOCAL_CC_FLAGS}"/>
<EXTRA.INC />
<fileset casesensitive="on" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
</command>
@@ -637,11 +676,25 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<EXTRA.INC/>
</vfrcompile>
+ <!-- Use pre-compiled header if available -->
+ <if>
+ <and>
+ <equals arg1="${CC_FAMILY}" arg2="MSFT" casesensitive="false"/>
+ <available file="${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ </and>
+ <then>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
+ </then>
+ <else>
+ <var name="LOCAL_CC_FLAGS" value="${CC_FLAGS}"/>
+ </else>
+ </if>
+
<cc userdefine="on">
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}"
includepathDelimiter="-I" family="${CC_FAMILY}"
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >
- <argument value="${CC_FLAGS}"/>
+ <argument value="${LOCAL_CC_FLAGS}"/>
<EXTRA.INC/>
<EXTRA.ARG/>
<fileset casesensitive="on" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>