[Ttssh2-commit] [7168] libs/ で必要なライブラリを cmake で生成する

Back to archive index

scmno****@osdn***** scmno****@osdn*****
2018年 7月 28日 (土) 02:05:19 JST


Revision: 7168
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7168
Author:   zmatsuo
Date:     2018-07-28 02:05:19 +0900 (Sat, 28 Jul 2018)
Log Message:
-----------
libs/ で必要なライブラリを cmake で生成する
libs/buildall_cmake.bat を実行すると libs/ にツールチェーンごとのライブラリが生成される
VS2017のみ (openssl.cmakeの35行目付近と、buildall.cmakeの先頭付近、要調整)

Added Paths:
-----------
    branches/cmake/libs/VSToolchain.cmake
    branches/cmake/libs/buildall.cmake
    branches/cmake/libs/buildall_cmake.bat
    branches/cmake/libs/oniguruma.cmake
    branches/cmake/libs/openssl.cmake
    branches/cmake/libs/putty.cmake
    branches/cmake/libs/zlib.cmake

-------------- next part --------------
Added: branches/cmake/libs/VSToolchain.cmake
===================================================================
--- branches/cmake/libs/VSToolchain.cmake	                        (rev 0)
+++ branches/cmake/libs/VSToolchain.cmake	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,3 @@
+# write to CMakeCache.txt
+set(CMAKE_C_FLAGS_DEBUG "/DWIN32 /D_WINDOWS /W3 /MDd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
+set(CMAKE_C_FLAGS_RELEASE "/DWIN32 /D_WINDOWS /W3 /MD /O2 /Ob2 /DNDEBUG" CACHE STRING "" FORCE)

Added: branches/cmake/libs/buildall.cmake
===================================================================
--- branches/cmake/libs/buildall.cmake	                        (rev 0)
+++ branches/cmake/libs/buildall.cmake	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,22 @@
+
+set(GENERATOR "Visual Studio 15 2017")
+#set(GENERATOR "Visual Studio 14 2015")
+
+# utf-8
+execute_process(
+  COMMAND cmd.exe /c chcp 65001
+  )
+
+# build
+execute_process(
+  COMMAND ${CMAKE_COMMAND} -DGENERATOR=${GENERATOR} -P oniguruma.cmake
+  )
+execute_process(
+  COMMAND ${CMAKE_COMMAND} -DGENERATOR=${GENERATOR} -P zlib.cmake
+  )
+execute_process(
+  COMMAND ${CMAKE_COMMAND} -P putty.cmake
+  )
+execute_process(
+  COMMAND ${CMAKE_COMMAND} -DGENERATOR=${GENERATOR} -P openssl.cmake
+  )

Added: branches/cmake/libs/buildall_cmake.bat
===================================================================
--- branches/cmake/libs/buildall_cmake.bat	                        (rev 0)
+++ branches/cmake/libs/buildall_cmake.bat	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,4 @@
+setlocal
+cmake -P buildall.cmake
+endlocal
+pause

Added: branches/cmake/libs/oniguruma.cmake
===================================================================
--- branches/cmake/libs/oniguruma.cmake	                        (rev 0)
+++ branches/cmake/libs/oniguruma.cmake	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,101 @@
+
+#set(GENERATOR "Visual Studio 15 2017")
+string(REPLACE " " "_" GENERATOR_ ${GENERATOR})
+
+set(SRC_DIR_BASE "onig-6.8.2")
+set(SRC_ARC "onig-6.8.2.tar.gz")
+set(SRC_URL "https://github.com/kkos/oniguruma/releases/download/v6.8.2/onig-6.8.2.tar.gz")
+set(SRC_ARC_HASH_SHA1 4bd58a64fcff233118dcdf6d1ad9607c67bdb878)
+
+set(DOWN_DIR "${CMAKE_SOURCE_DIR}/donwload/oniguruma")
+set(EXTRACT_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/src")
+set(SRC_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/src/${SRC_DIR_BASE}")
+set(BUILD_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/build_${GENERATOR_}")
+set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/oniguruma_${GENERATOR_}")
+
+if(NOT EXISTS ${SRC_DIR}/README.md)
+
+  file(DOWNLOAD
+	${SRC_URL}
+	${DOWN_DIR}/${SRC_ARC}
+    EXPECTED_HASH SHA1=${SRC_ARC_HASH_SHA1}
+    SHOW_PROGRESS
+    )
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTRACT_DIR}
+    )
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC}
+    WORKING_DIRECTORY ${EXTRACT_DIR}
+    )
+
+endif()
+
+########################################
+
+file(MAKE_DIRECTORY "${BUILD_DIR}")
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} ${SRC_DIR} -G ${GENERATOR}
+  -DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/VSToolchain.cmake
+  -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
+  -DBUILD_SHARED_LIBS=OFF
+  WORKING_DIRECTORY ${BUILD_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake generate fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config release
+  WORKING_DIRECTORY ${BUILD_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake build fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config release --target install
+  WORKING_DIRECTORY ${BUILD_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake install fail ${rv}")
+endif()
+
+########################################
+
+file(MAKE_DIRECTORY "${BUILD_DIR}_debug")
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} ${SRC_DIR} -G ${GENERATOR}
+  -DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/VSToolchain.cmake
+  -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}_debug
+  -DBUILD_SHARED_LIBS=OFF
+  WORKING_DIRECTORY ${BUILD_DIR}_debug
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake generate fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config debug
+  WORKING_DIRECTORY ${BUILD_DIR}_debug
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake build fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config debug --target install
+  WORKING_DIRECTORY ${BUILD_DIR}_debug
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake install fail ${rv}")
+endif()

Added: branches/cmake/libs/openssl.cmake
===================================================================
--- branches/cmake/libs/openssl.cmake	                        (rev 0)
+++ branches/cmake/libs/openssl.cmake	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,128 @@
+
+#set(GENERATOR "Visual Studio 15 2017")
+string(REPLACE " " "_" GENERATOR_ ${GENERATOR})
+
+set(SRC_DIR_BASE "openssl-1.0.2o")
+set(SRC_ARC "openssl-1.0.2o.tar.xz")
+set(SRC_URL "https://www.openssl.org/source/openssl-1.0.2o.tar.gz")
+set(SRC_ARC_HASH_SHA256 ec3f5c9714ba0fd45cb4e087301eb1336c317e0d20b575a125050470e8089e4d)
+
+set(DOWN_DIR "${CMAKE_SOURCE_DIR}/donwload/openssl")
+
+set(EXTRACT_DIR "${CMAKE_SOURCE_DIR}/build/openssl/src_${GENERATOR_}")
+set(SRC_DIR "${EXTRACT_DIR}/${SRC_DIR_BASE}")
+set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/openssl_${GENERATOR_}")
+
+########################################
+
+file(DOWNLOAD
+  ${SRC_URL}
+  ${DOWN_DIR}/${SRC_ARC}
+  EXPECTED_HASH SHA256=${SRC_ARC_HASH_SHA256}
+  SHOW_PROGRESS
+  )
+
+########################################
+
+find_program(
+  PERL perl.exe
+  HINTS c:/cygwin/usr/bin
+  HINTS c:/cygwin64/usr/bin
+  )
+if(PERL-NOTFOUND)
+  message(FATAL_ERROR "perl not found")
+endif()
+if(GENERATOR MATCHES "Visual Studio 15 2017")
+  find_program(
+	VCVARS32 vcvars32.bat
+	HINTS "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build"
+	HINTS "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Auxiliary/Build"
+	HINTS "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Auxiliary/Build"
+	)
+else()
+  set(VCVARS32-NOTFOUND 1)
+endif()  
+if(VCVARS32-NOTFOUND)
+  message(FATAL_ERROR "vcvars32.bat not found")
+endif()
+
+########################################
+
+if(NOT EXISTS ${SRC_DIR}/README)
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTRACT_DIR}
+    )
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC}
+    WORKING_DIRECTORY ${EXTRACT_DIR}
+    )
+
+endif()
+
+########################################
+
+file(TO_NATIVE_PATH ${INSTALL_DIR} INSTALL_DIR_N)
+file(WRITE "${SRC_DIR}/build_cmake.bat"
+  "call \"${VCVARS32}\"\n"
+  "cd %~dp0\n"
+  "${PERL} Configure no-asm VC-WIN32 --prefix=${INSTALL_DIR_N}\n"
+  "call ms\\do_ms.bat\n"
+  "nmake -f ms\\nt.mak install\n"
+  )
+
+set(BUILD_CMAKE_BAT "${SRC_DIR}/build_cmake.bat")
+file(TO_NATIVE_PATH ${BUILD_CMAKE_BAT} BUILD_CMAKE_BAT_N)
+execute_process(
+  COMMAND cmd /c ${BUILD_CMAKE_BAT_N}
+  WORKING_DIRECTORY ${SRC_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake build fail ${rv}")
+endif()
+
+########################################
+
+set(EXTRACT_DIR "${EXTRACT_DIR}_debug")
+set(SRC_DIR "${EXTRACT_DIR}/${SRC_DIR_BASE}")
+set(INSTALL_DIR "${INSTALL_DIR}_debug")
+
+########################################
+
+if(NOT EXISTS ${SRC_DIR}/README)
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTRACT_DIR}
+    )
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC}
+    WORKING_DIRECTORY ${EXTRACT_DIR}
+    )
+
+endif()
+
+########################################
+
+file(TO_NATIVE_PATH ${INSTALL_DIR} INSTALL_DIR_N)
+file(WRITE "${SRC_DIR}/build_cmake.bat"
+  "call \"${VCVARS32}\"\n"
+  "cd %~dp0\n"
+  "${PERL} Configure no-asm debug-VC-WIN32 --prefix=${INSTALL_DIR_N}\n"
+  "call ms\\do_ms.bat\n"
+  "nmake -f ms\\nt.mak install\n"
+  )
+
+set(BUILD_CMAKE_BAT "${SRC_DIR}/build_cmake.bat")
+file(TO_NATIVE_PATH ${BUILD_CMAKE_BAT} BUILD_CMAKE_BAT_N)
+execute_process(
+  COMMAND cmd /c ${BUILD_CMAKE_BAT_N}
+  WORKING_DIRECTORY ${SRC_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake build fail ${rv}")
+endif()
+

Added: branches/cmake/libs/putty.cmake
===================================================================
--- branches/cmake/libs/putty.cmake	                        (rev 0)
+++ branches/cmake/libs/putty.cmake	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,32 @@
+
+set(SRC_DIR_BASE "putty-0.70")
+set(SRC_ARC "putty-0.70.tar.gz")
+set(SRC_URL "https://the.earth.li/~sgtatham/putty/0.70/putty-0.70.tar.gz")
+set(SRC_ARC_HASH_SHA256 bb8aa49d6e96c5a8e18a057f3150a1695ed99a24eef699e783651d1f24e7b0be)
+
+set(DOWN_DIR "${CMAKE_SOURCE_DIR}/donwload/putty")
+set(EXTRACT_DIR "${CMAKE_SOURCE_DIR}/build/putty/src")
+set(SRC_DIR "${CMAKE_SOURCE_DIR}/build/putty/src/${SRC_DIR_BASE}")
+set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/putty")
+
+if(NOT EXISTS ${INSTALL_DIR}/README)
+
+  file(DOWNLOAD
+	${SRC_URL}
+	${DOWN_DIR}/${SRC_ARC}
+    EXPECTED_HASH SHA256=${SRC_ARC_HASH_SHA256}
+    SHOW_PROGRESS
+    )
+
+  file(MAKE_DIRECTORY ${EXTRACT_DIR})
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC}
+    WORKING_DIRECTORY ${EXTRACT_DIR}
+    )
+
+  file(REMOVE_RECURSE ${INSTALL_DIR})
+  file(RENAME ${SRC_DIR} ${INSTALL_DIR})
+  file(REMOVE_RECURSE ${EXTRACT_DIR})
+
+endif()

