From 31d477db07c999afd639c3a37105894ecbf710fc Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Wed, 19 Aug 2020 18:06:49 -0700 Subject: [PATCH] [build] Move CMake and Visual build systems to build/ Fixes #852. --- Makefile | 2 +- NEWS | 2 ++ appveyor.yml | 10 +++++----- {visual => build}/.gitignore | 0 {visual => build}/README.md | 18 ++++++++++-------- .../VS2010/datagen/datagen.vcxproj | 0 .../VS2010/frametest/frametest.vcxproj | 0 .../VS2010/fullbench-dll/fullbench-dll.vcxproj | 0 .../VS2010/fullbench/fullbench.vcxproj | 0 {visual => build}/VS2010/fuzzer/fuzzer.vcxproj | 0 .../VS2010/liblz4-dll/liblz4-dll.rc | 0 .../VS2010/liblz4-dll/liblz4-dll.vcxproj | 0 {visual => build}/VS2010/liblz4/liblz4.vcxproj | 0 {visual => build}/VS2010/lz4.sln | 0 {visual => build}/VS2010/lz4/lz4.rc | 0 {visual => build}/VS2010/lz4/lz4.vcxproj | 0 .../VS2017/datagen/datagen.vcxproj | 0 .../VS2017/frametest/frametest.vcxproj | 0 .../VS2017/fullbench-dll/fullbench-dll.vcxproj | 0 .../VS2017/fullbench/fullbench.vcxproj | 0 {visual => build}/VS2017/fuzzer/fuzzer.vcxproj | 0 .../VS2017/liblz4-dll/liblz4-dll.rc | 0 .../VS2017/liblz4-dll/liblz4-dll.vcxproj | 0 {visual => build}/VS2017/liblz4/liblz4.vcxproj | 0 {visual => build}/VS2017/lz4.sln | 0 {visual => build}/VS2017/lz4/lz4.rc | 0 {visual => build}/VS2017/lz4/lz4.vcxproj | 0 .../cmake}/.gitignore | 0 .../cmake}/CMakeLists.txt | 0 contrib/debian/rules | 3 +-- 30 files changed, 19 insertions(+), 16 deletions(-) rename {visual => build}/.gitignore (100%) rename {visual => build}/README.md (81%) rename {visual => build}/VS2010/datagen/datagen.vcxproj (100%) rename {visual => build}/VS2010/frametest/frametest.vcxproj (100%) rename {visual => build}/VS2010/fullbench-dll/fullbench-dll.vcxproj (100%) rename {visual => build}/VS2010/fullbench/fullbench.vcxproj (100%) rename {visual => build}/VS2010/fuzzer/fuzzer.vcxproj (100%) rename {visual => build}/VS2010/liblz4-dll/liblz4-dll.rc (100%) rename {visual => build}/VS2010/liblz4-dll/liblz4-dll.vcxproj (100%) rename {visual => build}/VS2010/liblz4/liblz4.vcxproj (100%) rename {visual => build}/VS2010/lz4.sln (100%) rename {visual => build}/VS2010/lz4/lz4.rc (100%) rename {visual => build}/VS2010/lz4/lz4.vcxproj (100%) rename {visual => build}/VS2017/datagen/datagen.vcxproj (100%) rename {visual => build}/VS2017/frametest/frametest.vcxproj (100%) rename {visual => build}/VS2017/fullbench-dll/fullbench-dll.vcxproj (100%) rename {visual => build}/VS2017/fullbench/fullbench.vcxproj (100%) rename {visual => build}/VS2017/fuzzer/fuzzer.vcxproj (100%) rename {visual => build}/VS2017/liblz4-dll/liblz4-dll.rc (100%) rename {visual => build}/VS2017/liblz4-dll/liblz4-dll.vcxproj (100%) rename {visual => build}/VS2017/liblz4/liblz4.vcxproj (100%) rename {visual => build}/VS2017/lz4.sln (100%) rename {visual => build}/VS2017/lz4/lz4.rc (100%) rename {visual => build}/VS2017/lz4/lz4.vcxproj (100%) rename {contrib/cmake_unofficial => build/cmake}/.gitignore (100%) rename {contrib/cmake_unofficial => build/cmake}/CMakeLists.txt (100%) diff --git a/Makefile b/Makefile index f25f951..ab695ea 100644 --- a/Makefile +++ b/Makefile @@ -98,7 +98,7 @@ travis-install: $(MAKE) -j1 install DESTDIR=~/install_test_dir cmake: - @cd contrib/cmake_unofficial; cmake $(CMAKE_PARAMS) CMakeLists.txt; $(MAKE) + @cd build/cmake; cmake $(CMAKE_PARAMS) CMakeLists.txt; $(MAKE) endif diff --git a/NEWS b/NEWS index 44c45be..34ca486 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ v1.9.3 perf: faster speed on Visual Studio, by @wolfpld +build: contrib/cmake_unofficial/ moved to build/cmake/ +build: visual/* moved to build/ v1.9.2 diff --git a/appveyor.yml b/appveyor.yml index 056719a..57b6dda 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -82,20 +82,20 @@ build_script: ECHO *** && ECHO *** Building Visual Studio 2010 %PLATFORM%\%CONFIGURATION% && ECHO *** && - msbuild "visual\VS2010\lz4.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /p:EnableWholeProgramOptimization=true /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + msbuild "build\VS2010\lz4.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /p:EnableWholeProgramOptimization=true /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && ECHO *** && ECHO *** Building Visual Studio 2012 %PLATFORM%\%CONFIGURATION% && ECHO *** && - msbuild "visual\VS2010\lz4.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + msbuild "build\VS2010\lz4.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && ECHO *** && ECHO *** Building Visual Studio 2013 %PLATFORM%\%CONFIGURATION% && ECHO *** && - msbuild "visual\VS2010\lz4.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + msbuild "build\VS2010\lz4.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && ECHO *** && ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% && ECHO *** && - msbuild "visual\VS2010\lz4.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && - COPY visual\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe programs\ + msbuild "build\VS2010\lz4.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" && + COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe programs\ ) test_script: diff --git a/visual/.gitignore b/build/.gitignore similarity index 100% rename from visual/.gitignore rename to build/.gitignore diff --git a/visual/README.md b/build/README.md similarity index 81% rename from visual/README.md rename to build/README.md index 216971f..d416aeb 100644 --- a/visual/README.md +++ b/build/README.md @@ -4,7 +4,9 @@ Projects for various integrated development environments (IDE) #### Included projects The following projects are included with the lz4 distribution: +- `cmake` - CMake project - `VS2010` - Visual Studio 2010 project (which also works well with Visual Studio 2012, 2013, 2015) +- `VS2017` - Visual Studio 2017 project #### How to compile lz4 with Visual Studio @@ -12,25 +14,25 @@ The following projects are included with the lz4 distribution: 1. Install Visual Studio e.g. VS 2015 Community Edition (it's free). 2. Download the latest version of lz4 from https://github.com/lz4/lz4/releases 3. Decompress ZIP archive. -4. Go to decompressed directory then to `visual` then `VS2010` and open `lz4.sln` +4. Go to decompressed directory then to `build` then `VS2010` and open `lz4.sln` 5. Visual Studio will ask about converting VS2010 project to VS2015 and you should agree. 6. Change `Debug` to `Release` and if you have 64-bit Windows change also `Win32` to `x64`. 7. Press F7 on keyboard or select `BUILD` from the menu bar and choose `Build Solution`. -8. If compilation will be fine a compiled executable will be in `visual\VS2010\bin\x64_Release\lz4.exe` +8. If compilation will be fine a compiled executable will be in `build\VS2010\bin\x64_Release\lz4.exe` #### Projects available within lz4.sln The Visual Studio solution file `lz4.sln` contains many projects that will be compiled to the -`visual\VS2010\bin\$(Platform)_$(Configuration)` directory. For example `lz4` set to `x64` and -`Release` will be compiled to `visual\VS2010\bin\x64_Release\lz4.exe`. The solution file contains the +`build\VS2010\bin\$(Platform)_$(Configuration)` directory. For example `lz4` set to `x64` and +`Release` will be compiled to `build\VS2010\bin\x64_Release\lz4.exe`. The solution file contains the following projects: - `lz4` : Command Line Utility, supporting gzip-like arguments - `datagen` : Synthetic and parametrable data generator, for tests - `frametest` : Test tool that checks lz4frame integrity on target platform - `fullbench` : Precisely measure speed for each lz4 inner functions -- `fuzzer` : Test tool, to check lz4 integrity on target platform +- `fuzzer` : Test tool, to check lz4 integrity on target platform - `liblz4` : A static LZ4 library compiled to `liblz4_static.lib` - `liblz4-dll` : A dynamic LZ4 library (DLL) compiled to `liblz4.dll` with the import library `liblz4.lib` - `fullbench-dll` : The fullbench program compiled with the import library; the executable requires LZ4 DLL @@ -39,8 +41,8 @@ following projects: #### Using LZ4 DLL with Microsoft Visual C++ project The header files `lib\lz4.h`, `lib\lz4hc.h`, `lib\lz4frame.h` and the import library -`visual\VS2010\bin\$(Platform)_$(Configuration)\liblz4.lib` are required to compile a -project using Visual C++. +`build\VS2010\bin\$(Platform)_$(Configuration)\liblz4.lib` are required to +compile a project using Visual C++. 1. The path to header files should be added to `Additional Include Directories` that can be found in Project Properties of Visual Studio IDE in the `C/C++` Property Pages on the `General` page. @@ -50,4 +52,4 @@ project using Visual C++. then the directory has to be added to `Linker\General\Additional Library Directories`. The compiled executable will require LZ4 DLL which is available at -`visual\VS2010\bin\$(Platform)_$(Configuration)\liblz4.dll`. +`build\VS2010\bin\$(Platform)_$(Configuration)\liblz4.dll`. diff --git a/visual/VS2010/datagen/datagen.vcxproj b/build/VS2010/datagen/datagen.vcxproj similarity index 100% rename from visual/VS2010/datagen/datagen.vcxproj rename to build/VS2010/datagen/datagen.vcxproj diff --git a/visual/VS2010/frametest/frametest.vcxproj b/build/VS2010/frametest/frametest.vcxproj similarity index 100% rename from visual/VS2010/frametest/frametest.vcxproj rename to build/VS2010/frametest/frametest.vcxproj diff --git a/visual/VS2010/fullbench-dll/fullbench-dll.vcxproj b/build/VS2010/fullbench-dll/fullbench-dll.vcxproj similarity index 100% rename from visual/VS2010/fullbench-dll/fullbench-dll.vcxproj rename to build/VS2010/fullbench-dll/fullbench-dll.vcxproj diff --git a/visual/VS2010/fullbench/fullbench.vcxproj b/build/VS2010/fullbench/fullbench.vcxproj similarity index 100% rename from visual/VS2010/fullbench/fullbench.vcxproj rename to build/VS2010/fullbench/fullbench.vcxproj diff --git a/visual/VS2010/fuzzer/fuzzer.vcxproj b/build/VS2010/fuzzer/fuzzer.vcxproj similarity index 100% rename from visual/VS2010/fuzzer/fuzzer.vcxproj rename to build/VS2010/fuzzer/fuzzer.vcxproj diff --git a/visual/VS2010/liblz4-dll/liblz4-dll.rc b/build/VS2010/liblz4-dll/liblz4-dll.rc similarity index 100% rename from visual/VS2010/liblz4-dll/liblz4-dll.rc rename to build/VS2010/liblz4-dll/liblz4-dll.rc diff --git a/visual/VS2010/liblz4-dll/liblz4-dll.vcxproj b/build/VS2010/liblz4-dll/liblz4-dll.vcxproj similarity index 100% rename from visual/VS2010/liblz4-dll/liblz4-dll.vcxproj rename to build/VS2010/liblz4-dll/liblz4-dll.vcxproj diff --git a/visual/VS2010/liblz4/liblz4.vcxproj b/build/VS2010/liblz4/liblz4.vcxproj similarity index 100% rename from visual/VS2010/liblz4/liblz4.vcxproj rename to build/VS2010/liblz4/liblz4.vcxproj diff --git a/visual/VS2010/lz4.sln b/build/VS2010/lz4.sln similarity index 100% rename from visual/VS2010/lz4.sln rename to build/VS2010/lz4.sln diff --git a/visual/VS2010/lz4/lz4.rc b/build/VS2010/lz4/lz4.rc similarity index 100% rename from visual/VS2010/lz4/lz4.rc rename to build/VS2010/lz4/lz4.rc diff --git a/visual/VS2010/lz4/lz4.vcxproj b/build/VS2010/lz4/lz4.vcxproj similarity index 100% rename from visual/VS2010/lz4/lz4.vcxproj rename to build/VS2010/lz4/lz4.vcxproj diff --git a/visual/VS2017/datagen/datagen.vcxproj b/build/VS2017/datagen/datagen.vcxproj similarity index 100% rename from visual/VS2017/datagen/datagen.vcxproj rename to build/VS2017/datagen/datagen.vcxproj diff --git a/visual/VS2017/frametest/frametest.vcxproj b/build/VS2017/frametest/frametest.vcxproj similarity index 100% rename from visual/VS2017/frametest/frametest.vcxproj rename to build/VS2017/frametest/frametest.vcxproj diff --git a/visual/VS2017/fullbench-dll/fullbench-dll.vcxproj b/build/VS2017/fullbench-dll/fullbench-dll.vcxproj similarity index 100% rename from visual/VS2017/fullbench-dll/fullbench-dll.vcxproj rename to build/VS2017/fullbench-dll/fullbench-dll.vcxproj diff --git a/visual/VS2017/fullbench/fullbench.vcxproj b/build/VS2017/fullbench/fullbench.vcxproj similarity index 100% rename from visual/VS2017/fullbench/fullbench.vcxproj rename to build/VS2017/fullbench/fullbench.vcxproj diff --git a/visual/VS2017/fuzzer/fuzzer.vcxproj b/build/VS2017/fuzzer/fuzzer.vcxproj similarity index 100% rename from visual/VS2017/fuzzer/fuzzer.vcxproj rename to build/VS2017/fuzzer/fuzzer.vcxproj diff --git a/visual/VS2017/liblz4-dll/liblz4-dll.rc b/build/VS2017/liblz4-dll/liblz4-dll.rc similarity index 100% rename from visual/VS2017/liblz4-dll/liblz4-dll.rc rename to build/VS2017/liblz4-dll/liblz4-dll.rc diff --git a/visual/VS2017/liblz4-dll/liblz4-dll.vcxproj b/build/VS2017/liblz4-dll/liblz4-dll.vcxproj similarity index 100% rename from visual/VS2017/liblz4-dll/liblz4-dll.vcxproj rename to build/VS2017/liblz4-dll/liblz4-dll.vcxproj diff --git a/visual/VS2017/liblz4/liblz4.vcxproj b/build/VS2017/liblz4/liblz4.vcxproj similarity index 100% rename from visual/VS2017/liblz4/liblz4.vcxproj rename to build/VS2017/liblz4/liblz4.vcxproj diff --git a/visual/VS2017/lz4.sln b/build/VS2017/lz4.sln similarity index 100% rename from visual/VS2017/lz4.sln rename to build/VS2017/lz4.sln diff --git a/visual/VS2017/lz4/lz4.rc b/build/VS2017/lz4/lz4.rc similarity index 100% rename from visual/VS2017/lz4/lz4.rc rename to build/VS2017/lz4/lz4.rc diff --git a/visual/VS2017/lz4/lz4.vcxproj b/build/VS2017/lz4/lz4.vcxproj similarity index 100% rename from visual/VS2017/lz4/lz4.vcxproj rename to build/VS2017/lz4/lz4.vcxproj diff --git a/contrib/cmake_unofficial/.gitignore b/build/cmake/.gitignore similarity index 100% rename from contrib/cmake_unofficial/.gitignore rename to build/cmake/.gitignore diff --git a/contrib/cmake_unofficial/CMakeLists.txt b/build/cmake/CMakeLists.txt similarity index 100% rename from contrib/cmake_unofficial/CMakeLists.txt rename to build/cmake/CMakeLists.txt diff --git a/contrib/debian/rules b/contrib/debian/rules index 748e68d..c897bc5 100755 --- a/contrib/debian/rules +++ b/contrib/debian/rules @@ -4,5 +4,4 @@ include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/cmake.mk -DEB_CMAKE_EXTRA_FLAGS := -DCMAKE_BUILD_TYPE=RelWithDebInfo ../cmake_unofficial - +DEB_CMAKE_EXTRA_FLAGS := -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../build/cmake