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()