Updated CI & MinGW64 cross build configuration

- Moved config for macOS 10.14 to GitHub Actions
   (Note: preparation only, yet inactive)
- Removed macOS 10.14 builds from Travis CI
- Removed Linux build config from Travis CI
- Split 32- & 64-bit cross builds to separate jobs
- Minor fixes for MinGW64 cross build config
pull/1126/head
nightwalker-87 2021-04-05 21:55:54 +02:00
rodzic a3b1247d14
commit 5ce54824a5
6 zmienionych plików z 129 dodań i 112 usunięć

Wyświetl plik

@ -282,6 +282,96 @@ jobs:
# macOS # macOS
# job_macos_10_14_64_gcc:
# name: macos-10.14 gcc
# runs-on: macos-10.14
# steps:
# - uses: actions/checkout@v2
# - name: Install dependencies
# run: brew install gcc libusb gtk+3
# - name: make debug
# run: sudo make clean && make debug
# - name: make test
# run: sudo make clean && make test
# - name: make release
# run: sudo make clean && make release
# - name: sudo make install
# run: sudo make clean && sudo make install
# - name: sudo make package
# run: sudo make package
# - name: sudo make uninstall
# run: sudo make uninstall && sudo make clean
# job_macos_10_14_32_gcc:
# name: macos-10.14 gcc 32-bit
# runs-on: macos-10.14
# steps:
# - uses: actions/checkout@v2
# - name: Install dependencies
# run: brew install gcc libusb gtk+3
# - name: Set compiler flags
# run: |
# CFLAGS="$CFLAGS -m32"
# CXXFLAGS="$CXXFLAGS -m32"
# LDFLAGS="$LDFLAGS -m32"
# - name: make debug
# run: sudo make clean && make debug
# - name: make test
# run: sudo make clean && make test
# - name: make release
# run: sudo make clean && make release
# - name: sudo make install
# run: sudo make clean && sudo make install
# - name: sudo make package
# run: sudo make package
# - name: sudo make uninstall
# run: sudo make uninstall && sudo make clean
# job_macos_10_14_64_clang:
# name: macos-10.14 clang
# runs-on: macos-10.14
# steps:
# - uses: actions/checkout@v2
# - name: Install dependencies
# run: brew install llvm libusb gtk+3
# - name: make debug
# run: sudo make clean && make debug
# - name: make test
# run: sudo make clean && make test
# - name: make release
# run: sudo make clean && make release
# - name: sudo make install
# run: sudo make clean && sudo make install
# - name: sudo make package
# run: sudo make package
# - name: sudo make uninstall
# run: sudo make uninstall && sudo make clean
# job_macos_10_14_32_clang:
# name: macos-10.14 clang 32-bit
# runs-on: macos-10.14
# steps:
# - uses: actions/checkout@v2
# - name: Install dependencies
# run: brew install llvm libusb gtk+3
# - name: Set compiler flags
# run: |
# CFLAGS="$CFLAGS -m32"
# CXXFLAGS="$CXXFLAGS -m32"
# LDFLAGS="$LDFLAGS -m32"
# - name: make debug
# run: sudo make clean && make debug
# - name: make test
# run: sudo make clean && make test
# - name: make release
# run: sudo make clean && make release
# - name: sudo make install
# run: sudo make clean && sudo make install
# - name: sudo make package
# run: sudo make package
# - name: sudo make uninstall
# run: sudo make uninstall && sudo make clean
job_macos_10_15_gcc: job_macos_10_15_gcc:
name: macos-10.15 gcc name: macos-10.15 gcc
runs-on: macos-10.15 runs-on: macos-10.15

Wyświetl plik

