summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorRyo Nakamura <upa@haeena.net>2024-02-04 10:58:11 +0900
committerRyo Nakamura <upa@haeena.net>2024-02-04 10:58:11 +0900
commit306a00ced564829d0c265644b99ecaa0de32920b (patch)
tree988f7f7af7c8ec4ea30ddab15ce1b82393d6d572 /CMakeLists.txt
parent65025b9022102cf283af7577ab3b868982079322 (diff)
build source rpm inside a container
A new build target `build-srpm` builds mscp src.rpm inside a docker container. The src.rpm can be published at COPR.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a2f9533..bd6301d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,3 +262,30 @@ add_custom_target(docker-build-all DEPENDS ${DOCKER_BUILDS})
add_custom_target(docker-build-all-no-cache DEPENDS ${DOCKER_BUILDS_NO_CACHE})
add_custom_target(docker-test-all DEPENDS ${DOCKER_TESTS})
add_custom_target(docker-pkg-all DEPENDS ${DOCKER_PKGS})
+
+
+### rpmbuild-related definitions
+
+# generate files for rpmbuild
+configure_file(
+ ${mscp_SOURCE_DIR}/rpm/mscp.spec.in
+ ${mscp_SOURCE_DIR}/rpm/mscp.spec
+ @ONLY)
+configure_file(
+ ${mscp_SOURCE_DIR}/docker/build-srpm.Dockerfile.in
+ ${mscp_SOURCE_DIR}/docker/build-srpm.Dockerfile
+ @ONLY)
+
+# Custom targets to build mscp as a src.rpm in docker.
+set(RPMBUILDCONTAINER mscp-build-srpm)
+set(SRPMFILE mscp-${MSCP_VERSION}-1.el9.src.rpm)
+add_custom_target(build-srpm
+ COMMENT "Build mscp src.rpm inside a container"
+ WORKING_DIRECTORY ${mscp_SOURCE_DIR}
+ BYPRODUCTS ${CMAKE_BINARY_DIR}/${SRPMFILE}
+ COMMAND
+ docker build -t ${RPMBUILDCONTAINER} -f docker/build-srpm.Dockerfile .
+ COMMAND
+ docker run --rm -v ${CMAKE_BINARY_DIR}:/out ${RPMBUILDCONTAINER}
+ cp /root/rpmbuild/SRPMS/${SRPMFILE} /out/)
+