From d0f26e17afcce8777eda7d4bba3efe0543398692 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Sat, 5 Dec 2015 20:20:40 +0000 Subject: [PATCH] #1041. Fixed --webready. Hip hip hip, hurrah for me. Documentation Update. --- contrib/cmake/msvc/ReadMe.txt | 36 +++++++++++++++++--------- contrib/cmake/msvc/cmakeBuild.cmd | 14 +++++----- contrib/cmake/msvc/cmakeBuildAll.cmd | 1 + contrib/cmake/msvc/cmakeRebuildAll.cmd | 3 --- 4 files changed, 33 insertions(+), 21 deletions(-) create mode 100755 contrib/cmake/msvc/cmakeBuildAll.cmd delete mode 100755 contrib/cmake/msvc/cmakeRebuildAll.cmd diff --git a/contrib/cmake/msvc/ReadMe.txt b/contrib/cmake/msvc/ReadMe.txt index 9e6dec9c..18381156 100755 --- a/contrib/cmake/msvc/ReadMe.txt +++ b/contrib/cmake/msvc/ReadMe.txt @@ -30,7 +30,7 @@ How to use this build --help You should never have reason to modify the code in cmakeBuild.cmd - You may wish to change the defaults in setenv.cmd + You may wish to change the defaults in cmakeDefaults.cmd You can change the defaults on the command-line (or modify cmakeDefaults.cmd) You can also change defaults using the dos set command. For example: set _CONFIG_=Debug @@ -48,9 +48,16 @@ How to use this 3 What gets built? The build is performed in build\temp The output is generated in build\dist - build\dist\bin contains *.exe and *.dll files - build\dist\lib contains *.lib files - build\dist\include contains *.h and *.hpp files + build\dist\..mumble..\bin contains *.exe and *.dll files + build\dist\..mumble..\lib contains *.lib files + build\dist\..mumble..\include contains *.h and *.hpp files + + mumble identifies the compiler and build. + Example C:\gnu\exiv2\build\dist\2013\x64\dll\Release\bin + 2013 = Visual Studio Choices: 2005/2008/2010/2012/2013/2015 + x64 = 64 bit build 32/64 + dll = shared library dll/static + Release = configuration Release/Debug/RelWithDebInfo/MinSizeRel 4 Building manually with CMake The cmake option -G Generator should be chosen for the version of Visual Studio installed. @@ -98,7 +105,7 @@ How to use this cmake --build . --config Release cmake --build . --config Release --target install -5 About openssl +5 About openssl and curl You cannot build openssl with CMake. However we have prebuilt binaries which you can download and extract into your build tree. @@ -117,6 +124,12 @@ How to use this xcopy/yesihq openssl-1.0.1p-vs2008\bin dist\bin" xcopy/yesihq openssl-1.0.1p-vs2008\lib dist\bin" xcopy/yesihq openssl-1.0.1p-vs2008\include dist\include" + + curl does not seem to build with CMake. + It announces itself "the curl cmake build system is poorly maintained. Be aware" + + I have given up trying to get this to work and used nmake in the winbuild directory. + For more information, read: winbuild\BUILD.WINDOWS.txt 6 Build options You can inspect CMake options by running grep OPTION on CMakeLists.txt in @@ -151,7 +164,7 @@ How to use this 8 Building with different libraries You can change the standard libraries. For example, to build with curl-7.39.0 1) set _CURL_=curl-7.39.0 - 2) put curl-7.39.0.tar.gz into your build directory + 2) put (read-only) curl-7.39.0.tar.gz in your build directory To change the version of openssl: 1) set _OPENSSL_=openssl-1.0.1j @@ -162,17 +175,16 @@ How to use this Building this with Visual Studio is to to be documented 9 Rebuilding with VS 2005/8/10/12/13/15 32/64 - The script cmakeRebuildAll.cmd is provided for convenience: - cmakeRebuildAll.cmd > rebuildAll.txt + The script cmakeBuildAll.cmd is provided for convenience: + cmakeBuildAll.cmd --test > rebuildAll.txt To view progress, open another shell: tail -f rebuildAll.txt - cmakeRebuildAll.cmd takes about a hour. + cmakeBuildAll.cmd takes about a hour if you don't specify --webready 12 build+test cycles of about 5 minutes each. - -TODO: ---webready isn't working (Daniel to fix) + With webready, 12 build+test cycles of 12 minutes = 2.5 hours Status: +2015-12-05 Fixed --webready 2015-11-28 Added option -static Build into: dist/2005/x64/dll/Release/{lib|bin|include} diff --git a/contrib/cmake/msvc/cmakeBuild.cmd b/contrib/cmake/msvc/cmakeBuild.cmd index df1c0430..baf133c6 100755 --- a/contrib/cmake/msvc/cmakeBuild.cmd +++ b/contrib/cmake/msvc/cmakeBuild.cmd @@ -237,7 +237,6 @@ echo.&&echo.&&echo. if defined _WEBREADY_ ( if /I "%_VS_%" == "2005" set "_UNSUPPORTED_=openssl not available for VS 2005" - if /I "%_VS_%" == "2015" set "_UNSUPPORTED_=libssh and libcurl do not build for VS2015" ) if defined _UNSUPPORTED_ ( @@ -260,12 +259,16 @@ set _TARGET_= if DEFINED _WEBREADY_ ( echo ---------- OPENSSL installing pre-built binaries ----------------- call:getOPENSSL %_OPENSSL_% - if errorlevel 1 set _OPENSSL_= + if errorlevel 1 set _OPENSSL_= && set _WEBREADY_= +) +if DEFINED _WEBREADY_ ( echo ---------- LIBSSH building with cmake ----------------- call:buildLib %_LIBSSH_% -DCMAKE_INSTALL_PREFIX=%_INSTALL_% -DCMAKE_LIBRARY_PATH=%_LIBPATH_% -DCMAKE_INCLUDE_PATH=%_INCPATH_% -DWITH_GSSAPI=OFF -DWITH_ZLIB=ON -DWITH_SFTP=ON -DWITH_SERVER=OFF -DWITH_EXAMPLES=OFF -DWITH_NACL=OFF -DWITH_PCAP=OFF - if errorlevel 1 set _LIBSSH_= + if errorlevel 1 set _LIBSSH_= && set _WEBREADY_= +) +if DEFINED _WEBREADY_ ( set CURL_CMAKE= if DEFINED CURL_CMAKE ( echo ---------- CURL building with cmake ----------------- @@ -286,11 +289,10 @@ if DEFINED _WEBREADY_ ( xcopy/yesihq builds\libcurl-vc%_VC_%-%RawPlatform%-release-dll-ssl-dll-zlib-dll-ipv6-sspi\include\curl "%_INCPATH_%"\curl popd ) -) else ( - set _CURL_= - set _LIBSSH_= ) +if NOT DEFINED _WEBREADY_ set _CURL_= && set _LIBSSH_= + echo ---------- EXIV2 building with cmake ------------------ set "EXIV_B=%_TEMP_%\exiv2" if defined _REBUILD_ IF EXIST "%EXIV_B%" rmdir/s/q "%EXIV_B%" diff --git a/contrib/cmake/msvc/cmakeBuildAll.cmd b/contrib/cmake/msvc/cmakeBuildAll.cmd new file mode 100755 index 00000000..e468d525 --- /dev/null +++ b/contrib/cmake/msvc/cmakeBuildAll.cmd @@ -0,0 +1 @@ +for %%a in (64 32) do for %%v in (2015 2013 2012 2010 2008 2005) do cmd /c "vcvars %%v %%a && cmakeBuild %* 2>&1" diff --git a/contrib/cmake/msvc/cmakeRebuildAll.cmd b/contrib/cmake/msvc/cmakeRebuildAll.cmd deleted file mode 100755 index a8957e67..00000000 --- a/contrib/cmake/msvc/cmakeRebuildAll.cmd +++ /dev/null @@ -1,3 +0,0 @@ -for %%a in (64 32) do for %%v in (2015 2013 2012 2010 2008 2005) do cmd /c "vcvars %%v %%a && cmakeBuild --rebuild --test 2>&1" - -rem cmd /c "vcvars 2012 64 && cmakeBuild --rebuild --test 2>&1"