@ -8,18 +8,19 @@ echo "----"
echo "WORK DIR:$DIR" echo "WORK DIR:$DIR"
DIR=$PWD DIR=$PWD
if [ "$TRAVIS_JOB_NAME" == "linux-mingw" ]; then if [ "$TRAVIS_JOB_NAME" == "linux-mingw-64" ]; then
echo "--> Building for Windows (x86-64) ..." echo "--> Building for Windows (x86-64) ..."
mkdir -p build-mingw && cd build-mingw mkdir -p build-mingw && cd build-mingw-64
cmake -DCMAKE_SYSTEM_NAME=Windows -DTOOLCHAIN_PREFIX=x86_64-w64-mingw32 \ cmake -DCMAKE_SYSTEM_NAME=Windows -DTOOLCHAIN_PREFIX=x86_64-w64-mingw32 \
-DCMAKE_TOOLCHAIN_FILE=$PWD/../cmake/modules/set_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR -DCMAKE_TOOLCHAIN_FILE=$PWD/../cmake/modules/set_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR
make && rm -rf build-mingw && cd - make && rm -rf build-mingw-64 && cd -
elif [ "$TRAVIS_JOB_NAME" == "linux-mingw-32" ]; then
echo "--> Building for Windows (i686) ..." echo "--> Building for Windows (i686) ..."
mkdir -p build-mingw && cd build-mingw mkdir -p build-mingw && cd build-mingw-32
cmake -DCMAKE_SYSTEM_NAME=Windows -DTOOLCHAIN_PREFIX=i686-w64-mingw32 \ cmake -DCMAKE_SYSTEM_NAME=Windows -DTOOLCHAIN_PREFIX=i686-w64-mingw32 \
-DCMAKE_TOOLCHAIN_FILE=$PWD/../cmake/modules/set_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR -DCMAKE_TOOLCHAIN_FILE=$PWD/../cmake/modules/set_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR
make && rm -rf build-mingw && cd - make && rm -rf build-mingw-32 && cd -
elif [ "$TRAVIS_OS_NAME" == "linux" ]; then elif [ "$TRAVIS_OS_NAME" == "linux" ]; then
sudo apt-get update -qq || true sudo apt-get update -qq || true
@ -34,17 +35,6 @@ elif [ "$TRAVIS_OS_NAME" == "linux" ]; then
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR
make package && cd - make package && cd -
elif [ "$TRAVIS_OS_NAME" == "osx" ]; then
echo "--> Building Debug..."
mkdir -p build/Debug && cd build/Debug
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR
make && cd -
echo "--> Building Release with package..."
mkdir -p build/Release && cd build/Release
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install $DIR
make package && cd -
else # local test-build else # local test-build
echo "--> Building Debug..." echo "--> Building Debug..."
mkdir -p build/Debug && cd build/Debug mkdir -p build/Debug && cd build/Debug

Wyświetl plik

@ -2,32 +2,11 @@ language: c
jobs: jobs:
include: include:
### 64-bit build on AMD64 ### ### cross builds on AMD64 ###
- os: linux
dist: focal
env: BADGE=linux
compiler: gcc-10
addons:
apt:
sources: ["ubuntu-toolchain-r-test"]
packages: ["gcc-10", "libusb-1.0.0-dev", "libgtk-3-dev", "rpm"]
### 32-bit build on AMD64 ###
- os: linux - os: linux
dist: focal dist: focal
env: BADGE=linux env: BADGE=linux-mingw-64
compiler: gcc-10
addons:
apt:
sources: ["ubuntu-toolchain-r-test"]
packages: ["gcc-10", "libusb-1.0.0-dev", "libgtk-3-dev", "rpm"]
before_install:
- CFLAGS="$CFLAGS -m32"; CXXFLAGS="$CXXFLAGS -m32"; LDFLAGS="$LDFLAGS -m32";
### cross build on AMD64 ###
- os: linux
dist: focal
env: BADGE=linux-mingw
name: linux-mingw name: linux-mingw
compiler: gcc-10 compiler: gcc-10
addons: addons:
@ -35,64 +14,20 @@ jobs:
sources: ["ubuntu-toolchain-r-test"] sources: ["ubuntu-toolchain-r-test"]
packages: packages:
["gcc-10", "libusb-1.0.0-dev", "libgtk-3-dev", "rpm", "mingw-w64"] ["gcc-10", "libusb-1.0.0-dev", "libgtk-3-dev", "rpm", "mingw-w64"]
before_install:
- LDFLAGS="$LDFLAGS -NDEBUG";
### macOS ### - os: linux
# - os: osx dist: focal
# env: BADGE=osx env: BADGE=linux-mingw-32
# osx_image: xcode11.3 name: linux-mingw
# name: macOS 10.14.6 gcc compiler: gcc-10
# compiler: gcc addons:
# addons: apt:
# homebrew: sources: ["ubuntu-toolchain-r-test"]
# packages: packages:
# - gcc ["gcc-10", "libusb-1.0.0-dev", "libgtk-3-dev", "rpm", "mingw-w64"]
# - libusb
# - gtk+3
# - os: osx
# env: BADGE=osx
# osx_image: xcode11.3
# name: macOS 10.14.6 gcc 32-bit
# compiler: gcc
# addons:
# homebrew:
# packages:
# - gcc
# - libusb
# - gtk+3
# before_install:
# - CFLAGS="$CFLAGS -m32"; CXXFLAGS="$CXXFLAGS -m32"; LDFLAGS="$LDFLAGS -m32";
# - os: osx
# env: BADGE=osx
# osx_image: xcode11.3
# name: macOS 10.14.6 clang
# compiler: clang
# addons:
# homebrew:
# packages:
# - llvm
# - libusb
# - gtk+3
# - os: osx
# env: BADGE=osx
# osx_image: xcode11.3
# name: macOS 10.14.6 clang 32-bit
# compiler: clang
# addons:
# homebrew:
# packages:
# - llvm
# - libusb
# - gtk+3
# before_install:
# - CFLAGS="$CFLAGS -m32"; CXXFLAGS="$CXXFLAGS -m32"; LDFLAGS="$LDFLAGS -m32";
script: script:
- git fetch --tags - git fetch --tags
- printenv - printenv
- cmake --version - cmake --version
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] || [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./.travis.sh; fi - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./.travis.sh; fi

Wyświetl plik

@ -44,12 +44,12 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
endif () endif ()
elseif (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW)) # Windows or MinGW-toolchain on Debian elseif (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW)) # Windows or MinGW-toolchain on Debian
# for MinGW/MSYS/MSVC: 64-bit or 32-bit? # MinGW/MSYS/MSVC: 64-bit or 32-bit?
if (CMAKE_SIZEOF_VOID_P EQUAL 8) if (CMAKE_SIZEOF_VOID_P EQUAL 8)
message(STATUS "=== Building for Windows (x86-64) ===") message(STATUS "=== Building for Windows (x86-64) ===")
set(ARCH 64) set(ARCH 64)
else () else ()
message(STATUS "=== Building for Windowsm (i686) ===") message(STATUS "=== Building for Windows (i686) ===")
set(ARCH 32) set(ARCH 32)
endif () endif ()
@ -83,8 +83,8 @@ elseif (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW))
set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_BINARY_DIR}/${LIBUSB_WIN_ARCHIVE}) set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_BINARY_DIR}/${LIBUSB_WIN_ARCHIVE})
set(LIBUSB_WIN_OUTPUT_FOLDER ${CMAKE_BINARY_DIR}/3rdparty/libusb-${LIBUSB_WIN_VERSION}) set(LIBUSB_WIN_OUTPUT_FOLDER ${CMAKE_BINARY_DIR}/3rdparty/libusb-${LIBUSB_WIN_VERSION})
else (EXISTS "/etc/debian_version" AND MINGW) # ... only for cross-building on Debian else (EXISTS "/etc/debian_version" AND MINGW) # ... only for cross-building on Debian
set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_SOURCE_DIR}/build-mingw/${LIBUSB_WIN_ARCHIVE}) set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_SOURCE_DIR}/build-mingw-${ARCH}/${LIBUSB_WIN_ARCHIVE})
set(LIBUSB_WIN_OUTPUT_FOLDER ${CMAKE_SOURCE_DIR}/build-mingw/3rdparty/libusb-${LIBUSB_WIN_VERSION}) set(LIBUSB_WIN_OUTPUT_FOLDER ${CMAKE_SOURCE_DIR}/build-mingw-${ARCH}/3rdparty/libusb-${LIBUSB_WIN_VERSION})
endif () endif ()
# Get libusb package # Get libusb package

