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
# 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:
name: macos-10.15 gcc
runs-on: macos-10.15

Wyświetl plik

@ -8,18 +8,19 @@ echo "----"
echo "WORK DIR:$DIR"
DIR=$PWD
if [ "$TRAVIS_JOB_NAME" == "linux-mingw" ]; then
if [ "$TRAVIS_JOB_NAME" == "linux-mingw-64" ]; then
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 \
-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) ..."
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 \
-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
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
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
echo "--> Building Debug..."
mkdir -p build/Debug && cd build/Debug

Wyświetl plik

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

@ -10,7 +10,7 @@
include(FindPackageHandleStandardArgs)
if (APPLE) # macOS
if (APPLE) # macOS
FIND_PATH(
LIBUSB_INCLUDE_DIR NAMES libusb.h
HINTS /usr /usr/local /opt
@ -27,7 +27,7 @@ if (APPLE)
message(FATAL_ERROR "No libusb library found on your system! Install libusb-1.0 from Homebrew or MacPorts")
endif ()
elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") # FreeBSD; libusb is integrated into the system
elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") # FreeBSD; libusb is integrated into the system
FIND_PATH(
LIBUSB_INCLUDE_DIR NAMES libusb.h
HINTS /usr/include
@ -43,13 +43,13 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
message(FATAL_ERROR "Expected libusb library not found on your system! Verify your system integrity.")
endif ()
elseif (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW)) # Windows or MinGW-toolchain on Debian
# for MinGW/MSYS/MSVC: 64-bit or 32-bit?
elseif (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW)) # Windows or MinGW-toolchain on Debian
# MinGW/MSYS/MSVC: 64-bit or 32-bit?
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
message(STATUS "=== Building for Windows (x86-64) ===")
set(ARCH 64)
else ()
message(STATUS "=== Building for Windowsm (i686) ===")
message(STATUS "=== Building for Windows (i686) ===")
set(ARCH 32)
endif ()
@ -77,14 +77,14 @@ elseif (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW))
if (NOT LIBUSB_FOUND)
# Preparations for installing libusb library
set(LIBUSB_WIN_VERSION 1.0.23) # set libusb version
set(LIBUSB_WIN_VERSION 1.0.23) # set libusb version
set(LIBUSB_WIN_ARCHIVE libusb-${LIBUSB_WIN_VERSION}.7z)
if (WIN32 AND NOT EXISTS "/etc/debian_version") # ... on native Windows systems
set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_BINARY_DIR}/${LIBUSB_WIN_ARCHIVE})
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
set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_SOURCE_DIR}/build-mingw/${LIBUSB_WIN_ARCHIVE})
set(LIBUSB_WIN_OUTPUT_FOLDER ${CMAKE_SOURCE_DIR}/build-mingw/3rdparty/libusb-${LIBUSB_WIN_VERSION})
else (EXISTS "/etc/debian_version" AND MINGW) # ... only for cross-building on Debian
set(LIBUSB_WIN_ARCHIVE_PATH ${CMAKE_SOURCE_DIR}/build-mingw-${ARCH}/${LIBUSB_WIN_ARCHIVE})
set(LIBUSB_WIN_OUTPUT_FOLDER ${CMAKE_SOURCE_DIR}/build-mingw-${ARCH}/3rdparty/libusb-${LIBUSB_WIN_VERSION})
endif ()
# Get libusb package

Wyświetl plik

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

Wyświetl plik

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