shithub: libvpx

Download patch

ref: a1cfcb413d51338623d7ab99eeaefa735882f472
parent: 4decd27947477bbaebce5aa6f2d384cd50a37fc6
author: Johann <johannkoenig@google.com>
date: Mon Feb 28 09:13:39 EST 2011

clean up msvs project generation

add visual studio 9 to --help

remove cpp, cxx, hpp, hxx files from filter

add the ability to target project names. this will be necessary to
enable obj_int_extract

Change-Id: I407583320d8b67a0df40c07221838c42678792f7

--- a/build/make/gen_msvs_proj.sh
+++ b/build/make/gen_msvs_proj.sh
@@ -32,7 +32,7 @@
     --name=project_name         Name of the project (required)
     --proj-guid=GUID            GUID to use for the project
     --module-def=filename       File containing export definitions (for DLLs)
-    --ver=version               Version (7,8) of visual studio to generate for
+    --ver=version               Version (7,8,9) of visual studio to generate for
     -Ipath/to/include           Additional include directories
     -DFLAG[=value]              Preprocessor macros to define
     -Lpath/to/lib               Additional library search paths
@@ -132,7 +132,7 @@
     open_tag Filter \
         Name=$name \
         Filter=$pats \
-        UniqueIdentifier=`generate_uuid`
+        UniqueIdentifier=`generate_uuid` \
 
     file_list_sz=${#file_list[@]}
     for i in ${!file_list[@]}; do
@@ -145,31 +145,21 @@
                 if [ "$pat" == "asm" ] && $asm_use_custom_step; then
                     for plat in "${platforms[@]}"; do
                         for cfg in Debug Release; do
-                            open_tag  FileConfiguration \
-                            Name="${cfg}|${plat}"
+                            open_tag FileConfiguration \
+                                Name="${cfg}|${plat}" \
+
                             tag Tool \
                                 Name="VCCustomBuildTool" \
                                 Description="Assembling \$(InputFileName)" \
-                                CommandLine="$(eval echo \$asm_${cfg}_cmdline)"\
-                                Outputs="\$(InputName).obj"
+                                CommandLine="$(eval echo \$asm_${cfg}_cmdline)" \
+                                Outputs="\$(InputName).obj" \
+
                             close_tag FileConfiguration
                         done
                     done
                 fi
 
-                if [ "${f##*.}" == "cpp" ]; then
-                    for plat in "${platforms[@]}"; do
-                        for cfg in Debug Release; do
-                        open_tag FileConfiguration \
-                            Name="${cfg}|${plat}"
-                        tag Tool \
-                            Name="VCCLCompilerTool" \
-                            CompileAs="2"
-                        close_tag FileConfiguration
-                        done
-                    done
-                fi
-                close_tag  File
+                close_tag File
 
                 break
             fi
@@ -185,57 +175,61 @@
 for opt in "$@"; do
     optval="${opt#*=}"
     case "$opt" in
-    --help|-h) show_help
-    ;;
-    --target=*) target="${optval}"
-    ;;
-    --out=*) outfile="$optval"
-    ;;
-    --name=*) name="${optval}"
-    ;;
-    --proj-guid=*) guid="${optval}"
-    ;;
-    --module-def=*)
-        link_opts="${link_opts} ModuleDefinitionFile=${optval}"
-    ;;
-    --exe) proj_kind="exe"
-    ;;
-    --lib) proj_kind="lib"
-    ;;
-    --static-crt) use_static_runtime=true
-    ;;
-    --ver=*) vs_ver="$optval"
-             case $optval in
-             [789])
-             ;;
-             *) die Unrecognized Visual Studio Version in $opt
-             ;;
-             esac
-    ;;
-    -I*) opt="${opt%/}"
-         incs="${incs}${incs:+;}&quot;${opt##-I}&quot;"
-         yasmincs="${yasmincs} ${opt}"
-    ;;
-    -D*) defines="${defines}${defines:+;}${opt##-D}"
-    ;;
-    -L*) # fudge . to $(OutDir)
-         if [ "${opt##-L}" == "." ]; then
-             libdirs="${libdirs}${libdirs:+;}&quot;\$(OutDir)&quot;"
-         else
-             # Also try directories for this platform/configuration
-             libdirs="${libdirs}${libdirs:+;}&quot;${opt##-L}&quot;"
-             libdirs="${libdirs}${libdirs:+;}&quot;${opt##-L}/\$(PlatformName)/\$(ConfigurationName)&quot;"
-             libdirs="${libdirs}${libdirs:+;}&quot;${opt##-L}/\$(PlatformName)&quot;"
-         fi
-    ;;
-    -l*) libs="${libs}${libs:+ }${opt##-l}.lib"
-    ;;
-    -*) die_unknown $opt
-    ;;
-    *) file_list[${#file_list[@]}]="$opt"
-       case "$opt" in
-       *.asm) uses_asm=true;;
-       esac
+        --help|-h) show_help
+        ;;
+        --target=*) target="${optval}"
+        ;;
+        --out=*) outfile="$optval"
+        ;;
+        --name=*) name="${optval}"
+        ;;
+        --proj-guid=*) guid="${optval}"
+        ;;
+        --module-def=*) link_opts="${link_opts} ModuleDefinitionFile=${optval}"
+        ;;
+        --exe) proj_kind="exe"
+        ;;
+        --lib) proj_kind="lib"
+        ;;
+        --static-crt) use_static_runtime=true
+        ;;
+        --ver=*)
+            vs_ver="$optval"
+            case "$optval" in
+                [789])
+                ;;
+                *) die Unrecognized Visual Studio Version in $opt
+                ;;
+            esac
+        ;;
+        -I*)
+            opt="${opt%/}"
+            incs="${incs}${incs:+;}&quot;${opt##-I}&quot;"
+            yasmincs="${yasmincs} ${opt}"
+        ;;
+        -D*) defines="${defines}${defines:+;}${opt##-D}"
+        ;;
+        -L*) # fudge . to $(OutDir)
+            if [ "${opt##-L}" == "." ]; then
+                libdirs="${libdirs}${libdirs:+;}&quot;\$(OutDir)&quot;"
+            else
+                 # Also try directories for this platform/configuration
+                 libdirs="${libdirs}${libdirs:+;}&quot;${opt##-L}&quot;"
+                 libdirs="${libdirs}${libdirs:+;}&quot;${opt##-L}/\$(PlatformName)/\$(ConfigurationName)&quot;"
+                 libdirs="${libdirs}${libdirs:+;}&quot;${opt##-L}/\$(PlatformName)&quot;"
+            fi
+        ;;
+        -l*) libs="${libs}${libs:+ }${opt##-l}.lib"
+        ;;
+        -*) die_unknown $opt
+        ;;
+        *)
+            file_list[${#file_list[@]}]="$opt"
+            case "$opt" in
+                 *.asm) uses_asm=true
+                 ;;
+            esac
+        ;;
     esac
 done
 outfile=${outfile:-/dev/stdout}
@@ -278,8 +272,7 @@
 
 # List Keyword for this target
 case "$target" in
-    x86*)
-        keyword="ManagedCProj"
+    x86*) keyword="ManagedCProj"
     ;;
     *) die "Unsupported target $target!"
 esac
