From: Magnus Jacobsson Date: Sun, 13 Sep 2020 18:35:13 +0000 (+0200) Subject: Add generation of a Debian package from Ubuntu CMake build X-Git-Tag: 2.46.0~20^2^2~68^2~11 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=332bc571e48c4ee5b4a0386d5c1732aaf82eed02;p=graphviz Add generation of a Debian package from Ubuntu CMake build Also adapts jobs & scripts. This does not yet replicate the structure of Debian packages produced by autotools. Everything is put into one single package named Graphviz--Linux.deb. --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f9c09c69e..e4a965a7e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -251,14 +251,9 @@ ubuntu20-04-build: image: "graphviz/graphviz:ubuntu-20.04" ubuntu18-04-cmake-build: - stage: build - script: - - mkdir build - - cd build - - cmake .. - - cmake --build . - except: - - tags + <<: *deb_build_definition + before_script: + - export build_system="cmake" tags: - linux image: "graphviz/graphviz:ubuntu-18.04" diff --git a/ci/build.sh b/ci/build.sh index a89e2417a..045ca804a 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -17,8 +17,17 @@ COLLECTION=$( cat COLLECTION ) META_DATA_DIR=Metadata/${COLLECTION}/${ID}/${VERSION_ID} mkdir -p ${META_DATA_DIR} if [ "${ID_LIKE}" = "debian" ]; then - tar xfz graphviz-${GV_VERSION}.tar.gz - (cd graphviz-${GV_VERSION}; fakeroot make -f debian/rules binary) | tee >(ci/extract-configure-log.sh >${META_DATA_DIR}/configure.log) + if [ "${build_system}" = "cmake" ]; then + mkdir build + cd build + cmake .. + cmake --build . + cpack + cd .. + else + tar xfz graphviz-${GV_VERSION}.tar.gz + (cd graphviz-${GV_VERSION}; fakeroot make -f debian/rules binary) | tee >(ci/extract-configure-log.sh >${META_DATA_DIR}/configure.log) + fi else rm -rf ${HOME}/rpmbuild rpmbuild -ta graphviz-${GV_VERSION}.tar.gz | tee >(ci/extract-configure-log.sh >${META_DATA_DIR}/configure.log) @@ -29,8 +38,12 @@ mkdir -p ${DIR}/os/${ARCH} mkdir -p ${DIR}/debug/${ARCH} mkdir -p ${DIR}/source if [ "${ID_LIKE}" = "debian" ]; then - mv *.deb ${DIR}/os/${ARCH}/ - mv *.ddeb ${DIR}/debug/${ARCH}/ + if [ "${build_system}" = "cmake" ]; then + mv build/*.deb ${DIR}/os/${ARCH}/ + else + mv *.deb ${DIR}/os/${ARCH}/ + mv *.ddeb ${DIR}/debug/${ARCH}/ + fi else mv ${HOME}/rpmbuild/SRPMS/*.src.rpm ${DIR}/source/ mv ${HOME}/rpmbuild/RPMS/*/*debuginfo*rpm ${DIR}/debug/${ARCH}/ diff --git a/ci/install-packages.sh b/ci/install-packages.sh index f3d472790..e9afdc919 100755 --- a/ci/install-packages.sh +++ b/ci/install-packages.sh @@ -15,9 +15,14 @@ COLLECTION=$( cat COLLECTION ) DIR=Packages/${COLLECTION}/${ID}/${VERSION_ID} ARCH=$( uname -m ) if [ "${ID_LIKE}" = "debian" ]; then - apt install ./${DIR}/os/${ARCH}/libgraphviz4_${GV_VERSION}-1_amd64.deb - apt install ./${DIR}/os/${ARCH}/libgraphviz-dev_${GV_VERSION}-1_amd64.deb - apt install ./${DIR}/os/${ARCH}/graphviz_${GV_VERSION}-1_amd64.deb + if [ "${build_system}" = "cmake" ]; then + apt install ./${DIR}/os/${ARCH}/Graphviz-${GV_VERSION}-Linux.deb + dot -c + else + apt install ./${DIR}/os/${ARCH}/libgraphviz4_${GV_VERSION}-1_amd64.deb + apt install ./${DIR}/os/${ARCH}/libgraphviz-dev_${GV_VERSION}-1_amd64.deb + apt install ./${DIR}/os/${ARCH}/graphviz_${GV_VERSION}-1_amd64.deb + fi else rpm --install --force \ ${DIR}/os/${ARCH}/graphviz-${GV_VERSION}*.rpm \ diff --git a/cmake/package_info.cmake b/cmake/package_info.cmake index 0fe44afa9..73d09815a 100644 --- a/cmake/package_info.cmake +++ b/cmake/package_info.cmake @@ -11,6 +11,10 @@ set(CPACK_RESOURCE_FILE_README "${TOP_SOURCE_DIR}/README.md" ) set(CPACK_GENERATOR ZIP) +if (UNIX) + LIST(APPEND CPACK_GENERATOR DEB) +endif() + find_package(NSIS) if(NSIS_FOUND) set(CPACK_NSIS_MUI_ICON "${TOP_SOURCE_DIR}/windows/build/Graphviz.ico" )