[Ttssh2-commit] [9234] appveyor の Ubuntu2004 イメージでビルド

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2021年 5月 4日 (火) 00:05:19 JST


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)


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