@@ -296,32 +289,33 @@
         asm_Release_cmdline="yasm -Xvc -f \$(PlatformName) ${yasmincs} &quot;\$(InputPath)&quot;"
     ;;
     *) die "Unsupported target $target!"
+    ;;
 esac
 
 generate_vcproj() {
     case "$proj_kind" in
-    exe) vs_ConfigurationType=1
-    ;;
-    *)   vs_ConfigurationType=4
-    ;;
+        exe) vs_ConfigurationType=1
+        ;;
+        *)   vs_ConfigurationType=4
+        ;;
     esac
 
     echo "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>"
-    open_tag  VisualStudioProject \
-                  ProjectType="Visual C++" \
-                  Version="${vs_ver_id}" \
-                  Name="${name}" \
-                  ProjectGUID="{${guid}}" \
-                  RootNamespace="${name}" \
-                  Keyword="${keyword}"
+    open_tag VisualStudioProject \
+        ProjectType="Visual C++" \
+        Version="${vs_ver_id}" \
+        Name="${name}" \
+        ProjectGUID="{${guid}}" \
+        RootNamespace="${name}" \
+        Keyword="${keyword}" \
 
-    open_tag  Platforms
+    open_tag Platforms
     for plat in "${platforms[@]}"; do
-        tag   Platform Name="$plat"
+        tag Platform Name="$plat"
     done
     close_tag Platforms
 
