msvs-build: use msbuild for vs >= 2005 allows concurrent builds via the /m command line option Change-Id: I668792ba00276e8626dc175c0a44ddab35fc7114
diff --git a/build/make/gen_msvs_sln.sh b/build/make/gen_msvs_sln.sh index 5a8c793..f9fc694 100755 --- 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