Added: branches/cmake/libs/zlib.cmake
===================================================================
--- branches/cmake/libs/zlib.cmake	                        (rev 0)
+++ branches/cmake/libs/zlib.cmake	2018-07-27 17:05:19 UTC (rev 7168)
@@ -0,0 +1,100 @@
+
+#set(GENERATOR "Visual Studio 15 2017")
+string(REPLACE " " "_" GENERATOR_ ${GENERATOR})
+
+set(SRC_DIR_BASE "zlib-1.2.11")
+set(SRC_ARC "zlib-1.2.11.tar.xz")
+set(SRC_URL "https://zlib.net/zlib-1.2.11.tar.xz")
+set(SRC_ARC_HASH_SHA256 4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066)
+
+set(DOWN_DIR "${CMAKE_SOURCE_DIR}/donwload/zlib")
+set(EXTRACT_DIR "${CMAKE_SOURCE_DIR}/build/zlib/src")
+set(SRC_DIR "${CMAKE_SOURCE_DIR}/build/zlib/src/${SRC_DIR_BASE}")
+set(BUILD_DIR "${CMAKE_SOURCE_DIR}/build/zlib/build_${GENERATOR_}")
+set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/zlib_${GENERATOR_}")
+
+if(NOT EXISTS ${SRC_DIR}/README)
+
+  file(DOWNLOAD
+	${SRC_URL}
+	${DOWN_DIR}/${SRC_ARC}
+    EXPECTED_HASH SHA256=${SRC_ARC_HASH_SHA256}
+    SHOW_PROGRESS
+    )
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTRACT_DIR}
+    )
+
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC}
+    WORKING_DIRECTORY ${EXTRACT_DIR}
+    )
+
+endif()
+
+########################################
+
+file(MAKE_DIRECTORY "${BUILD_DIR}")
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} ${SRC_DIR} -G ${GENERATOR}
+  -DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/VSToolchain.cmake
+  -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
+  WORKING_DIRECTORY ${BUILD_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake generate fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config release
+  WORKING_DIRECTORY ${BUILD_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake build fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config release --target install
+  WORKING_DIRECTORY ${BUILD_DIR}
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake install fail ${rv}")
+endif()
+
+########################################
+
+file(MAKE_DIRECTORY "${BUILD_DIR}_debug")
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} ${SRC_DIR} -G ${GENERATOR}
+  -DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/VSToolchain.cmake
+  -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}_debug
+  WORKING_DIRECTORY ${BUILD_DIR}_debug
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake generate fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config debug
+  WORKING_DIRECTORY ${BUILD_DIR}_debug
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake build fail ${rv}")
+endif()
+
+execute_process(
+  COMMAND ${CMAKE_COMMAND} --build . --config debug --target install
+  WORKING_DIRECTORY ${BUILD_DIR}_debug
+  RESULT_VARIABLE rv
+  )
+if(NOT rv STREQUAL "0")
+  message(FATAL_ERROR "cmake install fail ${rv}")
+endif()



Ttssh2-commit メーリングリストの案内
Back to archive index