-    open_tag  ToolFiles
+    open_tag ToolFiles
     case "$target" in
         x86*) $uses_asm && tag ToolFile RelativePath="$self_dirname/../x86-msvs/yasm.rules"
         ;;
@@ -328,29 +322,34 @@
     esac
     close_tag ToolFiles
 
-    open_tag  Configurations
+    open_tag Configurations
     for plat in "${platforms[@]}"; do
         plat_no_ws=`echo $plat | sed 's/[^A-Za-z0-9_]/_/g'`
-        open_tag  Configuration \
-                      Name="Debug|$plat" \
-                      OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
-                      IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
-                      ConfigurationType="$vs_ConfigurationType" \
-                      CharacterSet="1"
+        open_tag Configuration \
+            Name="Debug|$plat" \
+            OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
+            IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
+            ConfigurationType="$vs_ConfigurationType" \
+            CharacterSet="1" \
 
         case "$target" in
-            x86*) tag Tool \
-                Name="VCCLCompilerTool" \
-                Optimization="0" \
-                AdditionalIncludeDirectories="$incs" \
-                PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
-                RuntimeLibrary="$debug_runtime" \
-                UsePrecompiledHeader="0" \
-                WarningLevel="3" \
-                DebugInformationFormat="1" \
-                Detect64BitPortabilityProblems="true" \
+            x86*)
+                case "$name" in
+                    *)
+                        tag Tool \
+                            Name="VCCLCompilerTool" \
+                            Optimization="0" \
+                            AdditionalIncludeDirectories="$incs" \
+                            PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
+                            RuntimeLibrary="$debug_runtime" \
+                            UsePrecompiledHeader="0" \
+                            WarningLevel="3" \
+                            DebugInformationFormat="1" \
+                            Detect64BitPortabilityProblems="true" \
 
-                $uses_asm && tag Tool Name="YASM"  IncludePaths="$incs" Debug="1"
+                        $uses_asm && tag Tool Name="YASM"  IncludePaths="$incs" Debug="1"
+                    ;;
+                esac
             ;;
         esac
 
@@ -357,85 +356,109 @@
         case "$proj_kind" in
             exe)
                 case "$target" in
-                    x86*) tag Tool \
-                          Name="VCLinkerTool" \
-                          AdditionalDependencies="$debug_libs \$(NoInherit)" \
-                          AdditionalLibraryDirectories="$libdirs" \
-                          GenerateDebugInformation="true" \
-                          ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
-
+                    x86*)
+                        case "$name" in
+                            *)
+                                tag Tool \
+                                    Name="VCLinkerTool" \
+                                    AdditionalDependencies="$debug_libs \$(NoInherit)" \
+                                    AdditionalLibraryDirectories="$libdirs" \
+                                    GenerateDebugInformation="true" \
+                                    ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
+                            ;;
+                        esac
                     ;;
                  esac
             ;;
             lib)
                 case "$target" in
-                                *) tag Tool \
-                                    Name="VCLibrarianTool" \
-                                    OutputFile="\$(OutDir)/${name}${lib_sfx}d.lib" \
-                                ;;
+                    x86*)
+                        tag Tool \
+                            Name="VCLibrarianTool" \
+                            OutputFile="\$(OutDir)/${name}${lib_sfx}d.lib" \
+
+                    ;;
                 esac
             ;;
-            dll) tag Tool \
-                 Name="VCLinkerTool" \
-                AdditionalDependencies="\$(NoInherit)" \
-                LinkIncremental="2" \
-                GenerateDebugInformation="true" \
-                AssemblyDebug="1" \
-                TargetMachine="1" \
-                      $link_opts
+            dll)
+                tag Tool \
+                    Name="VCLinkerTool" \
+                    AdditionalDependencies="\$(NoInherit)" \
+                    LinkIncremental="2" \
+                    GenerateDebugInformation="true" \
+                    AssemblyDebug="1" \
+                    TargetMachine="1" \
+                    $link_opts \
+
+            ;;
         esac
 
         close_tag Configuration
 
