From 76458232f82b720653c1e73c5ed8a038f6797c1e Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Tue, 17 Nov 2015 20:29:27 +0000 Subject: [PATCH] #1041. Simplified building and linking curl etc. curl etc aren't building (something to do with CMake). Good day's progress. --- contrib/cmake/msvc/ReadMe.txt | 16 ++-- contrib/cmake/msvc/build.cmd | 154 ++++++++++------------------------ contrib/cmake/msvc/setenv.cmd | 4 +- 3 files changed, 54 insertions(+), 120 deletions(-) diff --git a/contrib/cmake/msvc/ReadMe.txt b/contrib/cmake/msvc/ReadMe.txt index 430ede79..e2b9f050 100755 --- a/contrib/cmake/msvc/ReadMe.txt +++ b/contrib/cmake/msvc/ReadMe.txt @@ -1,16 +1,20 @@ contrib/cmake/msvc/ReadMe.txt ----------------------------- -These scripts are "in development". They are derived from Daniels contrib/build scripts. +These scripts are "in development". +They are derived from Daniels contrib/build scripts. -Rather that endlessly discuss these scripts with Daniel +Status: +2015-11-17 Added command-line parser + Building exiv2 with zlib and expat and exiv2 + -webready = curl etc broken +2015-11-16 The current status is "Work in Progress" = Not working yet. + These script are not for public use at the moment by Daniel or anybody else. + +Rather than endlessly discuss these scripts with Daniel I'm going to do parallel development and see how that goes. I'll discuss this with Daniel when I'm convinced my versions are working well. -The current status is "Work in Progress" = Not working yet. -These script are not for public use at the moment by Daniel or anybody else. - Robin Mills robin@clanmills.com -Updated: 2015-11-16 diff --git a/contrib/cmake/msvc/build.cmd b/contrib/cmake/msvc/build.cmd index 879f2dd3..247e56a3 100755 --- a/contrib/cmake/msvc/build.cmd +++ b/contrib/cmake/msvc/build.cmd @@ -1,7 +1,7 @@ @echo off setlocal enableextensions -set "BUILD_DIR=%CD%" +set "_BUILDDIR_=%CD%" :GETOPTS if /I "%1" == "--help" ( @@ -12,6 +12,7 @@ if /I "%1" == "--webready" set "_WEBREADY_=1" if /I "%1" == "--config" set "_CONFIG_=%2"& shift if /I "%1" == "--temp" set "_TEMP_=%2"& shift if /I "%1" == "--generator" set "_GENERATOR_=%2"& shift +if /I "%1" == "--cygwin" set "_CYGWIN_=%2"& shift if /I "%1" == "--exiv2" set "_EXIV2_=%2"& shift if /I "%1" == "--verbose" set "_VERBOSE_=1" if /I "%1" == "--dryrun" set "_DRYRUN_=1" @@ -156,49 +157,31 @@ IF ERRORLEVEL 1 ( ) rem ---- -call:echo testing the cygwin_dir exists -if NOT EXIST %CYGWIN_DIR% ( - echo "*** CYGWIN_DIR %CYGWIN_DIR% does not exist ***" +call:echo testing that _CYGWIN_ exists +if NOT EXIST %_CYGWIN_% ( + echo "*** _CYGWIN_ %_CYGWIN_% does not exist ***" GOTO error_end ) rem ---- call:echo testing cygwin tools are available -SET 7Z_PATH=%CYGWIN_DIR%\lib\p7zip\7z.exe -IF NOT EXIST %CYGWIN_DIR%\lib\p7zip\7z.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\cp.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\gzip.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\mv.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\svn.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\tar.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\unzip.exe GOTO cygwin_error -IF NOT EXIST %CYGWIN_DIR%\bin\wget.exe GOTO cygwin_error -rem SET PATH=%PATH%;%CYGWIN_DIR%\bin +IF NOT EXIST %_CYGWIN_%\bin\cp.exe GOTO cygwin_error +IF NOT EXIST %_CYGWIN_%\bin\tar.exe GOTO cygwin_error GOTO cygwin_ok :cygwin_error -echo ERROR: Cygwin with -echo 7z -echo cp -echo gzip -echo mv -echo svn -echo tar -echo unzip -echo wget -echo is required +echo "*** Cygwin with bin/cp and bin/tar are required ***" GOTO error_end :cygwin_ok -pushd %CYGWIN_DIR% -set CYGWIN_DIR=%CD% +pushd %_CYGWIN_% +set _CYGWIN_=%CD% popd -set %PATH=%PATH%;%CYGWIN_DIR%\bin" rem ---- call:echo testing temporary directory -IF NOT EXIST %_TEMP_% mkdir %_TEMP_% -pushd "%_TEMP_%" +IF NOT EXIST "%_TEMP_%" mkdir "%_TEMP_%" +pushd "%_TEMP_%" set "_TEMP_=%CD%" popd call:echo _TEMP_ = %_TEMP_% @@ -207,31 +190,20 @@ rem ---- call:echo testing INSTALL SET _INSTALL_=dist IF NOT EXIST %_INSTALL_% mkdir %_INSTALL_% -pushd %_INSTALL_% -set "_INSTALL_=%CD%" +pushd %_INSTALL_% +set "_INSTALL_=%CD%" popd -call:echo _INSTALL_ = %_INSTALL_% +call:echo _INSTALL_ = %_INSTALL_% if NOT DEFINED _GENERATOR_ set "_GENERATOR_=%VS_CMAKE%" if /I "%_GENERATOR_%" == "NMake" set "_GENERATOR_=NMake Makefiles" -call:echo setting cmake options -IF DEFINED _WEBREADY_ set T=ON -IF NOT DEFINED _WEBREADY_ set T=OFF - set "_WEBREADY_=-DEXIV2_ENABLE_WEBREADY=%T%" rem ---- echo. echo config = %_CONFIG_% webready = %_WEBREADY_% _EXIV2_= %_EXIV2_%" IF DEFINED _DRYRUN_ exit /b 1 -rem ---- location of library code --------- -rem https://github.com/bagder/curl -SET CURL_COMMIT_LONG=dd39a671019d713bd077be9eed511c2dc6013598 - -rem http://www.npcglib.org/~stathis/blog/precompiled-openssl/ -SET OPENSSL_VERSION=openssl-1.0.2d - echo ---------- building ZLIB ------------------ call:buildLib zlib-1.2.8 @@ -240,84 +212,40 @@ set "TARGET=--target expat" call:buildLib expat-2.1.0 set TARGET= -rem SET OPENSSL_LONG=%OPENSSL_VERSION%-%VS_OPENSSL% -rem IF NOT EXIST %_TEMP_%\%OPENSSL_LONG%.7z ( -rem %CYGWIN_DIR%\bin\wget.exe -O %_TEMP_%/%OPENSSL_LONG%.7z --no-check-certificate http://www.npcglib.org/~stathis/downloads/%OPENSSL_LONG%.7z -rem ) -rem IF NOT EXIST %OPENSSL_LONG% ( -rem %CYGWIN_DIR%\lib\p7zip\7z.exe x %_TEMP_%/%OPENSSL_LONG%.7z -rem IF %Platform% EQU x64 ( -rem ren %OPENSSL_LONG%\lib xxlib -rem ren %OPENSSL_LONG%\lib64 lib -rem ren %OPENSSL_LONG%\bin xxbin -rem ren %OPENSSL_LONG%\bin64 bin -rem ) -rem ) -rem robocopy %OPENSSL_LONG%\bin %_INSTALL_%\bin libeay32MD.dll /MIR /NJS >nul -rem robocopy %OPENSSL_LONG%\bin %_INSTALL_%\bin ssleay32MD.dll /MIR /NJS >nul -rem -rem -rem SET CURL_COMMIT=%CURL_COMMIT_LONG:~0,7% -rem IF NOT EXIST %_TEMP_%\curl-%CURL_COMMIT%.zip ( -rem %CYGWIN_DIR%\bin\wget.exe -O %_TEMP_%/curl-%CURL_COMMIT%.zip --no-check-certificate http://github.com/bagder/curl/zipball/%CURL_COMMIT_LONG% -rem ) -rem -rem IF NOT EXIST curl-%CURL_COMMIT% ( -rem %CYGWIN_DIR%\bin\unzip.exe -q %_TEMP_%/curl-%CURL_COMMIT%.zip -rem %CYGWIN_DIR%\bin\mv.exe bagder-curl-* curl-%CURL_COMMIT% -rem ) -rem -rem IF NOT EXIST curl-%CURL_COMMIT%.build ( -rem mkdir curl-%CURL_COMMIT%.build -rem -rem pushd curl-%CURL_COMMIT%.build -rem cmake -G "%_GENERATOR_%" -DCMAKE_INSTALL_PREFIX=..\%_INSTALL_% -DCMAKE_PREFIX_PATH=..\%OPENSSL_LONG% -DBUILD_CURL_TESTS=OFF -DCMAKE_USE_OPENSSL=ON -DCMAKE_USE_LIBSSH2=OFF ..\curl-%CURL_COMMIT% -rem IF errorlevel 1 goto error_end -rem cmake --build . --config %_CONFIG_% -rem IF errorlevel 1 goto error_end -rem cmake --build . --config %_CONFIG_% --target install -rem IF errorlevel 1 goto error_end -rem -rem popd -rem ) -rem -rem SET SSH_VERSION=0.7.2 -rem IF NOT EXIST %_TEMP_%\libssh-%SSH_VERSION%.zip ( -rem %CYGWIN_DIR%\bin\wget.exe -O %_TEMP_%/libssh-%SSH_VERSION%.zip --no-check-certificate https://git.libssh.org/projects/libssh.git/snapshot/libssh-%SSH_VERSION%.zip -rem ) -rem IF NOT EXIST libssh-%SSH_VERSION% ( -rem %CYGWIN_DIR%\bin\unzip.exe -q %_TEMP_%/libssh-%SSH_VERSION%.zip -rem ) -rem IF NOT EXIST libssh-%SSH_VERSION%.build ( -rem mkdir libssh-%SSH_VERSION%.build -rem -rem pushd libssh-%SSH_VERSION%.build -rem -rem cmake -G "%_GENERATOR_%" -DWITH_GSSAPI=OFF -DWITH_ZLIB=ON -DWITH_SFTP=ON -DWITH_SERVER=OFF -DWITH_EXAMPLES=OFF -DWITH_NACL=OFF -DCMAKE_PREFIX_PATH=..\%OPENSSL_LONG% -DWITH_PCAP=OFF -DCMAKE_INSTALL_PREFIX=..\%_INSTALL_% ..\libssh-%SSH_VERSION% -rem -rem IF errorlevel 1 goto error_end -rem cmake --build . --config %_CONFIG_% -rem IF errorlevel 1 goto error_end -rem cmake --build . --config %_CONFIG_% --target install -rem IF errorlevel 1 goto error_end -rem -rem popd -rem ) +if DEFINED _WEBREADY_ ( + echo ---------- building LIBSSH ----------------- + set _SSH_=-DEXIV2_ENABLE_SSH=ON + call:buildLib libssh-0.5.5 + if errorlevel 1 set _SSH_=-DEXIV2_ENABLE_SSH=OFF + echo ---------- building OPENSSL ----------------- + call:buildLib openssl-1.0.1j + + echo ---------- building CURL ----------------- + set _CURL_=-DEXIV2_ENABLE_CURL=ON + call:buildLib curl-7.39.0 + if errorlevel 1 set _CURL_=-DEXIV2_ENABLE_CURL=OFF + + set _WEBREADY_=-DEXIV2_ENABLE_WEBREADY=ON +) else ( + set _WEBREADY_=-DEXIV2_ENABLE_WEBREADY=OFF + set _CURL_=-DEXIV2_ENABLE_CURL=OFF + set _SSH_=-DEXIV2_ENABLE_SSH=OFF +) echo ---------- building EXIV2 ------------------ set EXIV_BUILD="%_TEMP_%\exiv2" if defined _REBUILD_ "%EXIV_BUILD%" -IF NOT EXIST "%EXIV_BUILD%" mkdir "%EXIV_BUILD%" +IF NOT EXIST "%EXIV_BUILD%" mkdir "%EXIV_BUILD%" pushd "%EXIV_BUILD%" call:run cmake -G "%_GENERATOR_%" ^ "-DCMAKE_INSTALL_PREFIX=%_INSTALL_%" "-DCMAKE_PROGRAM_PATH=%SVN_DIR%" ^ - "%_WEBREADY_%" -DEXIV2_ENABLE_BUILD_SAMPLES=ON ^ - -DEXIV2_ENABLE_CURL=OFF -DEXIV2_ENABLE_SSH=OFF -DEXIV2_ENABLE_NLS=OFF ^ - -DEXIV2_ENABLE_WIN_UNICODE=OFF -DEXIV2_ENABLE_SHARED=ON ^ "-DCMAKE_LIBRARY_PATH=%INSTALL_PATH%\lib" "-DCMAKE_INCLUDE_PATH=%INSTALL_PATH%\include" ^ + -DEXIV2_ENABLE_NLS=OFF -DEXIV2_ENABLE_BUILD_SAMPLES=ON ^ + -DEXIV2_ENABLE_WIN_UNICODE=OFF -DEXIV2_ENABLE_SHARED=ON ^ + %_WEBREADY_% %_CURL_% %_SSH_% ^ "%_EXIV2_%" IF errorlevel 1 ( @@ -379,7 +307,7 @@ exit /b %ERRORLEVEL% rem ------------------------------------------------------------- :buildLib -cd "%BUILD_DIR%" +cd "%_BUILDDIR_%" set LIB=%1% set LIB_T=%LIB%.tar @@ -392,7 +320,7 @@ IF NOT EXIST "%LIB_Z%" ( ) if defined _REBUILD_ rmdir/s/q "%LIB%" -IF NOT EXIST "%LIB%" "%CYGWIN_DIR%\bin\tar.exe" xzf "%LIB_Z%" +IF NOT EXIST "%LIB%" "%_CYGWIN_%\bin\tar.exe" xzf "%LIB_Z%" if defined _REBUILD_ rmdir/s/q "%LIB_B%" IF NOT EXIST %LIB_B% mkdir "%LIB_B%" @@ -424,3 +352,5 @@ IF NOT EXIST %LIB_B% mkdir "%LIB_B%" exit /b 0 +rem That's all Folks! +rem ------------------------------------------------------------- diff --git a/contrib/cmake/msvc/setenv.cmd b/contrib/cmake/msvc/setenv.cmd index 6b9d3f1e..a4af4abe 100755 --- a/contrib/cmake/msvc/setenv.cmd +++ b/contrib/cmake/msvc/setenv.cmd @@ -1,7 +1,7 @@ @echo off -if not defined Configuration SET _CONFIG_=Release -IF NOT DEFINED CYGWIN_DIR SET CYGWIN_DIR=c:\cygwin64 +if not defined _CONFIG_ SET _CONFIG_=Release +IF NOT DEFINED _CYGWIN_ SET _CYGWIN_=c:\cygwin64 if NOT DEFINED _TEMP_ SET _TEMP_=temp if NOT DEFINED _EXIV2_ SET _EXIV2_=..\trunk