]> granicus.if.org Git - graphviz/commitdiff
Add generation of a Debian package from Ubuntu CMake build
authorMagnus Jacobsson <magnus.jacobsson@berotec.se>
Sun, 13 Sep 2020 18:35:13 +0000 (20:35 +0200)
committerMagnus Jacobsson <magnus.jacobsson@berotec.se>
Wed, 23 Sep 2020 06:37:52 +0000 (08:37 +0200)
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-<version>-Linux.deb.

.gitlab-ci.yml
ci/build.sh
ci/install-packages.sh
cmake/package_info.cmake

index f9c09c69e72e0147c5215170628d50f1cbde5476..e4a965a7eed2d2f3d50875f8467ccc94da1b3c88 100644 (file)
@@ -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"
index a89e2417a56d9ef9631b0c007127695d68b1c2d7..045ca804ae296ed59b69569cc86933abc3e08aa7 100755 (executable)
@@ -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}/
index f3d472790f12e302a47627d914159b7e2ead78b2..e9afdc919530ea9061556f1a0124868b300a5559 100755 (executable)
@@ -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 \
index 0fe44afa94e570b63a766fe2e04535858f06c7e5..73d09815a7e61155cc2d7769ada7a4fa9b89c393 100644 (file)
@@ -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"  )