| Index: third_party/libvpx/source/libvpx/build/make/gen_msvs_sln.sh
|
| diff --git a/third_party/libvpx/source/libvpx/build/make/gen_msvs_sln.sh b/third_party/libvpx/source/libvpx/build/make/gen_msvs_sln.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..ffa370666cb0aeb6b738303974a71e0d98264c19
|
| --- /dev/null
|
| +++ b/third_party/libvpx/source/libvpx/build/make/gen_msvs_sln.sh
|
| @@ -0,0 +1,324 @@
|
| +#!/bin/bash
|
| +##
|
| +## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
| +##
|
| +## Use of this source code is governed by a BSD-style license
|
| +## that can be found in the LICENSE file in the root of the source
|
| +## tree. An additional intellectual property rights grant can be found
|
| +## in the file PATENTS. All contributing project authors may
|
| +## be found in the AUTHORS file in the root of the source tree.
|
| +##
|
| +
|
| +
|
| +self=$0
|
| +self_basename=${self##*/}
|
| +EOL=$'\n'
|
| +EOLDOS=$'\r'
|
| +
|
| +show_help() {
|
| + cat <<EOF
|
| +Usage: ${self_basename} [options] file1 [file2 ...]
|
| +
|
| +This script generates a Visual Studio 2005 solution file from a list of project
|
| +files.
|
| +
|
| +Options:
|
| + --help Print this message
|
| + --out=outfile Redirect output to a file
|
| + --ver=version Version (7,8,9,10,11) of visual studio to generate for
|
| + --target=isa-os-cc Target specifier
|
| +EOF
|
| + exit 1
|
| +}
|
| +
|
| +die() {
|
| + echo "${self_basename}: $@" >&2
|
| + [ -f "${outfile}" ] && rm -f ${outfile}{,.mk}
|
| + exit 1
|
| +}
|
| +
|
| +die_unknown(){
|
| + echo "Unknown option \"$1\"." >&2
|
| + echo "See ${self_basename} --help for available options." >&2
|
| + [ -f "${outfile}" ] && rm -f ${outfile}{,.mk}
|
| + exit 1
|
| +}
|
| +
|
| +indent1=$'\t'
|
| +indent=""
|
| +indent_push() {
|
| + indent="${indent}${indent1}"
|
| +}
|
| +indent_pop() {
|
| + indent="${indent%${indent1}}"
|
| +}
|
| +
|
| +parse_project() {
|
| + local file=$1
|
| + if [ "$sfx" = "vcproj" ]; then
|
| + local name=`grep Name "$file" | awk 'BEGIN {FS="\""}{if (NR==1) print $2}'`
|
| + local guid=`grep ProjectGUID "$file" | awk 'BEGIN {FS="\""}{if (NR==1) print $2}'`
|
| + else
|
| + local name=`grep RootNamespace "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
| + local guid=`grep ProjectGuid "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
| + fi
|
| +
|
| + # save the project GUID to a varaible, normalizing to the basename of the
|
| + # vcproj file without the extension
|
| + local var
|
| + var=${file##*/}
|
| + var=${var%%.${sfx}}
|
| + eval "${var}_file=\"$1\""
|
| + eval "${var}_name=$name"
|
| + eval "${var}_guid=$guid"
|
| +
|
| + if [ "$sfx" = "vcproj" ]; then
|
| + cur_config_list=`grep -A1 '<Configuration' $file |
|
| + grep Name | cut -d\" -f2`
|
| + else
|
| + cur_config_list=`grep -B1 'Label="Configuration"' $file |
|
| + grep Condition | cut -d\' -f4`
|
| + fi
|
| + new_config_list=$(for i in $config_list $cur_config_list; do
|
| + echo $i
|
| + done | sort | uniq)
|
| + if [ "$config_list" != "" ] && [ "$config_list" != "$new_config_list" ]; then
|
| + mixed_platforms=1
|
| + fi
|
| + config_list="$new_config_list"
|
| + eval "${var}_config_list=\"$cur_config_list\""
|
| + proj_list="${proj_list} ${var}"
|
| +}
|
| +
|
| +process_project() {
|
| + eval "local file=\${$1_file}"
|
| + eval "local name=\${$1_name}"
|
| + eval "local guid=\${$1_guid}"
|
| +
|
| + # save the project GUID to a varaible, normalizing to the basename of the
|
| + # vcproj file without the extension
|
| + local var
|
| + var=${file##*/}
|
| + var=${var%%.${sfx}}
|
| + eval "${var}_guid=$guid"
|
| +
|
| + echo "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"$name\", \"$file\", \"$guid\""
|
| + indent_push
|
| +
|
| + eval "local deps=\"\${${var}_deps}\""
|
| + if [ -n "$deps" ] && [ "$sfx" = "vcproj" ]; then
|
| + echo "${indent}ProjectSection(ProjectDependencies) = postProject"
|
| + indent_push
|
| +
|
| + for dep in $deps; do
|
| + eval "local dep_guid=\${${dep}_guid}"
|
| + [ -z "${dep_guid}" ] && die "Unknown GUID for $dep (dependency of $var)"
|
| + echo "${indent}$dep_guid = $dep_guid"
|
| + done
|
| +
|
| + indent_pop
|
| + echo "${indent}EndProjectSection"
|
| +
|
| + fi
|
| +
|
| + indent_pop
|
| + echo "EndProject"
|
| +}
|
| +
|
| +process_global() {
|
| + echo "Global"
|
| + indent_push
|
| +
|
| + #
|
| + # Solution Configuration Platforms
|
| + #
|
| + echo "${indent}GlobalSection(SolutionConfigurationPlatforms) = preSolution"
|
| + indent_push
|
| + IFS_bak=${IFS}
|
| + IFS=$'\r'$'\n'
|
| + if [ "$mixed_platforms" != "" ]; then
|
| + config_list="
|
| +Release|Mixed Platforms
|
| +Debug|Mixed Platforms"
|
| + fi
|
| + for config in ${config_list}; do
|
| + echo "${indent}$config = $config"
|
| + done
|
| + IFS=${IFS_bak}
|
| + indent_pop
|
| + echo "${indent}EndGlobalSection"
|
| +
|
| + #
|
| + # Project Configuration Platforms
|
| + #
|
| + echo "${indent}GlobalSection(ProjectConfigurationPlatforms) = postSolution"
|
| + indent_push
|
| + for proj in ${proj_list}; do
|
| + eval "local proj_guid=\${${proj}_guid}"
|
| + eval "local proj_config_list=\${${proj}_config_list}"
|
| + IFS=$'\r'$'\n'
|
| + for config in ${proj_config_list}; do
|
| + if [ "$mixed_platforms" != "" ]; then
|
| + local c=${config%%|*}
|
| + echo "${indent}${proj_guid}.${c}|Mixed Platforms.ActiveCfg = ${config}"
|
| + echo "${indent}${proj_guid}.${c}|Mixed Platforms.Build.0 = ${config}"
|
| + else
|
| + echo "${indent}${proj_guid}.${config}.ActiveCfg = ${config}"
|
| + echo "${indent}${proj_guid}.${config}.Build.0 = ${config}"
|
| + fi
|
| +
|
| + done
|
| + IFS=${IFS_bak}
|
| + done
|
| + indent_pop
|
| + echo "${indent}EndGlobalSection"
|
| +
|
| + #
|
| + # Solution Properties
|
| + #
|
| + echo "${indent}GlobalSection(SolutionProperties) = preSolution"
|
| + indent_push
|
| + echo "${indent}HideSolutionNode = FALSE"
|
| + indent_pop
|
| + echo "${indent}EndGlobalSection"
|
| +
|
| + indent_pop
|
| + echo "EndGlobal"
|
| +}
|
| +
|
| +process_makefile() {
|
| + IFS_bak=${IFS}
|
| + IFS=$'\r'$'\n'
|
| + local TAB=$'\t'
|
| + cat <<EOF
|
| +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 " * \$(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,"
|
| +${TAB}@echo " * add the Common7/IDE directory of your Visual Studio"
|
| +${TAB}@echo " * installation to your path, eg:"
|
| +${TAB}@echo " * C:\Program Files\Microsoft Visual Studio 8\Common7\IDE"
|
| +${TAB}@echo " * "
|
| +${TAB}@touch \$@
|
| +CLEAN-OBJS += \$(if \$(found_devenv),,.nodevenv.once)
|
| +
|
| +EOF
|
| +
|
| + for sln_config in ${config_list}; do
|
| + local config=${sln_config%%|*}
|
| + local platform=${sln_config##*|}
|
| + local nows_sln_config=`echo $sln_config | sed -e 's/[^a-zA-Z0-9]/_/g'`
|
| + cat <<EOF
|
| +BUILD_TARGETS += \$(if \$(NO_LAUNCH_DEVENV),,$nows_sln_config)
|
| +clean::
|
| +${TAB}rm -rf "$platform"/"$config"
|
| +.PHONY: $nows_sln_config
|
| +ifneq (\$(found_devenv),)
|
| + ifeq (\$(CONFIG_VS_VERSION),7)
|
| +$nows_sln_config: $outfile
|
| +${TAB}\$(MSBUILD_TOOL) $outfile -build "$config"
|
| +
|
| + else
|
| +$nows_sln_config: $outfile
|
| +${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 (\$(MSBUILD_TOOL) not in path)."
|
| +${TAB}@echo " * "
|
| +endif
|
| +
|
| +EOF
|
| + done
|
| + IFS=${IFS_bak}
|
| +}
|
| +
|
| +# Process command line
|
| +outfile=/dev/stdout
|
| +for opt in "$@"; do
|
| + optval="${opt#*=}"
|
| + case "$opt" in
|
| + --help|-h) show_help
|
| + ;;
|
| + --out=*) outfile="${optval}"; mkoutfile="${optval}".mk
|
| + ;;
|
| + --dep=*) eval "${optval%%:*}_deps=\"\${${optval%%:*}_deps} ${optval##*:}\""
|
| + ;;
|
| + --ver=*) vs_ver="$optval"
|
| + case $optval in
|
| + [789]|10|11|12)
|
| + ;;
|
| + *) die Unrecognized Visual Studio Version in $opt
|
| + ;;
|
| + esac
|
| + ;;
|
| + --ver=*) vs_ver="$optval"
|
| + case $optval in
|
| + 7) sln_vers="8.00"
|
| + sln_vers_str="Visual Studio .NET 2003"
|
| + ;;
|
| + [89])
|
| + ;;
|
| + *) die "Unrecognized Visual Studio Version '$optval' in $opt"
|
| + ;;
|
| + esac
|
| + ;;
|
| + --target=*) target="${optval}"
|
| + ;;
|
| + -*) die_unknown $opt
|
| + ;;
|
| + *) file_list[${#file_list[@]}]="$opt"
|
| + esac
|
| +done
|
| +outfile=${outfile:-/dev/stdout}
|
| +mkoutfile=${mkoutfile:-/dev/stdout}
|
| +case "${vs_ver:-8}" in
|
| + 7) sln_vers="8.00"
|
| + sln_vers_str="Visual Studio .NET 2003"
|
| + ;;
|
| + 8) sln_vers="9.00"
|
| + sln_vers_str="Visual Studio 2005"
|
| + ;;
|
| + 9) sln_vers="10.00"
|
| + sln_vers_str="Visual Studio 2008"
|
| + ;;
|
| + 10) sln_vers="11.00"
|
| + sln_vers_str="Visual Studio 2010"
|
| + ;;
|
| + 11) sln_vers="12.00"
|
| + sln_vers_str="Visual Studio 2012"
|
| + ;;
|
| + 12) sln_vers="12.00"
|
| + sln_vers_str="Visual Studio 2013"
|
| + ;;
|
| +esac
|
| +case "${vs_ver:-8}" in
|
| + [789])
|
| + sfx=vcproj
|
| + ;;
|
| + 10|11|12)
|
| + sfx=vcxproj
|
| + ;;
|
| +esac
|
| +
|
| +for f in "${file_list[@]}"; do
|
| + parse_project $f
|
| +done
|
| +cat >${outfile} <<EOF
|
| +Microsoft Visual Studio Solution File, Format Version $sln_vers${EOLDOS}
|
| +# $sln_vers_str${EOLDOS}
|
| +EOF
|
| +for proj in ${proj_list}; do
|
| + process_project $proj >>${outfile}
|
| +done
|
| +process_global >>${outfile}
|
| +process_makefile >${mkoutfile}
|
|
|