-        open_tag  Configuration \
-                      Name="Release|$plat" \
-                      OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
-                      IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
-                      ConfigurationType="$vs_ConfigurationType" \
-                      CharacterSet="1" \
-                      WholeProgramOptimization="0"
+        open_tag Configuration \
+            Name="Release|$plat" \
+            OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
+            IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
+            ConfigurationType="$vs_ConfigurationType" \
+            CharacterSet="1" \
+            WholeProgramOptimization="0" \
 
-    case "$target" in
-        x86*) tag       Tool \
-                      Name="VCCLCompilerTool" \
-                      AdditionalIncludeDirectories="$incs" \
-                      PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
-                      RuntimeLibrary="$release_runtime" \
-                      UsePrecompiledHeader="0" \
-                      WarningLevel="3" \
-                      DebugInformationFormat="0" \
-                      Detect64BitPortabilityProblems="true"
+        case "$target" in
+            x86*)
+                case "$name" in
+                    *)
+                        tag Tool \
+                            Name="VCCLCompilerTool" \
+                            AdditionalIncludeDirectories="$incs" \
+                            PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
+                            RuntimeLibrary="$release_runtime" \
+                            UsePrecompiledHeader="0" \
+                            WarningLevel="3" \
+                            DebugInformationFormat="0" \
+                            Detect64BitPortabilityProblems="true" \
 
-                $uses_asm && tag Tool Name="YASM"  IncludePaths="$incs"
-                ;;
+                        $uses_asm && tag Tool Name="YASM"  IncludePaths="$incs"
+                    ;;
                 esac
+            ;;
+        esac
 
         case "$proj_kind" in
             exe)
                 case "$target" in
-                    x86*) tag Tool \
-                                  Name="VCLinkerTool" \
-                                  AdditionalDependencies="$libs \$(NoInherit)" \
-                                  AdditionalLibraryDirectories="$libdirs" \
+                    x86*)
+                        case "$name" in
+                            *)
+                                tag Tool \
+                                    Name="VCLinkerTool" \
+                                    AdditionalDependencies="$libs \$(NoInherit)" \
+                                    AdditionalLibraryDirectories="$libdirs" \
+
+                            ;;
+                        esac
                     ;;
                  esac
             ;;
-        lib)
+            lib)
                 case "$target" in
-                                *) tag Tool \
-                                    Name="VCLibrarianTool" \
-                                    OutputFile="\$(OutDir)/${name}${lib_sfx}.lib" \
-                                ;;
+                    x86*)
+                        tag Tool \
+                            Name="VCLibrarianTool" \
+                            OutputFile="\$(OutDir)/${name}${lib_sfx}.lib" \
+
+                    ;;
                 esac
-        ;;
-        dll) # note differences to debug version: LinkIncremental, AssemblyDebug
-             tag Tool \
-                      Name="VCLinkerTool" \
-                      AdditionalDependencies="\$(NoInherit)" \
-                      LinkIncremental="1" \
-                      GenerateDebugInformation="true" \
-                      TargetMachine="1" \
-                      $link_opts
+            ;;
+            dll) # note differences to debug version: LinkIncremental, AssemblyDebug
+                tag Tool \
+                    Name="VCLinkerTool" \
+                    AdditionalDependencies="\$(NoInherit)" \
+                    LinkIncremental="1" \
+                    GenerateDebugInformation="true" \
+                    TargetMachine="1" \
+                    $link_opts \
+
+            ;;
         esac
 
         close_tag Configuration
@@ -442,9 +465,9 @@
     done
     close_tag Configurations
 
-    open_tag  Files
-    generate_filter srcs   "Source Files"   "cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-    generate_filter hdrs   "Header Files"   "h;hpp;hxx;hm;inl;inc;xsd"
+    open_tag Files
+    generate_filter srcs   "Source Files"   "c;def;odl;idl;hpj;bat;asm;asmx"
+    generate_filter hdrs   "Header Files"   "h;hm;inl;inc;xsd"
     generate_filter resrcs "Resource Files" "rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
     generate_filter resrcs "Build Files"    "mk"
     close_tag Files