diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2020-12-28 12:29:13 +0100 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2021-01-17 12:51:39 +0100 |
commit | 3a016513e42c082c6b7b509bf93f63066a1b65f8 (patch) | |
tree | dd9b74eaa2e8a21ebe8a99132f18f1bd1fb1828d | |
parent | ebd7badd50aeea37a2ca121409e9f68370b62855 (diff) | |
download | dlfcn-win32-3a016513e42c082c6b7b509bf93f63066a1b65f8.tar.gz dlfcn-win32-3a016513e42c082c6b7b509bf93f63066a1b65f8.tar.bz2 dlfcn-win32-3a016513e42c082c6b7b509bf93f63066a1b65f8.zip |
CI: Add static building for cmake
-rw-r--r-- | .travis.yml | 12 | ||||
-rwxr-xr-x | tools/ci-build.sh | 81 |
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 @@ | |||
1 | language: c | 1 | language: c |
2 | 2 | ||
3 | compiler: | 3 | compiler: |
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 | ||
7 | addons: | 8 | addons: |
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 | ||
14 | env: | 16 | env: |
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 | ||
18 | jobs: | 21 | jobs: |
@@ -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 | |||
42 | script: | 52 | script: |
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 | |||
18 | if test -v CROSS_COMPILE; then | ||
19 | ci_target=${CROSS_COMPILE%-} | ||
20 | fi | ||
13 | 21 | ||
14 | case "$ci_buildsys" in | 22 | case "$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 |