forked from NetsoftHoldings/poppler
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
156 lines (142 loc) · 5.47 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
image: debian:unstable
stages:
- build
- document
- publish
before_script:
- echo 'deb-src http://deb.debian.org/debian unstable main' >> /etc/apt/sources.list
- apt-get update
- apt-get build-dep --yes --no-install-recommends poppler
- apt-get install --yes --no-install-recommends ninja-build libcurl4-openssl-dev git ca-certificates locales libc++-dev libc++abi-dev clang libgtk-3-dev clang-tidy
- echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
- locale-gen
variables:
LANG: en_US.UTF-8
LANGUAGE: en_US:en
LC_ALL: en_US.UTF-8
DEBIAN_FRONTEND: noninteractive
TEST_DATA_URL: https://gitlab.freedesktop.org/${CI_PROJECT_NAMESPACE}/test.git
UPSTREAM_TEST_DATA_URL: https://gitlab.freedesktop.org/poppler/test.git
cache:
key: "$CI_BUILD_NAME"
paths:
- build/
build:
stage: build
script:
- git clone --branch ${CI_COMMIT_REF_NAME} --depth 1 ${TEST_DATA_URL} test-data || git clone --depth 1 ${UPSTREAM_TEST_DATA_URL} test-data
- mkdir -p build && cd build
- cmake -G Ninja -DTESTDATADIR=$PWD/../test-data ..
- ninja
- ctest --output-on-failure
build_clang_libcpp:
stage: build
script:
- git clone --branch ${CI_COMMIT_REF_NAME} --depth 1 ${TEST_DATA_URL} test-data || git clone --depth 1 ${UPSTREAM_TEST_DATA_URL} test-data
- mkdir -p build && cd build
- CC=clang CXX=clang++ cmake -G Ninja -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DTESTDATADIR=$PWD/../test-data -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-header-filter=.;-checks=-*,performance-*,bugprone-*,readability-inconsistent-declaration-parameter-name,readability-string-compare,modernize-deprecated-headers,modernize-make-unique,modernize-make-shared,modernize-use-override,modernize-use-equals-delete,modernize-use-emplace,modernize-use-bool-literals,modernize-redundant-void-arg,modernize-loop-convert,-bugprone-narrowing-conversions,-bugprone-macro-parentheses,-bugprone-suspicious-string-compare,-bugprone-incorrect-roundings,-bugprone-undefined-memory-manipulation,-bugprone-sizeof-expression,-bugprone-branch-clone;-warnings-as-errors=*" ..
- ninja
- ctest --output-on-failure
build_ubuntu_16_04:
stage: build
image: ubuntu:xenial
before_script:
- apt-get update
- apt-get install --yes --no-install-recommends build-essential cmake ninja-build libjpeg-dev libopenjp2-7-dev qtbase5-dev gobject-introspection libglib2.0-dev libgtk-3-dev libgirepository1.0-dev libnss3-dev ca-certificates
script:
- mkdir -p build && cd build
- cmake -G Ninja ..
- ninja
build_mingw64_fedora:
stage: build
image: fedora
before_script:
- dnf install -y 'dnf-command(builddep)'
- dnf builddep -y mingw64-poppler
- dnf -y install glibc-langpack-en make ninja-build
script:
- mkdir -p build && cd build
- mingw64-cmake -G Ninja ..
- ninja
build_clazy:
stage: build
image: fedora
before_script:
- dnf install -y 'dnf-command(builddep)'
- dnf builddep -y poppler
- dnf -y install glibc-langpack-en make ninja-build clazy clang redhat-rpm-config libcurl-devel
script:
- mkdir -p build && cd build
- CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -G Ninja ..
- CLAZY_CHECKS="level0,level1,level2,isempty-vs-count,qhash-with-char-pointer-key,tr-non-literal,no-non-pod-global-static" ninja
build_android:
stage: build
image: kdeorg/android-sdk
before_script:
- wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.xz
- tar xvfh freetype-2.10.1.tar.xz
- pushd freetype-2.10.1
- CFLAGS=-std=gnu99 STANDALONE_EXTRA="--arch arm64" /opt/helpers/build-standalone "./autogen.sh && ./configure --enable-shared=no --prefix=/opt/popplerandroid-deps --host=aarch64-linux-android && make -j`nproc` && make install"
- popd
script:
- mkdir -p build && cd build
- 'ANDROID_ARCH_ABI=arm64-v8a cmake -G Ninja ..
-DCMAKE_ANDROID_API=28
-DCMAKE_INSTALL_PREFIX="/opt/popplerandroid-deps"
-DCMAKE_PREFIX_PATH="$QT_ANDROID;/opt/popplerandroid-deps"
-DCMAKE_BUILD_TYPE=debug
-DCMAKE_POSITION_INDEPENDENT_CODE=OFF
-DENABLE_DCTDECODER=unmaintained
-DENABLE_LIBOPENJPEG=unmaintained
-DCMAKE_TOOLCHAIN_FILE=/opt/nativetooling/share/ECM/toolchain/Android.cmake'
- ninja && ninja install
qt5_docs:
only:
- master
stage: document
variables:
QT_SELECT: qt5
script:
- apt-get install --yes --no-install-recommends doxygen graphviz qtchooser qttools5-dev-tools
- cd qt5/src
- doxygen
cache: {}
artifacts:
paths:
- qt5/src/APIDOCS-html
cpp_docs:
only:
- master
stage: document
script:
- apt-get install --yes --no-install-recommends doxygen graphviz
- cd cpp
- doxygen
cache: {}
artifacts:
paths:
- cpp/APIDOCS-html
glib_docs:
only:
- master
stage: document
script:
- apt-get install --yes --no-install-recommends gtk-doc-tools
- mkdir -p build && cd build
- cmake -G Ninja -DENABLE_GTK_DOC=YES ..
- ninja glib-docs
cache: {}
artifacts:
paths:
- build/glib/reference/html
trigger_pages:
only:
- master
stage: publish
image: alpine:latest
before_script:
- apk --update upgrade
- apk add curl ca-certificates
script:
- 'curl --request POST --form "token=$WEB_PAGE_TRIGGER" --form ref=master https://gitlab.freedesktop.org/api/v4/projects/poppler%2Fpoppler-web-page/trigger/pipeline'
cache: {}