From dea76e1db08eb908260e1d24dddd3e9c5d70b38e Mon Sep 17 00:00:00 2001 From: Christophe Chevalier Date: Tue, 7 Jun 2016 11:36:13 +0200 Subject: [PATCH 1/3] Added build commands for various versions of Visual Studio - For people who want to build the library without opening it in VS --- .gitignore | 1 + build/build.VS2010.cmd | 7 +++++++ build/build.VS2012.cmd | 6 ++++++ build/build.VS2013.cmd | 7 +++++++ build/build.VS2015.cmd | 7 +++++++ build/build.generic.cmd | 38 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 66 insertions(+) create mode 100644 build/build.VS2010.cmd create mode 100644 build/build.VS2012.cmd create mode 100644 build/build.VS2013.cmd create mode 100644 build/build.VS2015.cmd create mode 100644 build/build.generic.cmd diff --git a/.gitignore b/.gitignore index 9a71d4bcd..a06c2afa2 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ projects/VS2010 projects/VS2012 projects/VS2013 projects/VS2015 +build/bin # IDEA solution files *.idea diff --git a/build/build.VS2010.cmd b/build/build.VS2010.cmd new file mode 100644 index 000000000..ddaeb4eee --- /dev/null +++ b/build/build.VS2010.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2010 Release "Clean,Build" Win32 v100 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2010 Release "Clean,Build" x64 v100 \ No newline at end of file diff --git a/build/build.VS2012.cmd b/build/build.VS2012.cmd new file mode 100644 index 000000000..96431e113 --- /dev/null +++ b/build/build.VS2012.cmd @@ -0,0 +1,6 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2012 Release "Clean,Build" Win32 v110 +rem build 64-bit +call "%~p0%build.generic.cmd" VS2012 Release "Clean,Build" x64 v110 \ No newline at end of file diff --git a/build/build.VS2013.cmd b/build/build.VS2013.cmd new file mode 100644 index 000000000..06aed3e4f --- /dev/null +++ b/build/build.VS2013.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2013 Release "Clean,Build" Win32 v120 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2013 Release "Clean,Build" x64 v120 \ No newline at end of file diff --git a/build/build.VS2015.cmd b/build/build.VS2015.cmd new file mode 100644 index 000000000..0e2484949 --- /dev/null +++ b/build/build.VS2015.cmd @@ -0,0 +1,7 @@ +@echo off + +rem build 32-bit +call "%~p0%build.generic.cmd" VS2015 Release "Clean,Build" Win32 v140 + +rem build 64-bit +call "%~p0%build.generic.cmd" VS2015 Release "Clean,Build" x64 v140 \ No newline at end of file diff --git a/build/build.generic.cmd b/build/build.generic.cmd new file mode 100644 index 000000000..289776bf9 --- /dev/null +++ b/build/build.generic.cmd @@ -0,0 +1,38 @@ +@echo off + +rem +rem Parameters +rem %1: vs_solution_version: VS solution version: VS2012, VS2013, VS2015 +rem %2: vs_configuration: VS configuration: Debug, Release +rem %3: vs_target: target: Build or Rebuild +rem %4: vs_platform: platform: x64 or Win32 +rem %5: vs_toolset: toolset: v100, v110, v120, v140 +rem + +set vs_solution_version=%1 +set vs_configuration=%2 +set vs_target=%3 +set vs_platform=%4 +set vs_toolset=%5 + +set msbuild="%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" +IF %vs_solution_version% == VS2013 SET msbuild="C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe" +IF %vs_solution_version% == VS2015 SET msbuild="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" +rem TODO: Visual Studio "15" (vNext) will use MSBuild 15.0 ? + +set project="%~p0\..\projects\VS2010\zstd.sln" + +set output=%~p0%bin +set output="%output%/%vs_solution_version%/%vs_platform%/" + +set msbuildparams=/verbosity:minimal /p:Platform="%vs_platform%" /p:Configuration="%vs_configuration%" /p:PlatformToolset="%vs_toolset%" /t:Clean,Build /nologo /p:OutDir=%output% + +echo ### Building %vs_solution_version% project for %vs_configuration% %vs_platform% (%vs_toolset%)... +echo ### Build Params: %msbuildparams% + +%msbuild% %project% %msbuildparams% +IF ERRORLEVEL 1 EXIT /B 1 +echo # Success +echo # OutDir: %output% +echo # + From 0faabe43f8d43387a9ab6d005243d8d0f0ea86c8 Mon Sep 17 00:00:00 2001 From: Christophe Chevalier Date: Tue, 7 Jun 2016 14:00:02 +0200 Subject: [PATCH 2/3] Use Rebuild target instead of Clean+Build --- build/build.VS2010.cmd | 4 ++-- build/build.VS2012.cmd | 4 ++-- build/build.VS2013.cmd | 4 ++-- build/build.VS2015.cmd | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build/build.VS2010.cmd b/build/build.VS2010.cmd index ddaeb4eee..19c6a52ba 100644 --- a/build/build.VS2010.cmd +++ b/build/build.VS2010.cmd @@ -1,7 +1,7 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2010 Release "Clean,Build" Win32 v100 +call "%~p0%build.generic.cmd" VS2010 Release Rebuild Win32 v100 rem build 64-bit -call "%~p0%build.generic.cmd" VS2010 Release "Clean,Build" x64 v100 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2010 Release Rebuild x64 v100 \ No newline at end of file diff --git a/build/build.VS2012.cmd b/build/build.VS2012.cmd index 96431e113..66439c907 100644 --- a/build/build.VS2012.cmd +++ b/build/build.VS2012.cmd @@ -1,6 +1,6 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2012 Release "Clean,Build" Win32 v110 +call "%~p0%build.generic.cmd" VS2012 Release Rebuild Win32 v110 rem build 64-bit -call "%~p0%build.generic.cmd" VS2012 Release "Clean,Build" x64 v110 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2012 Release Rebuild x64 v110 \ No newline at end of file diff --git a/build/build.VS2013.cmd b/build/build.VS2013.cmd index 06aed3e4f..220b26b63 100644 --- a/build/build.VS2013.cmd +++ b/build/build.VS2013.cmd @@ -1,7 +1,7 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2013 Release "Clean,Build" Win32 v120 +call "%~p0%build.generic.cmd" VS2013 Release Rebuild Win32 v120 rem build 64-bit -call "%~p0%build.generic.cmd" VS2013 Release "Clean,Build" x64 v120 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2013 Release Rebuild x64 v120 \ No newline at end of file diff --git a/build/build.VS2015.cmd b/build/build.VS2015.cmd index 0e2484949..b5784340a 100644 --- a/build/build.VS2015.cmd +++ b/build/build.VS2015.cmd @@ -1,7 +1,7 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2015 Release "Clean,Build" Win32 v140 +call "%~p0%build.generic.cmd" VS2015 Release Rebuild Win32 v140 rem build 64-bit -call "%~p0%build.generic.cmd" VS2015 Release "Clean,Build" x64 v140 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2015 Release Rebuild x64 v140 \ No newline at end of file From f1510489bdbb7b0c2df5f94c806721c8adb4b65f Mon Sep 17 00:00:00 2001 From: Christophe Chevalier Date: Tue, 7 Jun 2016 14:32:05 +0200 Subject: [PATCH 3/3] Simplified and reordered the arguments to build.generic.cmd and added default values - always Clean,Rebuild - output folder is now build/bin/{CONFIGURATION}/{ARCH} --- build/build.VS2010.cmd | 4 +-- build/build.VS2012.cmd | 4 +-- build/build.VS2013.cmd | 4 +-- build/build.VS2015.cmd | 4 +-- build/build.generic.cmd | 55 +++++++++++++++++++++++++---------------- 5 files changed, 42 insertions(+), 29 deletions(-) diff --git a/build/build.VS2010.cmd b/build/build.VS2010.cmd index 19c6a52ba..c3bc1763e 100644 --- a/build/build.VS2010.cmd +++ b/build/build.VS2010.cmd @@ -1,7 +1,7 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2010 Release Rebuild Win32 v100 +call "%~p0%build.generic.cmd" VS2010 Win32 Release v100 rem build 64-bit -call "%~p0%build.generic.cmd" VS2010 Release Rebuild x64 v100 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2010 x64 Release v100 \ No newline at end of file diff --git a/build/build.VS2012.cmd b/build/build.VS2012.cmd index 66439c907..d7399a9d6 100644 --- a/build/build.VS2012.cmd +++ b/build/build.VS2012.cmd @@ -1,6 +1,6 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2012 Release Rebuild Win32 v110 +call "%~p0%build.generic.cmd" VS2012 Win32 Release v110 rem build 64-bit -call "%~p0%build.generic.cmd" VS2012 Release Rebuild x64 v110 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2012 x64 Release v110 \ No newline at end of file diff --git a/build/build.VS2013.cmd b/build/build.VS2013.cmd index 220b26b63..486ba6cf0 100644 --- a/build/build.VS2013.cmd +++ b/build/build.VS2013.cmd @@ -1,7 +1,7 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2013 Release Rebuild Win32 v120 +call "%~p0%build.generic.cmd" VS2013 Win32 Release v120 rem build 64-bit -call "%~p0%build.generic.cmd" VS2013 Release Rebuild x64 v120 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2013 x64 Release v120 \ No newline at end of file diff --git a/build/build.VS2015.cmd b/build/build.VS2015.cmd index b5784340a..abc41c9a0 100644 --- a/build/build.VS2015.cmd +++ b/build/build.VS2015.cmd @@ -1,7 +1,7 @@ @echo off rem build 32-bit -call "%~p0%build.generic.cmd" VS2015 Release Rebuild Win32 v140 +call "%~p0%build.generic.cmd" VS2015 Win32 Release v140 rem build 64-bit -call "%~p0%build.generic.cmd" VS2015 Release Rebuild x64 v140 \ No newline at end of file +call "%~p0%build.generic.cmd" VS2015 x64 Release v140 \ No newline at end of file diff --git a/build/build.generic.cmd b/build/build.generic.cmd index 289776bf9..502c8db95 100644 --- a/build/build.generic.cmd +++ b/build/build.generic.cmd @@ -1,33 +1,46 @@ @echo off -rem -rem Parameters -rem %1: vs_solution_version: VS solution version: VS2012, VS2013, VS2015 -rem %2: vs_configuration: VS configuration: Debug, Release -rem %3: vs_target: target: Build or Rebuild -rem %4: vs_platform: platform: x64 or Win32 -rem %5: vs_toolset: toolset: v100, v110, v120, v140 -rem +IF "%1%" == "" GOTO display_help -set vs_solution_version=%1 -set vs_configuration=%2 -set vs_target=%3 -set vs_platform=%4 -set vs_toolset=%5 +SET vs_version=%1 -set msbuild="%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" -IF %vs_solution_version% == VS2013 SET msbuild="C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe" -IF %vs_solution_version% == VS2015 SET msbuild="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" +SET vs_platform=%2 +IF "%vs_platform%" == "" SET vs_platform=x64 + +SET vs_configuration=%3 +IF "%vs_configuration%" == "" SET vs_configuration=Release + +SET vs_toolset=%4 + +GOTO build + +:display_help + +echo Syntax: build.generic.cmd vs_version vs_platform vs_configuration vs_toolset +echo vs_version: VS installed version (VS2012, VS2013, VS2015, ...) +echo vs_platform: Platform (x64 or Win32) +echo vs_configuration: VS configuration (Release or Debug) +echo vs_toolset: Platform Toolset (v100, v110, v120, v140) + +EXIT /B 1 + +:build + +SET msbuild="%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" +IF %vs_version% == VS2013 SET msbuild="C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe" +IF %vs_version% == VS2015 SET msbuild="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" rem TODO: Visual Studio "15" (vNext) will use MSBuild 15.0 ? -set project="%~p0\..\projects\VS2010\zstd.sln" +SET project="%~p0\..\projects\VS2010\zstd.sln" -set output=%~p0%bin -set output="%output%/%vs_solution_version%/%vs_platform%/" +SET msbuildparams=/verbosity:minimal /nologo /t:Clean,Build /p:Platform=%vs_platform% /p:Configuration=%vs_configuration% +IF NOT "%vs_toolset%" == "" SET msbuildparams=%msbuildparams% /p:PlatformToolset=%vs_toolset% -set msbuildparams=/verbosity:minimal /p:Platform="%vs_platform%" /p:Configuration="%vs_configuration%" /p:PlatformToolset="%vs_toolset%" /t:Clean,Build /nologo /p:OutDir=%output% +SET output=%~p0%bin +SET output="%output%/%vs_configuration%/%vs_platform%/" +SET msbuildparams=%msbuildparams% /p:OutDir=%output% -echo ### Building %vs_solution_version% project for %vs_configuration% %vs_platform% (%vs_toolset%)... +echo ### Building %vs_version% project for %vs_configuration% %vs_platform% (%vs_toolset%)... echo ### Build Params: %msbuildparams% %msbuild% %project% %msbuildparams%