From 72a95654b687c78ae0577079b089e95c42da71f4 Mon Sep 17 00:00:00 2001 From: Daniel Wolf Date: Sat, 19 Jun 2021 11:24:47 +0200 Subject: [PATCH] Use GitHub Actions for CI --- .github/workflows/ci.yml | 67 ++++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 4 +++ rhubarb/CMakeLists.txt | 21 ++++--------- 3 files changed, 77 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3592b2d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,67 @@ +on: push +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - description: Windows / Visual Studio + os: windows-2019 + cmakeOptions: '-G "Visual Studio 16 2019" -A x64' + publish: true + - description: macOS / Xcode + os: macos-10.15 + cmakeOptions: "" + publish: true + - description: Linux / GCC + os: ubuntu-20.04 + cmakeOptions: "-D CMAKE_C_COMPILER=gcc-10 -D CMAKE_CXX_COMPILER=g++-10" + publish: true + - description: Linux / Clang + os: ubuntu-20.04 + cmakeOptions: "-D CMAKE_C_COMPILER=clang-12 -D CMAKE_CXX_COMPILER=clang++-12" + publish: false + env: + BOOST_ROOT: ${{github.workspace}}/lib/boost + BOOST_URL: https://sourceforge.net/projects/boost/files/boost/1.76.0/boost_1_76_0.tar.bz2/download + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Restore Boost from cache + uses: actions/cache@v2 + id: cache-boost + with: + path: ${{ env.BOOST_ROOT }} + key: ${{ env.BOOST_URL }} + - name: Download Boost + if: steps.cache-boost.outputs.cache-hit != 'true' + shell: bash + run: | + if [ "$RUNNER_OS" == "Windows" ]; then + # use forward slashes only + BOOST_ROOT=$(echo $BOOST_ROOT | sed 's/\\/\//g') + fi + mkdir -p $BOOST_ROOT + curl --insecure -L $BOOST_URL | tar -xj --strip-components=1 -C $BOOST_ROOT + - name: Build Rhubarb + shell: bash + run: | + JAVA_HOME=$JAVA_HOME_11_X64 + mkdir build + cd build + cmake ${{ matrix.cmakeOptions }} .. + cmake --build . --config Release --target package + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: binaries + path: build/*.zip + - name: Run tests + shell: bash + run: | + if [ "$RUNNER_OS" == "Windows" ]; then + ./build/rhubarb/Release/runTests.exe + else + ./build/rhubarb/runTests + fi diff --git a/CHANGELOG.md b/CHANGELOG.md index f5dfafb..d77249e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version history +## Unreleased + +* **Changed** Windows build from 32 bit to 64 bit + ## Version 1.10.0 * **Added** switch data file exporter for Moho (formerly Anime Studio) and OpenToonz ([issue #69](https://github.com/DanielSWolf/rhubarb-lip-sync/issues/69)) diff --git a/rhubarb/CMakeLists.txt b/rhubarb/CMakeLists.txt index c2981e5..0e20ed3 100644 --- a/rhubarb/CMakeLists.txt +++ b/rhubarb/CMakeLists.txt @@ -1,28 +1,19 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.10) include("../appInfo.cmake") # Support legacy OS X versions -set(CMAKE_OSX_DEPLOYMENT_TARGET "10.8" CACHE STRING "Minimum OS X deployment version") +set(CMAKE_OSX_DEPLOYMENT_TARGET "10.10" CACHE STRING "Minimum OS X deployment version") project(${appName}) # Enable C++17 -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") -elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17") -endif() +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) # Enable POSIX threads -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -lpthread") -endif() - -# Make sure Xcode uses libc++ instead of libstdc++, allowing us to use the C++14 standard library prior to OS X 10.9 -if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") - add_compile_options(-stdlib=libc++) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") endif() # Use static run-time