ref: 2908091342ec11becf9500cb1c77a15c3c8b7c4f
parent: 94c481f9f17828db0d4b8b4f2549bc5ff1075cf8
parent: 73c4e284872efaa231bcc70a99b90ebe210e64ba
author: James Zern <jzern@google.com>
date: Fri Jul 12 06:59:35 EDT 2013
Merge "msvs-build: use msbuild for vs >= 2005"
--- a/build/make/gen_msvs_sln.sh
+++ b/build/make/gen_msvs_sln.sh
@@ -74,8 +74,13 @@
# 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 @@
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 @@
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
--
⑨