aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2020-12-28 12:29:13 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2021-01-17 12:51:39 +0100
commit3a016513e42c082c6b7b509bf93f63066a1b65f8 (patch)
treedd9b74eaa2e8a21ebe8a99132f18f1bd1fb1828d
parentebd7badd50aeea37a2ca121409e9f68370b62855 (diff)
downloaddlfcn-win32-3a016513e42c082c6b7b509bf93f63066a1b65f8.tar.gz
dlfcn-win32-3a016513e42c082c6b7b509bf93f63066a1b65f8.tar.bz2
dlfcn-win32-3a016513e42c082c6b7b509bf93f63066a1b65f8.zip
CI: Add static building for cmake
-rw-r--r--.travis.yml12
-rwxr-xr-xtools/ci-build.sh81
2 files changed, 70 insertions, 23 deletions
diff --git a/.travis.yml b/.travis.yml
index 3584048..ba1a8f6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,21 @@
1language: c 1language: c
2 2
3compiler: 3compiler:
4 - x86_64-linux-gnu-gcc
4 - i686-w64-mingw32-gcc 5 - i686-w64-mingw32-gcc
5 - x86_64-w64-mingw32-gcc 6 - x86_64-w64-mingw32-gcc
6 7
7addons: 8addons:
8 apt: 9 apt:
9 packages: 10 packages:
11 - gcc
10 - gcc-mingw-w64 12 - gcc-mingw-w64
11 - wine 13 - wine
12 - cmake 14 - cmake
13 15
14env: 16env:
15 - ci_buildsys=cmake 17 - ci_buildsys=cmake ci_variant=static
18 - ci_buildsys=cmake ci_variant=shared
16 - ci_buildsys=Makefile 19 - ci_buildsys=Makefile
17 20
18jobs: 21jobs:
@@ -39,5 +42,12 @@ jobs:
39 # Check that we have a real i586-mingw32msvc-gcc compiler as sometimes it is just a symlink to i686-w64-mingw32-gcc 42 # Check that we have a real i586-mingw32msvc-gcc compiler as sometimes it is just a symlink to i686-w64-mingw32-gcc
40 before_script: "i586-mingw32msvc-gcc -v 2>&1 | grep -q -x 'Target: i586-mingw32msvc'" 43 before_script: "i586-mingw32msvc-gcc -v 2>&1 | grep -q -x 'Target: i586-mingw32msvc'"
41 44
45 exclude:
46 # unsupported
47 - compiler: i686-linux-gnu-gcc
48 env: ci_buildsys=Makefile
49 - compiler: x86_64-linux-gnu-gcc
50 env: ci_buildsys=Makefile
51
42script: 52script:
43 - ci_target=${CC%-*} ./tools/ci-build.sh 53 - ci_target=${CC%-*} ./tools/ci-build.sh
diff --git a/tools/ci-build.sh b/tools/ci-build.sh
index 366a407..196fd92 100755
--- a/tools/ci-build.sh
+++ b/tools/ci-build.sh
@@ -9,35 +9,72 @@ set -x
9 9
10# ci_target: 10# ci_target:
11# target to build for 11# target to build for
12: "${ci_target:=${CROSS_COMPILE%-}}" 12: "${ci_target:=x86_64-linux-gnu-gcc}"
13
14# ci_variant:
15# variant to build e.g shared, static
16: "${ci_variant:=shared}"
17
18if test -v CROSS_COMPILE; then
19 ci_target=${CROSS_COMPILE%-}
20fi
13 21
14case "$ci_buildsys" in 22case "$ci_buildsys" in
15 (Makefile) 23 (Makefile)
16 ./configure --enable-shared --enable-static --enable-wine --cross-prefix=${ci_target}- 24 case "$ci_target" in
17 make 25 (*mingw32*)
18 make test 26 ./configure --enable-shared --enable-static --enable-wine --cross-prefix=${ci_target}-
27 make
28 make test
29 ;;
30 esac
19 ;; 31 ;;
20 32
21 (cmake) 33 (cmake)
34 cmake_options="
35 --no-warn-unused-cli
36 -DBUILD_TESTS=1
37 -DCMAKE_BUILD_TYPE=RelWithDebInfo
38 "
39 case "$ci_variant" in
40 (shared)
41 cmake_options+=" -DBUILD_SHARED_LIBS=ON"
42 ;;
43 (static)
44 cmake_options+=" -DBUILD_SHARED_LIBS=OFF"
45 ;;
46 esac
47
22 cmake --version 48 cmake --version
23 rm -rf build 49
24 mkdir build 50 # create build dir
25 cd build 51 rm -rf ci-build-${ci_variant}-${ci_target}
26 cmake \ 52 mkdir -p ci-build-${ci_variant}-${ci_target}
27 --no-warn-unused-cli \ 53 cd ci-build-${ci_variant}-${ci_target}
28 -DCMAKE_FIND_ROOT_PATH=$(${ci_target}-gcc --print-sysroot)/${ci_target} \ 54
29 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ 55 case "$ci_target" in
30 -DCMAKE_C_COMPILER=$(which ${ci_target}-gcc) \ 56 (*mingw32*)
31 -DCMAKE_SYSTEM_PROCESSOR=${ci_target%-*-*} \ 57 cmake \
32 -DCMAKE_CROSSCOMPILING=TRUE \ 58 -DCMAKE_FIND_ROOT_PATH=$(${ci_target}-gcc --print-sysroot)/${ci_target} \
33 -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ 59 -DCMAKE_C_COMPILER=$(which ${ci_target}-gcc) \
34 -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \ 60 -DCMAKE_SYSTEM_PROCESSOR=${ci_target%-*-*} \
35 -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \ 61 -DCMAKE_CROSSCOMPILING=TRUE \
36 -DCMAKE_SYSTEM_NAME=Windows \ 62 -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
37 -DBUILD_TESTS=1 \ 63 -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
38 -DENABLE_WINE=ON \ 64 -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
39 -DWINE_EXECUTABLE=/usr/bin/wine \ 65 -DCMAKE_SYSTEM_NAME=Windows \
40 .. 66 -DENABLE_WINE=ON \
67 -DWINE_EXECUTABLE=/usr/bin/wine \
68 $cmake_options \
69 ..
70 ;;
71 (*linux*)
72 cmake \
73 $cmake_options \
74 ..
75 ;;
76 esac
77
41 make 78 make
42 ctest --output-on-failure 79 ctest --output-on-failure
43 make install DESTDIR=$(pwd)/DESTDIR 80 make install DESTDIR=$(pwd)/DESTDIR