diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml deleted file mode 100644 index 7088948..0000000 --- a/.github/workflows/linux-build.yml +++ /dev/null @@ -1,135 +0,0 @@ -name: CI-linux-build - - -on: - push: - paths-ignore: - - 'docs/**' - - '**.md' - pull_request: - paths-ignore: - - 'docs/**' - - '**.md' - -jobs: - linux-gcc-build: - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - max-parallel: 8 - matrix: - compiler: [gcc-8, gcc-6, gcc-7, gcc-5, gcc-9] - base-flags: ["", -DJINJA2CPP_CXX_STANDARD=17] - build-config: [Release, Debug] - build-shared: [TRUE, FALSE] - - include: - - compiler: gcc-8 - extra-flags: -DJINJA2CPP_STRICT_WARNINGS=OFF - - compiler: gcc-9 - extra-flags: -DJINJA2CPP_STRICT_WARNINGS=OFF - - exclude: - - compiler: gcc-5 - base-flags: -DJINJA2CPP_CXX_STANDARD=17 - - compiler: gcc-6 - base-flags: -DJINJA2CPP_CXX_STANDARD=17 - - steps: - - uses: actions/checkout@v1 - - name: Setup environment - env: - INPUT_COMPILER: ${{ matrix.compiler }} - INPUT_BASE_FLAGS: ${{ matrix.base-flags }} - INPUT_BASE_CONFIG: ${{ matrix.build-config }} - INPUT_EXTRA_FLAGS: ${{ matrix.extra-flags }} - run: | - sudo apt-get update - sudo apt-get install -y cmake build-essential ${INPUT_COMPILER} - - name: Prepare build - env: - INPUT_COMPILER: ${{ matrix.compiler }} - INPUT_BASE_FLAGS: ${{ matrix.base-flags }} - INPUT_BASE_CONFIG: ${{ matrix.build-config }} - INPUT_EXTRA_FLAGS: ${{ matrix.extra-flags }} - run: | - export BUILD_TARGET=all - export CMAKE_OPTS=-DCMAKE_VERBOSE_MAKEFILE=OFF - if [[ "${INPUT_COMPILER}" != "" ]]; then export CXX=${INPUT_COMPILER}; fi - export BUILD_CONFIG=${INPUT_BUILD_CONFIG} - $CXX --version - export EXTRA_FLAGS="${INPUT_BASE_FLAGS} ${INPUT_EXTRA_FLAGS}" - - - name: Build - env: - INPUT_BUILD_SHARED: ${{ matrix.build-shared }} - run: | - mkdir -p .build && cd .build - cmake $CMAKE_OPTS -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS -DJINJA2CPP_DEPS_MODE=internal -DJINJA2CPP_BUILD_SHARED=$INPUT_BUILD_SHARED $EXTRA_FLAGS .. && cmake --build . --config $BUILD_CONFIG --target all -- -j4 - - - name: Test - run: | - cd .build && ctest -C $BUILD_CONFIG -V - - linux-clang-build: - - runs-on: ubuntu-18.04 - container: - image: ${{matrix.docker-image}} - env: - BUILD_DIRECTORY: /home/conan/.build - HOME: /home/conan - - strategy: - fail-fast: false - max-parallel: 8 - matrix: - compiler: [5.0, 6.0, 7, 8] - base-flags: ["", -DJINJA2CPP_CXX_STANDARD=17] - build-config: [Release, Debug] - build-shared: [TRUE, FALSE] - - include: - - compiler: 5.0 - docker-image: conanio/clang50 - - compiler: 6.0 - docker-image: conanio/clang60 - - compiler: 7 - docker-image: conanio/clang7 - - compiler: 8 - docker-image: conanio/clang8 - - compiler: 9 - docker-image: conanio/clang9 - - exclude: - - compiler: 5.0 - base-flags: -DJINJA2CPP_CXX_STANDARD=17 - steps: - - uses: actions/checkout@v1 - - - name: Build - env: - INPUT_COMPILER: clang-${{ matrix.compiler }} - INPUT_BASE_FLAGS: ${{ matrix.base-flags }} - INPUT_BASE_CONFIG: ${{ matrix.build-config }} - INPUT_EXTRA_FLAGS: ${{ matrix.extra-flags }} - INPUT_BUILD_SHARED: ${{ matrix.build-shared }} - HOME: /home/conan - run: | - export BUILD_TARGET=all - export CMAKE_OPTS=-DCMAKE_VERBOSE_MAKEFILE=OFF - export BUILD_CONFIG=${INPUT_BUILD_CONFIG} - export WORKSPACE=$GITHUB_WORKSPACE - $CXX --version - export EXTRA_FLAGS="${INPUT_BASE_FLAGS} ${INPUT_EXTRA_FLAGS}" - mkdir $BUILD_DIRECTORY && cd $BUILD_DIRECTORY - sudo chmod gou+rw -R $WORKSPACE - cmake $CMAKE_OPTS -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS -DJINJA2CPP_DEPS_MODE=internal -DJINJA2CPP_BUILD_SHARED=$INPUT_BUILD_SHARED $EXTRA_FLAGS $WORKSPACE && cmake --build . --config $BUILD_CONFIG --target all -- -j4 - - - name: Test - run: | - cd $BUILD_DIRECTORY - ctest -C $BUILD_CONFIG -V - diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml index 29c7fe6..aa28af5 100644 --- a/.github/workflows/windows-build.yml +++ b/.github/workflows/windows-build.yml @@ -20,9 +20,9 @@ jobs: max-parallel: 20 matrix: compiler: [msvc-2019] - base-flags: ["", -DJINJA2CPP_CXX_STANDARD=17] - build-config: [Release, Debug] - build-platform: [x86, x64] + base-flags: [""] + build-config: [Release] + build-platform: [x64] build-runtime: [/MT] build-shared: [FALSE] @@ -66,13 +66,10 @@ jobs: VC_VARS: "${{ matrix.vc_vars }}" run: | call "%VC_VARS%" - set BOOST_ROOT=%BOOST_ROOT_1_69_0% - set path=%BOOST_ROOT%\lib;%PATH% - echo "###########1 " %BOOST_ROOT% - echo "###########2 " %PATH% mkdir -p .build + rmdir /S /Q C:\hostedtoolcache\windows\Boost\1.72.0\lib\cmake cd .build - cmake .. -G "%INPUT_GENERATOR%" -DCMAKE_BUILD_TYPE=%INPUT_BUILD_CONFIG% -DJINJA2CPP_MSVC_RUNTIME_TYPE="%INPUT_BUILD_RUNTIME%" -DJINJA2CPP_DEPS_MODE=external-boost -DJINJA2CPP_BUILD_SHARED=%INPUT_BUILD_SHARED% -DJINJA2CPP_VERBOSE=ON -DBoost_DEBUG=ON -DBOOST_ROOT=%BOOST_ROOT_1_69_0% %INPUT_BASE_FLAGS% %INPUT_EXTRA_FLAGS% + cmake .. -G "%INPUT_GENERATOR%" -DCMAKE_BUILD_TYPE=%INPUT_BUILD_CONFIG% -DJINJA2CPP_MSVC_RUNTIME_TYPE="%INPUT_BUILD_RUNTIME%" -DJINJA2CPP_DEPS_MODE=external-boost -DBoost_DEBUG=TRUE -DJINJA2CPP_BUILD_SHARED=%INPUT_BUILD_SHARED% %INPUT_BASE_FLAGS% %INPUT_EXTRA_FLAGS% cmake --build . --config %INPUT_BUILD_CONFIG% - name: Test @@ -83,8 +80,5 @@ jobs: run: | cd .build call "%VC_VARS%" - set BOOST_ROOT=%BOOST_ROOT_1_69_0% set path=%BOOST_ROOT%\lib;%PATH% - echo "###########1 " %BOOST_ROOT% - echo "###########2 " %PATH% ctest -C %INPUT_BUILD_CONFIG% -V diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 36bd8f1..0000000 --- a/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -dist: xenial -language: cpp -sudo: required - -matrix: - include: - - - compiler: clang - env: COMPILER='clang++' - os: osx - osx_image: xcode9 - - - compiler: clang - env: COMPILER='clang++' - os: osx - osx_image: xcode10 - - - compiler: clang - env: COMPILER='clang++' - os: osx - osx_image: xcode11 - - - addons: - apt: - packages: - - cmake - - g++-6 - - lcov - sources: - - ubuntu-toolchain-r-test - compiler: gcc - env: "COMPILER=g++-6 COLLECT_COVERAGE=1" - os: linux - - - addons: - apt: - packages: - - cmake - - clang-8 - - g++-8 - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-xenial-8 - compiler: clang - env: "COMPILER=clang++-8 EXTRA_FLAGS=-DJINJA2CPP_CXX_STANDARD=17 SANITIZE_BUILD=address+undefined" - os: linux -before_install: - - "date -u" - - "uname -a" -script: - - "export BUILD_TARGET=\"all\"" - - "export CMAKE_OPTS=\"-DCMAKE_VERBOSE_MAKEFILE=OFF\"" - - "if [[ \"${COMPILER}\" != \"\" ]]; then export CXX=${COMPILER}; fi" - - "if [[ \"${BUILD_CONFIG}\" == \"\" ]]; then export BUILD_CONFIG=\"Release\"; fi" - - "if [[ \"${COLLECT_COVERAGE}\" != \"\" ]]; then export BUILD_CONFIG=\"Debug\" && export CMAKE_OPTS=\"${CMAKE_OPTS} -DJINJA2CPP_WITH_COVERAGE=ON\"; fi" - - "if [[ \"${SANITIZE_BUILD}\" != \"\" ]]; then export BUILD_CONFIG=\"RelWithDebInfo\" && export CMAKE_OPTS=\"${CMAKE_OPTS} -DJINJA2CPP_WITH_SANITIZERS=${SANITIZE_BUILD}\"; fi" - - "$CXX --version" - - "mkdir -p build && cd build" - - "cmake $CMAKE_OPTS -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS -DJINJA2CPP_DEPS_MODE=internal $EXTRA_FLAGS .. && cmake --build . --config $BUILD_CONFIG --target all -- -j4" - - "ctest -C $BUILD_CONFIG -V" -after_success: - - "if [[ \"${COLLECT_COVERAGE}\" != \"\" ]]; then echo \"Uploading code coverate report\" ; fi" - - "if [[ \"${COLLECT_COVERAGE}\" != \"\" ]]; then lcov --directory . --capture --output-file coverage.info ; fi" - - "if [[ \"${COLLECT_COVERAGE}\" != \"\" ]]; then lcov --remove coverage.info '/usr/*' --output-file coverage.info ; fi" - - "if [[ \"${COLLECT_COVERAGE}\" != \"\" ]]; then lcov --list coverage.info ; fi" - - "if [[ \"${COLLECT_COVERAGE}\" != \"\" ]]; then bash <(curl -s https://codecov.io/bash) -t \"225d6d7a-2b71-4dbe-bf87-fbf75eb7c119\" || echo \"Codecov did not collect coverage reports\"; fi" diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index c17caeb..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,89 +0,0 @@ -version: 1.0.0.{build} - -os: - - Visual Studio 2015 - - Visual Studio 2017 - -platform: - - Win32 - - x64 - -configuration: - - Debug - - Release - -environment: - BOOST_ROOT: C:\Libraries\boost_1_65_1 - GENERATOR: "\"NMake Makefiles\"" - DEPS_MODE: external-boost - - matrix: -# - BUILD_PLATFORM: clang -# MSVC_RUNTIME_TYPE: -# GENERATOR: "\"Unix Makefiles\"" -# DEPS_MODE: internal -# EXTRA_CMAKE_ARGS: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_MAKE_PROGRAM=mingw32-make.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DJINJA2CPP_STRICT_WARNINGS=OFF - - BUILD_PLATFORM: MinGW7 - MSVC_RUNTIME_TYPE: - GENERATOR: "\"Unix Makefiles\"" - DEPS_MODE: internal - EXTRA_CMAKE_ARGS: -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc.exe -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++.exe -DCMAKE_MAKE_PROGRAM=mingw32-make.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DJINJA2CPP_STRICT_WARNINGS=OFF - - BUILD_PLATFORM: MinGW8 - MSVC_RUNTIME_TYPE: - GENERATOR: "\"Unix Makefiles\"" - DEPS_MODE: internal - EXTRA_CMAKE_ARGS: -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc.exe -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++.exe -DCMAKE_MAKE_PROGRAM=mingw32-make.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DJINJA2CPP_STRICT_WARNINGS=OFF - - BUILD_PLATFORM: x64 - MSVC_RUNTIME_TYPE: /MD - - BUILD_PLATFORM: x64 - MSVC_RUNTIME_TYPE: /MT - - BUILD_PLATFORM: x64 - MSVC_RUNTIME_TYPE: - - BUILD_PLATFORM: x86 - MSVC_RUNTIME_TYPE: /MD - - BUILD_PLATFORM: x86 - MSVC_RUNTIME_TYPE: /MT - - BUILD_PLATFORM: x86 - MSVC_RUNTIME_TYPE: - -matrix: - fast_finish: false - exclude: - - os: Visual Studio 2015 - BUILD_PLATFORM: MinGW7 - - os: Visual Studio 2015 - BUILD_PLATFORM: MinGW8 - - os: Visual Studio 2015 - BUILD_PLATFORM: clang - - os: Visual Studio 2017 - BUILD_PLATFORM: x86 - - os: Visual Studio 2017 - BUILD_PLATFORM: x64 - - platform: Win32 - BUILD_PLATFORM: x64 - - platform: Win32 - BUILD_PLATFORM: MinGW7 - - platform: Win32 - BUILD_PLATFORM: MinGW8 - - platform: Win32 - BUILD_PLATFORM: clang - - platform: x64 - BUILD_PLATFORM: x86 - - -init: - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%BUILD_PLATFORM%"=="MinGW7" set PATH=C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH% - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%BUILD_PLATFORM%"=="MinGW8" set PATH=C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;%PATH% - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%BUILD_PLATFORM%"=="clang" set PATH=%BOOST_ROOT%\lib64-msvc-14.1;C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin;C:\Libraries\llvm-5.0.0\bin;%PATH% && call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%BUILD_PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%BUILD_PLATFORM%"=="x86" set PATH=%BOOST_ROOT%\lib32-msvc-14.0;%PATH% - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%BUILD_PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%BUILD_PLATFORM%"=="x64" set PATH=%BOOST_ROOT%\lib64-msvc-14.0;%PATH% - -build_script: - - mkdir -p build && cd build - - cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=%configuration% -DJINJA2CPP_MSVC_RUNTIME_TYPE=%MSVC_RUNTIME_TYPE% -DJINJA2CPP_DEPS_MODE=%DEPS_MODE% %EXTRA_CMAKE_ARGS% - - cmake --build . --target all --config %configuration% - -test_script: - - ctest -C %configuration% -V diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 8f250d8..4e4afef 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -12,6 +12,7 @@ if(MSVC) set (THIRDPARTY_RUNTIME_TYPE "/MD") endif() endif () + message(STATUS "Selected Jinja2C++ thirdparty libraries runtime type: '${THIRDPARTY_RUNTIME_TYPE}'") endif () function(update_submodule submodule) diff --git a/thirdparty/external_boost_deps.cmake b/thirdparty/external_boost_deps.cmake index 0ba5f55..0185d29 100644 --- a/thirdparty/external_boost_deps.cmake +++ b/thirdparty/external_boost_deps.cmake @@ -1,7 +1,22 @@ if (JINJA2CPP_VERBOSE) set (FIND_BOOST_PACKAGE_QUIET) else () - set (FIND_BOOST_PACKAGE_QUIET) + set (FIND_BOOST_PACKAGE_QUIET QUIET) +endif () + +if (MSVC) + if (NOT DEFINED Boost_USE_STATIC_LIBS) + if (THIRDPARTY_RUNTIME_TYPE STREQUAL "/MD" OR THIRDPARTY_RUNTIME_TYPE STREQUAL "/MDd") + set (Boost_USE_STATIC_LIBS OFF) + set (Boost_USE_STATIC_RUNTIME OFF) + else () + set (Boost_USE_STATIC_LIBS ON) + set (Boost_USE_STATIC_RUNTIME ON) + endif () + if (JINJA2CPP_VERBOSE) + message (STATUS ">>>DEBUG<<< Boost_USE_STATIC_RUNTIME = ${Boost_USE_STATIC_RUNTIME}") + endif () + endif () endif () find_package(boost_filesystem ${FIND_BOOST_PACKAGE_QUIET}) @@ -20,21 +35,6 @@ if(boost_filesystem_FOUND AND else() - if (MSVC) - if (NOT DEFINED Boost_USE_STATIC_LIBS) - if (THIRDPARTY_RUNTIME_TYPE STREQUAL "/MD" OR THIRDPARTY_RUNTIME_TYPE STREQUAL "/MDd") - set (Boost_USE_STATIC_LIBS OFF) - set (Boost_USE_STATIC_RUNTIME OFF) - else () - set (Boost_USE_STATIC_LIBS ON) - set (Boost_USE_STATIC_RUNTIME ON) - endif () - if (JINJA2CPP_VERBOSE) - message (STATUS ">>>DEBUG<<< Boost_USE_STATIC_RUNTIME = ${Boost_USE_STATIC_RUNTIME}") - endif () - endif () - endif () - find_package(Boost COMPONENTS system filesystem ${FIND_BOOST_PACKAGE_QUIET} REQUIRED) if (Boost_FOUND)