From 6f5db32d147166ab1617c66844e3297eededc704 Mon Sep 17 00:00:00 2001 From: Gabriele Contini <gcontini@users.noreply.github.com> Date: ćšć, 19 9æ 2019 20:20:18 +0800 Subject: [PATCH] Feature/mingw cross compile (#51) --- .travis.yml | 120 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 90 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7fd8a73..8c0456d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,10 @@ - libboost-system-dev - libboost-thread-dev - libboost-date-time-dev + script: + - cmake --build . --target install + - ctest + - ctest -T memcheck - os: linux dist: xenial name: "Ubuntu 16.04 - Travis CI VM" @@ -39,64 +43,120 @@ - libboost-system-dev - libboost-thread-dev - libboost-date-time-dev - + - os: linux + dist: bionic + name: "Ubuntu 18.04 - Travis CI VM - Debug build" + addons: + apt: + packages: + - cmake + - valgrind + - libssl-dev + - zlib1g-dev + - libboost-dev + - libboost-test-dev + - libboost-filesystem-dev + - libboost-iostreams-dev + - libboost-program-options-dev + - libboost-system-dev + - libboost-thread-dev + - libboost-date-time-dev + before_script: + - mkdir build + - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Debug .. + script: + - cmake --build . --target install + - ctest + - ctest -T memcheck + - os: linux dist: bionic name: "CentOS-7 Docker" before_script: - docker run --name centos7_toconfigure -v `pwd`:/root/open-license-manager centos:centos7 /bin/bash -c - "yum -y update && yum -y install cmake boost boost-devel boost-static openssl openssl-devel gcc-c++ valgrind valgrind-devel glibc-static centos-release-scl-rh && - yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++ && cd /root/open-license-manager && mkdir build && cd build && - CC=/opt/rh/devtoolset-3/root/usr/bin/gcc XX=/opt/rh/devtoolset-3/root/usr/bin/g++ cmake .." + "yum -y update && yum -y install install centos-release-scl && + yum -y install cmake boost boost-devel boost-static openssl openssl-devel glibc-static devtoolset-7-toolchain devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-valgrind-devel && + cd /root/open-license-manager && mkdir build && cd build && + CC=/opt/rh/devtoolset-7/root/usr/bin/gcc CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ cmake .." - docker commit centos7_toconfigure centos7_configured script: - docker run --name centos7_make -v `pwd`:/root/open-license-manager centos7_configured /bin/bash -c "cd /root/open-license-manager/build && make && make install && VIRT_ENV=CONTAINER make test" - + - os: linux + dist: bionic + name: "Ubuntu 18.04 - MinGW cross-compile for Windows x64" + addons: + apt: + packages: + - cmake + - binutils-mingw-w64 + - mingw-w64 + - mingw-w64-tools + - mingw-w64-x86-64-dev + - wine-development + before_script: + - mkdir build + - cd build + - wget -c https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2 + - tar xjf boost_1_71_0.tar.bz2 + - sudo ln -s /usr/bin/x86_64-w64-mingw32-g++ /usr/local/bin/g++-mingw + - cd boost_1_71_0 + - ./bootstrap.sh + - travis_wait 30 ./b2 toolset=gcc-mingw target-os=windows address-model=64 --with-date_time --with-test --with-filesystem --with-program_options --with-regex --with-serialization --with-system runtime-link=static --prefix=./dist release install + - cd .. + - cmake -DCMAKE_TOOLCHAIN_FILE=../modules/toolchain-ubuntu-mingw64.cmake -DCMAKE_INSTALL_PREFIX=../../install -DBOOST_ROOT=$PWD/boost_1_71_0/dist .. - os: windows name: "Widnows server 1803 - Visual Studio 15 2017 Win64 - (/MD)" - env: - - CACHE_NAME=boost - cache: - directories: - - "/C/local/boost" before_script: - #- Regsvr32.exe "C:\Widnows\System32\rsaenh.dll" - #Not sure this is necessary let's leave it here for some time, see if there are - #differences with the build (/MT) - - sc stop CryptSvc - - travis_wait 30 ./windows_download_boost.bat - - cd "/C/Users/travis/build/open-license-manager/open-license-manager" + - travis_wait 40 ./windows_download_boost.bat + - cd "${TRAVIS_BUILD_DIR}" - mkdir build - cd build && cmake -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="C:/local/boost" .. - script: - - cmake --build . --target install --config Release - - ctest -C Release - os: windows name: "Widnows server 1803 - Visual Studio 15 2017 Win64 - (/MT)" + before_script: + - travis_wait 40 ./windows_download_boost.bat + - cd "${TRAVIS_BUILD_DIR}" + - mkdir build + - cd build && cmake -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="C:/local/boost" -DSTATIC_RUNTIME=1 .. + + - os: windows + name: "Widnows server 1803 - MinGW Win64" env: - - CACHE_NAME=boost + - CACHE_NAME=boost-mingw cache: + name: boost-mingw directories: - "/C/local/boost" before_script: - - travis_wait 30 ./windows_download_boost.bat - - cd "/C/Users/travis/build/open-license-manager/open-license-manager" + - | + if [ -d "/C/local/boost/lib" ]; then + echo "Boost already installed" + else + echo "Boost not cached, compiling it" + wget -q https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.7z + echo "Boost downloaded" + travis_wait 20 7z x boost_1_68_0.7z -oC:/local + cd "C:/local/boost_1_68_0" + ./bootstrap.bat gcc + travis_wait 40 ./b2.exe -d0 --with-date_time --with-test --with-filesystem --with-program_options --with-regex --with-serialization --with-system runtime-link=static toolset=gcc --prefix=C:/local/boost install + echo "Boost installed" + cd /C/local/boost/lib + dir + fi + - cd "${TRAVIS_BUILD_DIR}" - mkdir build - - cd build && cmake -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="C:/local/boost" -DSTATIC_RUNTIME=1 .. - script: - - cmake --build . --target install --config Release - - ctest -C Release - + - cd build && cmake -G "MinGW Makefiles" --trace-expand -DBOOST_ROOT="C:/local/boost" -DBoost_ARCHITECTURE="-x64" -DCMAKE_CXX_COMPILER_ARCHITECTURE_ID="x64" -DCMAKE_SH="CMAKE_SH-NOTFOUND" .. + env: - CTEST_OUTPUT_ON_FAILURE=1 + before_script: - mkdir build - cd build && cmake -DCMAKE_INSTALL_PREFIX=../../install .. script: - - make - - make install - - make test + - cmake --build . --target install --config Release + - ctest -C Release -- Gitblit v1.9.1