27
27
28
28
[ -z " ${USE_STANDARD_INSTALLER_NAME} " ] && USE_STANDARD_INSTALLER_NAME=" OFF"
29
29
30
- echo " Platform: ${PLATFORM} , build type: ${BUILD_TYPE} , CI_NAME: $CI_NAME , docker image: ${DOCKER_IMAGE} , docker type: ${DOCKER_TAG} , is archive enabled: ${IS_ARCHIVE_SKIPPED} "
30
+ echo " Platform: ${PLATFORM} , build type: ${BUILD_TYPE} , CI_NAME: $CI_NAME , docker image: ${DOCKER_IMAGE} , docker type: ${DOCKER_TAG} , is archive enabled: ${IS_ARCHIVE_SKIPPED} , use ccache: ${USE_CCACHE} , reset ccache: ${RESET_CACHE} "
31
+
32
+ # clear ccache if neccesery
33
+ if [[ " $RESET_CACHE " == ' 1' ]]; then
34
+ echo " Clearing ccache"
35
+ rm -rf .ccache || true
36
+ rm -rf build/.ccache || true
37
+ fi
31
38
32
39
# Build the package on osx or linux
33
40
if [[ " $CI_NAME " == ' osx' || " $CI_NAME " == ' darwin' ]]; then
34
41
echo " Start: osx or darwin"
42
+
35
43
if [[ " $USE_CCACHE " == ' 1' ]]; then
36
44
echo " Using ccache"
37
-
38
- # Init ccache
39
- mkdir -p .ccache
40
- cd .ccache
41
-
42
- if [[ " $RESET_CACHE " == ' 1' ]]; then
43
- echo " Clearing ccache"
44
- rm -rf ..?* .[! .]* *
45
- fi
46
-
47
- CCACHE_PATH=$PWD
48
- cd ..
49
- cachecommand=" -DCMAKE_C_COMPILER_LAUNCHER=ccache ${IS_ARCHIVE_SKIPPED} "
50
- export CCACHE_SLOPPINESS=pch_defines,time_macros && export CCACHE_DIR=${CCACHE_PATH} && export CCACHE_COMPRESS=true && export CCACHE_COMPRESSLEVEL=1 && export CCACHE_MAXSIZE=400M
51
- echo " CCache parameters: ${cachecommand} "
52
- ls -a .ccache
53
-
54
- mkdir build || exit 1
55
- cd build
56
- ccache -p
57
- cmake ${cachecommand} -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../ || exit 2
58
- make -j $( sysctl -n hw.ncpu) || exit 3
59
- sudo cpack || exit 3
60
- exit 0;
61
- exit 1 || { echo " ---> HyperHDR compilation failed! Abort" ; exit 5; }
45
+ BUILD_OPTION=" "
62
46
else
63
47
echo " Not using ccache"
64
- mkdir build || exit 1
65
- cd build
66
- cmake -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../ || exit 2
67
- make -j $( sysctl -n hw.ncpu) || exit 3
68
- sudo cpack || exit 3
69
- exit 0;
70
- exit 1 || { echo " ---> HyperHDR compilation failed! Abort" ; exit 5; }
48
+ BUILD_OPTION=" -DDISABLE_CCACHE_USAGE=ON"
71
49
fi
50
+
51
+ echo " Build option: ${BUILD_OPTION} "
52
+
53
+ mkdir -p build/.ccache
54
+ ls -a build/.ccache
55
+ cd build
56
+ cmake -DPLATFORM=${PLATFORM} ${BUILD_OPTION} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../ || exit 2
57
+ make -j $( sysctl -n hw.ncpu) || exit 3
58
+ sudo cpack || exit 3
59
+ ccache -s -d ./.ccache || true
60
+ exit 0;
61
+ exit 1 || { echo " ---> HyperHDR compilation failed! Abort" ; exit 5; }
62
+
72
63
elif [[ $CI_NAME == * " mingw64_nt" * || " $CI_NAME " == ' windows_nt' ]]; then
73
64
echo " Start: windows"
74
- echo " Number of cores: $NUMBER_OF_PROCESSORS "
75
-
65
+ echo " Number of cores: $NUMBER_OF_PROCESSORS "
66
+
76
67
if [[ " $USE_CCACHE " == ' 1' ]]; then
77
68
echo " Using ccache"
78
-
79
- mkdir -p .ccache
80
-
81
- if [[ " $RESET_CACHE " == ' 1' ]]; then
82
- echo " Clearing ccache"
83
- pushd .
84
- cd .ccache && rm -rf ..?* .[! .]* *
85
- popd
86
- fi
87
- export CCACHE_SLOPPINESS=pch_defines,time_macros && export CCACHE_DIR=$PWD /.ccache && export CCACHE_NOCOMPRESS=true && export CCACHE_MAXSIZE=600M
69
+ BUILD_OPTION=" ${IS_ARCHIVE_SKIPPED} "
70
+ else
71
+ echo " Not using ccache"
72
+ BUILD_OPTION=" -DDISABLE_CCACHE_USAGE=ON ${IS_ARCHIVE_SKIPPED} "
88
73
fi
89
74
90
- mkdir -p build || exit 1
75
+ echo " Build option: ${BUILD_OPTION} "
76
+
77
+ mkdir -p build/.ccache
78
+
91
79
cd build
92
- cmake -G " Visual Studio 17 2022" -A x64 -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_GITHUB_ACTION=1 ${IS_ARCHIVE_SKIPPED} ../ || exit 2
80
+ cmake -G " Visual Studio 17 2022" ${BUILD_OPTION} -A x64 -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_GITHUB_ACTION=1 ../ || exit 2
81
+ ./ccache.exe -p || true
93
82
cmake --build . --target package --config Release -- -nologo -v:m -maxcpucount || exit 3
83
+ ./ccache.exe -s || true
94
84
95
- if [[ " $USE_CCACHE " == ' 1' ]]; then
96
- ./ccache.exe -s
97
- fi
98
85
exit 0;
99
86
100
87
elif [[ " $CI_NAME " == ' linux' ]]; then
@@ -105,6 +92,20 @@ elif [[ "$CI_NAME" == 'linux' ]]; then
105
92
106
93
# take ownership of deploy dir
107
94
mkdir -p ${CI_BUILD_DIR} /deploy
95
+ mkdir -p .ccache
96
+
97
+ if [[ " $USE_CCACHE " == ' 1' ]]; then
98
+ echo " Using ccache"
99
+ BUILD_OPTION=" ${IS_ARCHIVE_SKIPPED} "
100
+ cache_env=" export CCACHE_DIR=/.ccache"
101
+ ls -a .ccache
102
+ else
103
+ echo " Not using ccache"
104
+ BUILD_OPTION=" -DDISABLE_CCACHE_USAGE=ON ${IS_ARCHIVE_SKIPPED} "
105
+ cache_env=" true"
106
+ fi
107
+
108
+ echo " Build option: ${BUILD_OPTION} , ccache: ${cache_env} "
108
109
109
110
if [[ " $DOCKER_TAG " == " ArchLinux" ]]; then
110
111
echo " Arch Linux detected"
@@ -113,75 +114,27 @@ elif [[ "$CI_NAME" == 'linux' ]]; then
113
114
chmod -R a+rw ${CI_BUILD_DIR} /deploy
114
115
versionFile=` cat version`
115
116
sed -i " s/{VERSION}/${versionFile} /" PKGBUILD
116
- fi
117
-
118
- if [[ " $USE_CCACHE " == ' 1' ]]; then
119
- echo " Using ccache"
120
-
121
- mkdir -p .ccache
122
-
123
- cachecommand=" -DCMAKE_C_COMPILER_LAUNCHER=ccache ${IS_ARCHIVE_SKIPPED} "
124
-
125
- if [[ " $RESET_CACHE " == ' 1' ]]; then
126
- echo " Clearing ccache"
127
- cache_env=" export CCACHE_SLOPPINESS=pch_defines,time_macros && export CCACHE_DIR=/.ccache && export CCACHE_NOCOMPRESS=true && export CCACHE_MAXSIZE=600M && cd /.ccache && rm -rf ..?* .[!.]* *"
128
- else
129
- cache_env=" export CCACHE_SLOPPINESS=pch_defines,time_macros && export CCACHE_DIR=/.ccache && export CCACHE_NOCOMPRESS=true && export CCACHE_MAXSIZE=600M"
130
- fi
131
-
132
- echo " CCache parameters: ${cachecommand} , env: ${cache_env} "
133
-
134
- if [[ " $DOCKER_TAG " == " ArchLinux" ]]; then
135
- sed -i " s/{CACHE}/${cachecommand} /" PKGBUILD
136
- echo " Using makepkg"
137
- cat PKGBUILD
138
- chmod -R a+rw ${CI_BUILD_DIR} /.ccache
139
- else
140
- executeCommand=" cd build && ( cmake ${cachecommand} -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} -DUSE_STANDARD_INSTALLER_NAME=${USE_STANDARD_INSTALLER_NAME} ../ || exit 2 )"
141
- executeCommand+=" && ( make -j $( nproc) package || exit 3 )"
142
- fi
143
-
144
- ls -a .ccache
145
- # run docker
146
- docker run --rm \
147
- -v " ${CI_BUILD_DIR} /.ccache:/.ccache" \
148
- -v " ${CI_BUILD_DIR} /deploy:/deploy" \
149
- -v " ${CI_BUILD_DIR} :/source:ro" \
150
- $REGISTRY_URL :$DOCKER_TAG \
151
- /bin/bash -c " ${cache_env} && cd / && mkdir -p hyperhdr && cp -r source/. /hyperhdr &&
152
- cd /hyperhdr && mkdir build && (${executeCommand} ) &&
153
- (cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : ) &&
154
- (cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : ) &&
155
- (cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : ) &&
156
- ccache -s &&
157
- exit 0;
158
- exit 1 " || { echo " ---> HyperHDR compilation failed! Abort" ; exit 5; }
159
- ls -a .ccache
117
+ sed -i " s/{BUILD_OPTION}/${BUILD_OPTION} /" PKGBUILD
118
+ chmod -R a+rw ${CI_BUILD_DIR} /.ccache
160
119
else
161
- echo " Not using cache"
162
-
163
- if [[ " $DOCKER_TAG " == " ArchLinux" ]]; then
164
- sed -i " s/{CACHE}//" PKGBUILD
165
- echo " Using makepkg"
166
- cat PKGBUILD
167
- else
168
- executeCommand=" cd build && ( cmake -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} -DUSE_STANDARD_INSTALLER_NAME=${USE_STANDARD_INSTALLER_NAME} ../ || exit 2 )"
169
- executeCommand+=" && ( make -j $( nproc) package || exit 3 )"
170
- fi
171
-
172
- # run docker
173
- docker run --rm \
174
- -v " ${CI_BUILD_DIR} /deploy:/deploy" \
175
- -v " ${CI_BUILD_DIR} :/source:ro" \
176
- $REGISTRY_URL :$DOCKER_TAG \
177
- /bin/bash -c " cd / && mkdir -p hyperhdr && cp -r source/. /hyperhdr &&
178
- cd /hyperhdr && mkdir build && (${executeCommand} ) &&
179
- (cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : ) &&
180
- (cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : ) &&
181
- (cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : ) &&
182
- exit 0;
183
- exit 1 " || { echo " ---> HyperHDR compilation failed! Abort" ; exit 5; }
120
+ executeCommand=" cd build && ( cmake ${BUILD_OPTION} -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} -DUSE_STANDARD_INSTALLER_NAME=${USE_STANDARD_INSTALLER_NAME} ../ || exit 2 )"
121
+ executeCommand+=" && ( make -j $( nproc) package || exit 3 )"
184
122
fi
123
+
124
+ # run docker
125
+ docker run --rm \
126
+ -v " ${CI_BUILD_DIR} /.ccache:/.ccache" \
127
+ -v " ${CI_BUILD_DIR} /deploy:/deploy" \
128
+ -v " ${CI_BUILD_DIR} :/source:ro" \
129
+ $REGISTRY_URL :$DOCKER_TAG \
130
+ /bin/bash -c " ${cache_env} && cd / && mkdir -p hyperhdr && cp -r source/. /hyperhdr &&
131
+ cd /hyperhdr && mkdir build && (${executeCommand} ) &&
132
+ (cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : ) &&
133
+ (cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : ) &&
134
+ (cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : ) &&
135
+ (ccache -s || true) &&
136
+ exit 0;
137
+ exit 1 " || { echo " ---> HyperHDR compilation failed! Abort" ; exit 5; }
185
138
186
139
# overwrite file owner to current user
187
140
sudo chown -fR $( stat -c " %U:%G" ${CI_BUILD_DIR} /deploy) ${CI_BUILD_DIR} /deploy
0 commit comments