Wyświetl plik

@ -41,7 +41,7 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
add_cflag_if_supported("-Wredundant-decls") add_cflag_if_supported("-Wredundant-decls")
endif () endif ()
if (NOT WIN32) if (NOT (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW)))
add_cflag_if_supported("-fPIC") add_cflag_if_supported("-fPIC")
endif () endif ()

Wyświetl plik

@ -6,23 +6,25 @@
#sudo apt-get install mingw-w64 #sudo apt-get install mingw-w64
# x86_64 # x86_64
mkdir build-mingw mkdir build-mingw-64
cd build-mingw cd build-mingw-64
cmake -DCMAKE_SYSTEM_NAME=Windows \ cmake -DCMAKE_SYSTEM_NAME=Windows \
-DTOOLCHAIN_PREFIX=x86_64-w64-mingw32 \ -DTOOLCHAIN_PREFIX=x86_64-w64-mingw32 \
-DCMAKE_TOOLCHAIN_FILE=./cmake/modules/set_toolchain.cmake .. -DCMAKE_TOOLCHAIN_FILE=./../cmake/modules/set_toolchain.cmake ..
make package make package
cp dist/*.zip ../build/Release/dist cp dist/*.zip ../build/Release/dist
make clean
cd .. cd ..
rm -rf build-mingw rm -rf build-mingw-64
# i686 # i686
mkdir build-mingw mkdir build-mingw-32
cd build-mingw cd build-mingw-32
cmake -DCMAKE_SYSTEM_NAME=Windows \ cmake -DCMAKE_SYSTEM_NAME=Windows \
-DTOOLCHAIN_PREFIX=i686-w64-mingw32 \ -DTOOLCHAIN_PREFIX=i686-w64-mingw32 \
-DCMAKE_TOOLCHAIN_FILE=./cmake/modules/set_toolchain.cmake .. -DCMAKE_TOOLCHAIN_FILE=./../cmake/modules/set_toolchain.cmake ..
make package make package
cp dist/*.zip ../build/Release/dist cp dist/*.zip ../build/Release/dist
make clean
cd .. cd ..
rm -rf build-mingw rm -rf build-mingw-32