msvs-build: use msbuild for vs >= 2005

allows concurrent builds via the /m command line option

Change-Id: I668792ba00276e8626dc175c0a44ddab35fc7114
This commit is contained in:
James Zern 2013-04-05 19:30:15 -07:00
parent 7494bba66b
commit 73c4e28487

View File

@ -74,8 +74,13 @@ parse_project() {
# assume that all projects have the same list of possible configurations,
# so overwriting old config_lists is not a problem
config_list=`grep -A1 '<Configuration' $file |
grep Name | cut -d\" -f2`
if [ "$sfx" = "vcproj" ]; then
config_list=`grep -A1 '<Configuration' $file |
grep Name | cut -d\" -f2`
else
config_list=`grep -B1 'Label="Configuration"' $file |
grep Condition | cut -d\' -f4`
fi
proj_list="${proj_list} ${var}"
}
@ -168,9 +173,14 @@ process_makefile() {
IFS=$'\r'$'\n'
local TAB=$'\t'
cat <<EOF
found_devenv := \$(shell which devenv.com >/dev/null 2>&1 && echo yes)
ifeq (\$(CONFIG_VS_VERSION),7)
MSBUILD_TOOL := devenv.com
else
MSBUILD_TOOL := msbuild.exe
endif
found_devenv := \$(shell which \$(MSBUILD_TOOL) >/dev/null 2>&1 && echo yes)
.nodevenv.once:
${TAB}@echo " * devenv.com not found in path."
${TAB}@echo " * \$(MSBUILD_TOOL) not found in path."
${TAB}@echo " * "
${TAB}@echo " * You will have to build all configurations manually using the"
${TAB}@echo " * Visual Studio IDE. To allow make to build them automatically,"
@ -195,16 +205,17 @@ ${TAB}rm -rf "$platform"/"$config"
ifneq (\$(found_devenv),)
ifeq (\$(CONFIG_VS_VERSION),7)
$nows_sln_config: $outfile
${TAB}devenv.com $outfile -build "$config"
${TAB}\$(MSBUILD_TOOL) $outfile -build "$config"
else
$nows_sln_config: $outfile
${TAB}devenv.com $outfile -build "$sln_config"
${TAB}\$(MSBUILD_TOOL) $outfile -m -t:Build \\
${TAB}${TAB}-p:Configuration="$config" -p:Platform="$platform"
endif
else
$nows_sln_config: $outfile .nodevenv.once
${TAB}@echo " * Skipping build of $sln_config (devenv.com not in path)."
${TAB}@echo " * Skipping build of $sln_config (\$(MSBUILD_TOOL) not in path)."
${TAB}@echo " * "
endif