@@ -155,34 +155,39 @@ enable_testing()
155
155
# Custom targets to build and test mscp in docker containers.
156
156
# foreach(IN ZIP_LISTS) (cmake >= 3.17) can shorten the following lists.
157
157
# However, ubuntu 20.04 has cmake 3.16.3. So this is a roundabout trick.
158
- list (APPEND DIST_NAMES ubuntu ubuntu rocky rocky almalinux alpine)
158
+ list (APPEND DIST_IDS ubuntu ubuntu rocky rocky almalinux alpine)
159
159
list (APPEND DIST_VERS 20.04 22.04 8.9 9.3 9.3 3.19)
160
160
list (APPEND DIST_PKGS deb deb rpm rpm rpm static )
161
161
162
- list (LENGTH DIST_NAMES _DIST_LISTLEN)
162
+ list (LENGTH DIST_IDS _DIST_LISTLEN)
163
163
math (EXPR DIST_LISTLEN "${_DIST_LISTLEN} - 1" )
164
164
165
165
foreach (x RANGE ${DIST_LISTLEN} )
166
- list (GET DIST_NAMES ${x} DIST_NAME )
166
+ list (GET DIST_IDS ${x} DIST_ID )
167
167
list (GET DIST_VERS ${x} DIST_VER)
168
168
list (GET DIST_PKGS ${x} DIST_PKG)
169
169
170
- set (DOCKER_IMAGE mscp-${DIST_NAME} :${DIST_VER} )
171
- set (DOCKER_INDEX ${DIST_NAME} -${DIST_VER} )
172
- set (PKG_FILE_NAME
173
- mscp_${DIST_NAME} -${DIST_VER} -${ARCH} .${DIST_PKG} )
170
+ set (DOCKER_IMAGE mscp-${DIST_ID} :${DIST_VER} )
171
+ set (DOCKER_INDEX ${DIST_ID} -${DIST_VER} )
172
+ execute_process (
173
+ COMMAND ${CMAKE_SOURCE_DIR} /scripts/install -build -deps.sh
174
+ --dont-install --platform Linux-${DIST_ID}
175
+ OUTPUT_VARIABLE REQUIREDPKGS
176
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
174
177
175
178
add_custom_target (docker-build -${DOCKER_INDEX}
176
179
COMMENT "Build mscp in ${DOCKER_IMAGE} container"
177
180
WORKING_DIRECTORY ${mscp_SOURCE_DIR}
178
181
COMMAND
179
- docker build -t ${DOCKER_IMAGE} -f Dockerfile/${DOCKER_INDEX} .Dockerfile .)
182
+ docker build --build -arg REQUIREDPKGS=${REQUIREDPKGS}
183
+ -t ${DOCKER_IMAGE} -f Dockerfile/${DOCKER_INDEX} .Dockerfile .)
180
184
181
185
add_custom_target (docker-build -${DOCKER_INDEX} -no -cache
182
186
COMMENT "Build mscp in ${DOCKER_IMAGE} container"
183
187
WORKING_DIRECTORY ${mscp_SOURCE_DIR}
184
188
COMMAND
185
- docker build --no -cache -t ${DOCKER_IMAGE} -f Dockerfile/${DOCKER_INDEX} .Dockerfile .)
189
+ docker build --build -arg REQUIREDPKGS=${REQUIREDPKGS} --no -cache
190
+ -t ${DOCKER_IMAGE} -f Dockerfile/${DOCKER_INDEX} .Dockerfile .)
186
191
187
192
add_custom_target (docker-test -${DOCKER_INDEX}
188
193
COMMENT "Test mscp in ${DOCKER_IMAGE} container"
@@ -204,12 +209,19 @@ add_custom_target(docker-test-all DEPENDS ${DOCKER_TESTS})
204
209
### debuild-related definitions
205
210
206
211
set (DEBBUILDCONTAINER mscp-build -deb)
212
+ execute_process (
213
+ COMMAND ${CMAKE_SOURCE_DIR} /scripts/install -build -deps.sh
214
+ --dont-install --platform Linux-ubuntu
215
+ OUTPUT_VARIABLE REQUIREDPKGS_DEB
216
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
217
+
207
218
add_custom_target (build -deb
208
219
COMMENT "build mscp deb files inside a container"
209
220
WORKING_DIRECTORY ${mscp_SOURCE_DIR}
210
221
BYPRODUCTS ${CMAKE_BINARY_DIR} /debbuild
211
222
COMMAND
212
- docker build -t ${DEBBUILDCONTAINER} -f Dockerfile/build -deb.Dockerfile .
223
+ docker build --build -arg REQUIREDPKGS=${REQUIREDPKGS_DEB}
224
+ -t ${DEBBUILDCONTAINER} -f Dockerfile/build -deb.Dockerfile .
213
225
COMMAND
214
226
docker run --rm -v ${CMAKE_BINARY_DIR} :/out ${DEBBUILDCONTAINER}
215
227
cp -r /debbuild /out/)
@@ -222,20 +234,28 @@ configure_file(
222
234
${mscp_SOURCE_DIR} /rpm/mscp.spec.in
223
235
${mscp_SOURCE_DIR} /rpm/mscp.spec
224
236
@ONLY)
225
- configure_file (
226
- ${mscp_SOURCE_DIR} /Dockerfile/build -srpm.Dockerfile.in
227
- ${mscp_SOURCE_DIR} /Dockerfile/build -srpm.Dockerfile
228
- @ONLY)
237
+ # configure_file(
238
+ # ${mscp_SOURCE_DIR}/Dockerfile/build-srpm.Dockerfile.in
239
+ # ${mscp_SOURCE_DIR}/Dockerfile/build-srpm.Dockerfile
240
+ # @ONLY)
229
241
230
242
# Custom target to build mscp as a src.rpm in docker.
231
243
set (RPMBUILDCONTAINER mscp-build -srpm)
232
244
set (SRPMFILE mscp-${MSCP_VERSION} -1.el9.src.rpm)
245
+ execute_process (
246
+ COMMAND ${CMAKE_SOURCE_DIR} /scripts/install -build -deps.sh
247
+ --dont-install --platform Linux-rocky
248
+ OUTPUT_VARIABLE REQUIREDPKGS_RPM
249
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
250
+
233
251
add_custom_target (build -srpm
234
252
COMMENT "Build mscp src.rpm inside a container"
235
253
WORKING_DIRECTORY ${mscp_SOURCE_DIR}
236
254
BYPRODUCTS ${CMAKE_BINARY_DIR} /${SRPMFILE}
237
255
COMMAND
238
- docker build -t ${RPMBUILDCONTAINER} -f Dockerfile/build -srpm.Dockerfile .
256
+ docker build --build -arg REQUIREDPKGS=${REQUIREDPKGS_RPM}
257
+ --build -arg MSCP_VERSION=${MSCP_VERSION}
258
+ -t ${RPMBUILDCONTAINER} -f Dockerfile/build -srpm.Dockerfile .
239
259
COMMAND
240
260
docker run --rm -v ${CMAKE_BINARY_DIR} :/out ${RPMBUILDCONTAINER}
241
261
cp /root/rpmbuild/SRPMS/${SRPMFILE} /out/)
0 commit comments