[ttssh2-commit] [9813] ライブラリの更新チェックを可能にした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 3月 14日 (月) 23:44:21 JST


Revision: 9813
          https://osdn.net/projects/ttssh2/scm/svn/commits/9813
Author:   zmatsuo
Date:     2022-03-14 23:44:20 +0900 (Mon, 14 Mar 2022)
Log Message:
-----------
ライブラリの更新チェックを可能にした

- ライブラリが存在しない、想定したものと異なる場合にライブラリをダウンロードド、展開する
- 強制的にダウンロード、展開する

Modified Paths:
--------------
    trunk/installer/release.bat

Added Paths:
-----------
    trunk/libs/checklibs.cmake

-------------- next part --------------
Modified: trunk/installer/release.bat
===================================================================
--- trunk/installer/release.bat	2022-03-14 14:44:11 UTC (rev 9812)
+++ trunk/installer/release.bat	2022-03-14 14:44:20 UTC (rev 9813)
@@ -17,10 +17,11 @@
 call :setup_tools_env
 
 echo =======
-echo 1. download libs, rebuild libs and Tera Term, installer, archive
-echo 2. build libs
-echo 3. build libs and rebuild Tera Term, installer, archive (for Release build)
-echo 4. build libs and Tera Term (for Normal build, snapshot)
+echo 1. force download and rebuild libs / rebuild Tera Term, installer, archive
+echo 2. download and build libs / rebuild Tera Term, installer, archive
+echo 3. download and build libs
+echo 4. build libs and rebuild Tera Term, installer, archive (for Release build)
+echo 5. build libs and Tera Term (for Normal build, snapshot)
 echo 7. exec cmd.exe
 echo 8. check tools
 echo 9. exit
@@ -33,19 +34,26 @@
 echo %no%
 
 if "%no%" == "1" (
-    call :update_libs
+    call :download_libs force
     call :build_teraterm freeze_state
 )
 
 if "%no%" == "2" (
+    call :download_libs
     call :build_libs
+    call :build_teraterm freeze_state
 )
 
 if "%no%" == "3" (
+    call :download_libs
+    call :build_libs
+)
+
+if "%no%" == "4" (
     call :build_teraterm freeze_state
 )
 
-if "%no%" == "4" (
+if "%no%" == "5" (
     call :build_teraterm
 )
 
@@ -62,11 +70,23 @@
 
 
 rem ####################
-:update_libs
+:download_libs
 
 setlocal
 cd /d %CUR%..\libs
 
+if "%1" == "force" goto download_libs_download
+
+cmake -P checklibs.cmake
+call checklibs_result.bat
+del checklibs_result.bat
+if "%RESULT%" == "1" (
+    echo already all library downloaded
+    goto download_libs_finish
+)
+
+:download_libs_download
+
 :oniguruma
 %CURL% -L https://github.com/kkos/oniguruma/releases/download/v%ONIG_VERSION%/onig-%ONIG_VERSION%.tar.gz -o oniguruma.tar.gz
 %CMAKE% -E tar xf oniguruma.tar.gz
@@ -110,6 +130,7 @@
 %CMAKE% -E rm -rf libressl
 %CMAKE% -E rename libressl-%LIBRESSL_VERSION% libressl
 
+:download_libs_finish
 endlocal
 exit /b 0
 

Added: trunk/libs/checklibs.cmake
===================================================================
--- trunk/libs/checklibs.cmake	                        (rev 0)
+++ trunk/libs/checklibs.cmake	2022-03-14 14:44:20 UTC (rev 9813)
@@ -0,0 +1,36 @@
+# ライブラリのバージョンをチェックする
+
+# 全体のhashはこの値になる
+set(EXPECT_HASH "7605acb0b9d3e7eb764cee6b4b68817609a8b21929c4e7a22d4785f0010ea3d6")
+
+# バージョンをチェックするために使用するファイル
+set(CHECK_VERSION_FILES
+  cJSON/CHANGELOG.md
+  libressl/ChangeLog
+  oniguruma/HISTORY
+  putty/version.h
+  SFMT/CHANGE-LOG.txt
+  zlib/ChangeLog
+  )
+
+# 各ファイルのhash
+execute_process(
+  COMMAND ${CMAKE_COMMAND} -E sha256sum ${CHECK_VERSION_FILES}
+  OUTPUT_VARIABLE OV
+  WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+  )
+#message("${OV}")
+
+# 全体のhash
+string(SHA256 ACTUAL_HASH ${OV})
+
+# 結果
+if(${ACTUAL_HASH} STREQUAL ${EXPECT_HASH})
+  message("ok")
+  file(WRITE "checklibs_result.bat" "set RESULT=1\r\n")
+else()
+  message("ng")
+  message("ACTUAL_HASH=${ACTUAL_HASH}")
+  message("EXPECT_HASH=${EXPECT_HASH}")
+  file(WRITE "checklibs_result.bat" "set RESULT=0\r\n")
+endif()


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