Revision: 9234 https://osdn.net/projects/ttssh2/scm/svn/commits/9234 Author: zmatsuo Date: 2021-05-04 00:05:19 +0900 (Tue, 04 May 2021) Log Message: ----------- appveyor の Ubuntu2004 イメージでビルド - ローカルの次の環境でビルドチェック - WSL(debian/buster) - debian/bullseye - msys64 - gcc/clang,32bit/64bit Added Paths: ----------- trunk/ci_scripts/appveyor_linux.md trunk/ci_scripts/appveyor_linux.yml trunk/ci_scripts/build_appveyor.cmake trunk/ci_scripts/build_local_appveyor_mingw.cmake trunk/ci_scripts/build_local_appveyor_mingw_cmake.bat trunk/ci_scripts/build_local_appveyor_vs2019.cmake trunk/ci_scripts/build_local_appveyor_vs2019_x64.cmake -------------- next part -------------- Added: trunk/ci_scripts/appveyor_linux.md =================================================================== --- trunk/ci_scripts/appveyor_linux.md (rev 0) +++ trunk/ci_scripts/appveyor_linux.md 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,55 @@ +AppVeyor Linux build +==================== + +linux上の MinGW を利用したビルド + +## プロジェクト作成 / 設定 + +- appveyor.yml の代わりに appveyor_linux.yml を使用する + +# ローカルでのテスト + +## ビルド準備/WSL + +- ストアで debian をインストールする + - 21-05-02時点で debian 10(buster) +- debian を起動 +- 次のコマンドを実行 + +``` +sudo apt-get update +sudo apt-get -y upgrade +sudo apt-get -y install cmake perl subversion +sudo apt-get -y install g++-mingw-w64 +cd /path/to/teraterm +``` + +## ビルド準備/debian + +- WSLと同じ +- 次のディストリビューション/バージョンに含まれているmingwでのビルドは確認した + +debian buster + +``` +$ cat /etc/debian_version +10.9 +``` + +debian bullseye/sid + +``` +$ cat /etc/debian_version +bullseye/sid +``` + +## ビルド + +gcc 32bit +- `cmake -P ci_scripts/build_local_appveyor_mingw.cmake` + +gcc 64bit +- `cmake -DCOMPILER_64BIT=ON -P ci_scripts/build_local_appveyor_mingw.cmake` + +msys64 +- [build_local_appveyor_mingw_cmake.bat](build_local_appveyor_mingw_cmake.bat)参照 Added: trunk/ci_scripts/appveyor_linux.yml =================================================================== --- trunk/ci_scripts/appveyor_linux.yml (rev 0) +++ trunk/ci_scripts/appveyor_linux.yml 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,15 @@ +image: Ubuntu2004 + +build: off + +init: + - sudo apt-get -y install cmake perl subversion g++-mingw-w64 + +cache: + - libs + +build_script: + - cmake -P ci_scripts/build_local_appveyor_mingw.cmake + +artifacts: + - path: build*/*.zip Added: trunk/ci_scripts/build_appveyor.cmake =================================================================== --- trunk/ci_scripts/build_appveyor.cmake (rev 0) +++ trunk/ci_scripts/build_appveyor.cmake 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,77 @@ +option(REMOVE_BUILD_DIR "for clean bulid" OFF) + +# create build dir +message(STATUS "BUILD_DIR=${BUILD_DIR}") +if(EXISTS "${BUILD_DIR}") + if(REMOVE_BUILD_DIR) + file(REMOVE_RECURSE ${BUILD_DIR}) + else() + file(REMOVE ${BUILD_DIR}/CMakeCache.txt) + endif() +endif() +if(NOT EXISTS "${BUILD_DIR}") + file(MAKE_DIRECTORY ${BUILD_DIR}) +endif() + + +# svn revision +file(MAKE_DIRECTORY ${BUILD_DIR}/teraterm/ttpdlg) +execute_process( + COMMAND perl ${CMAKE_CURRENT_LIST_DIR}/../svnrev_perl/svnrev.pl -v --root "${CMAKE_CURRENT_LIST_DIR}/.." --header ${BUILD_DIR}/teraterm/ttpdlg/svnversion.h --cmake ${BUILD_DIR}/build_config.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../svnrev_perl + ) + + +# variables +include(${BUILD_DIR}/build_config.cmake) +if(NOT DEFINED SVNVERSION) + set(SVNVERSION "0000") +endif() + +set(ZIP_FILE "snapshot-${VERSION}-r${SVNVERSION}-${DATE}_${TIME}-appveyor-${COMPILER_FRIENDLY}.zip") +set(SETUP_FILE "snapshot-${VERSION}-r${SVNVERSION}-${DATE}_${TIME}-appveyor-${COMPILER_FRIENDLY}") +set(SNAPSHOT_DIR "snapshot-${VERSION}-r${SVNVERSION}-${DATE}_${TIME}-appveyor-${COMPILER_FRIENDLY}") + +list(APPEND BUILD_OPTIONS "--config" "Release") +list(APPEND GENERATE_OPTIONS "-DSNAPSHOT_DIR=${SNAPSHOT_DIR}" "-DSETUP_ZIP=${ZIP_FILE}" "-DSETUP_EXE=${SETUP_FILE}" "-DSETUP_RELEASE=${RELEASE}") +list(APPEND GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${SNAPSHOT_DIR}") +if(DEFINED CMAKE_C_COMPILER) + message("CMAKE_C_COMPILER=${CMAKE_C_COMPILER}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") +endif() +if(DEFINED CMAKE_CXX_COMPILER) + message("CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +endif() +if(DEFINED CMAKE_RC_COMPILER) + message("CMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}") +endif() + + +# libs/ +if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../libs/openssl11_mingw") + execute_process( + COMMAND ${CMAKE_COMMAND} "-DCMAKE_GENERATOR=Unix Makefiles" -P ${CMAKE_CURRENT_LIST_DIR}/../libs/buildall.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../libs + ) +endif() + + +# teraterm +execute_process( + COMMAND ${CMAKE_COMMAND} "${CMAKE_CURRENT_LIST_DIR}/.." ${GENERATE_OPTIONS} + WORKING_DIRECTORY ${BUILD_DIR} + ) +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target install ${BUILD_OPTIONS} ${BUILD_TOOL_OPTIONS} + WORKING_DIRECTORY ${BUILD_DIR} + ) +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target zip + WORKING_DIRECTORY ${BUILD_DIR} + ) +execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target inno_setup + WORKING_DIRECTORY ${BUILD_DIR} + ) Added: trunk/ci_scripts/build_local_appveyor_mingw.cmake =================================================================== --- trunk/ci_scripts/build_local_appveyor_mingw.cmake (rev 0) +++ trunk/ci_scripts/build_local_appveyor_mingw.cmake 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,70 @@ +option(COMPILER_GCC "gcc" ON) +option(COMPILER_CLANG "clang" OFF) +option(COMPILER_64BIT "64bit" OFF) + +message(STATUS "CMAKE_HOST_SYSTEM_NAME=${CMAKE_HOST_SYSTEM_NAME}") +if(COMPILER_GCC) + set(COMPILER mingw) + if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") + if(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_gcc_x64) + set(ENV{PATH} "C:/msys64/mingw64/bin;C:/msys64/usr/bin") + else(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_gcc) + set(ENV{PATH} "C:/msys64/mingw32/bin;C:/msys64/usr/bin") + endif(COMPILER_64BIT) + set(CMAKE_C_COMPILER gcc) + set(CMAKE_CXX_COMPILER g++) + set(CMAKE_RC_COMPILER windres) + else() + list(APPEND GENERATE_OPTIONS "-DCMAKE_SYSTEM_NAME=Windows") + if(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_gcc_x64) + set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) + set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) + set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) + else(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_gcc) + set(CMAKE_C_COMPILER i686-w64-mingw32-gcc) + set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++) + set(CMAKE_RC_COMPILER i686-w64-mingw32-windres) + endif(COMPILER_64BIT) + endif() +elseif(COMPILER_CLANG) + set(COMPILER mingw) + if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") + if(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_clang_x64) + set(ENV{PATH} "C:/msys64/mingw64/bin;C:/msys64/usr/bin") + else(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_clang) + set(ENV{PATH} "C:/msys64/mingw32/bin;C:/msys64/usr/bin") + endif(COMPILER_64BIT) + set(CMAKE_C_COMPILER clang) + set(CMAKE_CXX_COMPILER clang++) + set(CMAKE_RC_COMPILER windres) + else() + list(APPEND GENERATE_OPTIONS "-DCMAKE_SYSTEM_NAME=Windows") + if(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_clang_x64) + set(CMAKE_C_COMPILER x86_64-w64-mingw32-clang) + set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-clang++) + set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) + else(COMPILER_64BIT) + set(COMPILER_FRIENDLY mingw_clang) + set(CMAKE_C_COMPILER i686-w64-mingw32-clang) + set(CMAKE_CXX_COMPILER i686-w64-mingw32-clang++) + set(CMAKE_RC_COMPILER i686-w64-mingw32-windres) + endif() + endif() +else() + message(FATAL_ERROR "check compiler") +endif() + +list(APPEND GENERATE_OPTIONS "-G" "Unix Makefiles") +#list(APPEND GENERATE_OPTIONS "-G" Ninja) +list(APPEND GENERATE_OPTIONS "-DCMAKE_BUILD_TYPE=Release") +set(BUILD_DIR "${CMAKE_CURRENT_LIST_DIR}/../build_${COMPILER_FRIENDLY}_appveyor") +list(APPEND BUILD_TOOL_OPTIONS "--" "-j") + +include(${CMAKE_CURRENT_LIST_DIR}/build_appveyor.cmake) Added: trunk/ci_scripts/build_local_appveyor_mingw_cmake.bat =================================================================== --- trunk/ci_scripts/build_local_appveyor_mingw_cmake.bat (rev 0) +++ trunk/ci_scripts/build_local_appveyor_mingw_cmake.bat 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,8 @@ +setlocal +set PATH=C:\msys64\mingw32\bin;C:\msys64\usr\bin +cmake -P build_local_appveyor_mingw.cmake +rem cmake -DCOMPILER_GCC=ON -DCOMPILER_CLANG=OFF -DCOMPILER_64BIT=OFF -P build_local_appveyor_mingw.cmake +rem cmake -DCOMPILER_GCC=OFF -DCOMPILER_CLANG=ON -DCOMPILER_64BIT=OFF -P build_local_appveyor_mingw.cmake +rem cmake -DCOMPILER_GCC=ON -DCOMPILER_CLANG=OFF -DCOMPILER_64BIT=ON -P build_local_appveyor_mingw.cmake +rem cmake -DCOMPILER_GCC=OFF -DCOMPILER_CLANG=ON -DCOMPILER_64BIT=ON -P build_local_appveyor_mingw.cmake +pause Added: trunk/ci_scripts/build_local_appveyor_vs2019.cmake =================================================================== --- trunk/ci_scripts/build_local_appveyor_vs2019.cmake (rev 0) +++ trunk/ci_scripts/build_local_appveyor_vs2019.cmake 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,8 @@ +set(COMPILER VS_142) +set(COMPILER_FRIENDLY vs2019) +list(APPEND GENERATE_OPTIONS "-G" "Visual Studio 16 2019" "-A" "Win32") +#set(CMAKE_OPTION_LIBS -DARCHITECTURE=Win32) +#list(APPEND BUILD_OPTIONS "--config" "Release") +set(BUILD_DIR "${CMAKE_CURRENT_LIST_DIR}/../build_${COMPILER_FRIENDLY}_appveyor") + +include(${CMAKE_CURRENT_LIST_DIR}/build_appveyor.cmake) Added: trunk/ci_scripts/build_local_appveyor_vs2019_x64.cmake =================================================================== --- trunk/ci_scripts/build_local_appveyor_vs2019_x64.cmake (rev 0) +++ trunk/ci_scripts/build_local_appveyor_vs2019_x64.cmake 2021-05-03 15:05:19 UTC (rev 9234) @@ -0,0 +1,8 @@ +set(COMPILER VS_142) +set(COMPILER_FRIENDLY vs2019_x64) +list(APPEND GENERATE_OPTIONS "-G" "Visual Studio 16 2019" "-A" "x64") +#set(CMAKE_OPTION_LIBS -DARCHITECTURE=Win32) +#list(APPEND BUILD_OPTIONS "--config" "Release") +set(BUILD_DIR "${CMAKE_CURRENT_LIST_DIR}/../build_${COMPILER_FRIENDLY}_appveyor") + +include(${CMAKE_CURRENT_LIST_DIR}/build_appveyor.cmake)