From 5cd93f8459a755cefe4c4cceee0026ed3d798137 Mon Sep 17 00:00:00 2001 From: past-due <30942300+past-due@users.noreply.github.com> Date: Sat, 8 Jun 2019 10:07:02 -0400 Subject: [PATCH] [Travis CI] Add Fedora (LATEST) 32-bit build --- .travis.yml | 19 ++++++++++++++ .../ci/cmake/Toolchain-Linux-cross-m32.cmake | 25 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 build_tools/ci/cmake/Toolchain-Linux-cross-m32.cmake diff --git a/.travis.yml b/.travis.yml index 2c547ed613c..ac916be5888 100644 --- a/.travis.yml +++ b/.travis.yml @@ -158,6 +158,25 @@ matrix: - docker run --rm -e CI -e TRAVIS -e "TRAVIS_BUILD_DIR=/code" -e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_PULL_REQUEST_BRANCH -e TRAVIS_TAG -e MAKEFLAGS -v $(pwd):/code fedora cmake '-H.' -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWZ_ENABLE_WARNINGS:BOOL=ON -G"Ninja" - docker run --rm -e CI -e TRAVIS -e "TRAVIS_BUILD_DIR=/code" -e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_PULL_REQUEST_BRANCH -e TRAVIS_TAG -e MAKEFLAGS -v $(pwd):/code fedora cmake --build build + # Build for Fedora :LATEST (CMake) (GCC) (32-bit -m32 cross-compile) + - name: "Fedora :LATEST (CMake) [GCC -m32]" + language: cpp + compiler: gcc + sudo: required + services: + - docker + install: + - cd docker/fedora-latest-m32/ + - docker build -t fedora . + - cd ../.. + script: + - export MAKEFLAGS="-j$((`grep -c ^processor /proc/cpuinfo`*2))" + # Must supply the TRAVIS environment variables to the docker container so autorevision properly receives the revision info from Travis + # To do this, append the following to the pertinent lines after —rm: + # -e CI -e TRAVIS -e "TRAVIS_BUILD_DIR=/code" -e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_PULL_REQUEST_BRANCH -e TRAVIS_TAG + - docker run --rm -e CI -e TRAVIS -e "TRAVIS_BUILD_DIR=/code" -e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_PULL_REQUEST_BRANCH -e TRAVIS_TAG -e MAKEFLAGS -v $(pwd):/code fedora cmake '-H.' -Bbuild -DCMAKE_TOOLCHAIN_FILE=build_tools/ci/cmake/Toolchain-Linux-cross-m32.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWZ_ENABLE_WARNINGS:BOOL=ON -G"Ninja" + - docker run --rm -e CI -e TRAVIS -e "TRAVIS_BUILD_DIR=/code" -e TRAVIS_BRANCH -e TRAVIS_COMMIT -e TRAVIS_PULL_REQUEST_BRANCH -e TRAVIS_TAG -e MAKEFLAGS -v $(pwd):/code fedora cmake --build build + # Build for macOS (CMake) - name: "macOS (CMake) [Xcode 8.3, macOS 10.12 SDK]" language: objective-c diff --git a/build_tools/ci/cmake/Toolchain-Linux-cross-m32.cmake b/build_tools/ci/cmake/Toolchain-Linux-cross-m32.cmake new file mode 100644 index 00000000000..6c28cecfdd6 --- /dev/null +++ b/build_tools/ci/cmake/Toolchain-Linux-cross-m32.cmake @@ -0,0 +1,25 @@ +# Toolchain for cross-compiling i686 (32-bit) on 64-bit Linux + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR "i686") + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "C compiler flags" FORCE) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "C++ compiler flags" FORCE) + +set(LIB32 "/usr/lib") # Fedora + +set(CMAKE_FIND_ROOT_PATH "${LIB32}" CACHE STRING "Find root path" FORCE) + +#set(CMAKE_LIBRARY_PATH "${LIB32}" CACHE STRING "Library search path" FORCE) + +set(CMAKE_EXE_LINKER_FLAGS "-m32 -L${LIB32}" CACHE STRING "Executable linker flags" FORCE) +set(CMAKE_SHARED_LINKER_FLAGS "-m32 -L${LIB32}" CACHE STRING "Shared library linker flags" FORCE) +set(CMAKE_MODULE_LINKER_FLAGS "-m32 -L${LIB32}" CACHE STRING "Module linker flags" FORCE) + +# Point pkgconfig at 32-bit .pc files first, falling back to regular system .pc files +if(EXISTS "${LIB32}/pkgconfig") + set(ENV{PKG_CONFIG_LIBDIR} "${LIB32}/pkgconfig:/usr/share/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig") +endif() + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)