Skip to content

Commit

Permalink
Add cpack support for debian and nuget package creation
Browse files Browse the repository at this point in the history
  • Loading branch information
Levi-Armstrong committed Jan 16, 2025
1 parent 51c08ad commit 110a7ef
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/unstable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ jobs:
before-script: source /opt/tesseract/install/setup.bash && source /opt/tesseract_planning/install/setup.bash
ccache-prefix: ${{ matrix.distro }}
target-path: target_ws/src
target-args: --cmake-args -DCMAKE_BUILD_TYPE=Debug -DTESSERACT_ENABLE_TESTING=ON
target-args: --cmake-args -DCMAKE_BUILD_TYPE=Debug -DTESSERACT_ENABLE_TESTING=ON -DTESSERACT_PACKAGE=ON
33 changes: 33 additions & 0 deletions .run-cpack
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

# Get default extension based on OS
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*) default_ext=deb;;
Darwin*) default_ext=osx;;
CYGWIN*) default_ext=nupkg;;
MINGW*) default_ext=nupkg;;
*) default_ext=deb
esac

# The defaults assume this was ran from the package directory
artifact_dir=${CPACK_ARTIFACTS_DIR:-`pwd`}
build_dir=${CPACK_WORKING_DIR:-$(dirname $0)/../../build}
artifact_ext=${CPACK_ARTIFACTS_EXT:-$default_ext}

echo "Input Parameters:"
echo " artifact_dir: $artifact_dir"
echo " artifact_ext: $artifact_ext"
echo " build_dir: $build_dir"

declare -a StringArray=("tesseract_qt")

# Iterate the packages using for loop
for val in ${StringArray[@]}; do
if [ -d "$build_dir/$val" ] && [ -f "$build_dir/$val/CPackConfig.cmake" ]; then
cd $build_dir/$val
cpack --config CPackConfig.cmake
cp ./*.$artifact_ext $artifact_dir
cp ./*.tar.xz $artifact_dir
fi
done
83 changes: 83 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,47 @@ set(DEPS
tesseract_visualization
tesseract_command_language)

set(LINUX_DEPENDS
"libboost-program-options-dev"
"libqt5gui5"
"libqt5widgets5"
"libqt5svg5"
"libqt5opengl5"
"libqt5xml5"
"${TESSERACT_PACKAGE_PREFIX}tesseract-common"
"${TESSERACT_PACKAGE_PREFIX}tesseract-scene-graph
"${TESSERACT_PACKAGE_PREFIX}tesseract-environment"
"${TESSERACT_PACKAGE_PREFIX}tesseract-urdf"
"${TESSERACT_PACKAGE_PREFIX}tesseract-srdf"
"${TESSERACT_PACKAGE_PREFIX}tesseract-visualization"
"${TESSERACT_PACKAGE_PREFIX}tesseract-command-language"
"${TESSERACT_PACKAGE_PREFIX}tesseract-collision-core"
"${TESSERACT_PACKAGE_PREFIX}tesseract-kinematics-core"
"${TESSERACT_PACKAGE_PREFIX}tesseract-kinematics-opw"
"${TESSERACT_PACKAGE_PREFIX}tesseract-task-composer-core"
"${TESSERACT_PACKAGE_PREFIX}tesseract-task-composer-planning"
)
set(WINDOWS_DEPENDS
"libboost-program-options-dev"
"libqt5gui5"
"libqt5widgets5"
"libqt5svg5"
"libqt5opengl5"
"libqt5xml5"
"${TESSERACT_PACKAGE_PREFIX}tesseract-common"
"${TESSERACT_PACKAGE_PREFIX}tesseract-scene-graph
"${TESSERACT_PACKAGE_PREFIX}tesseract-environment"
"${TESSERACT_PACKAGE_PREFIX}tesseract-urdf"
"${TESSERACT_PACKAGE_PREFIX}tesseract-srdf"
"${TESSERACT_PACKAGE_PREFIX}tesseract-visualization"
"${TESSERACT_PACKAGE_PREFIX}tesseract-command-language"
"${TESSERACT_PACKAGE_PREFIX}tesseract-collision-core"
"${TESSERACT_PACKAGE_PREFIX}tesseract-kinematics-core"
"${TESSERACT_PACKAGE_PREFIX}tesseract-kinematics-opw"
"${TESSERACT_PACKAGE_PREFIX}tesseract-task-composer-core"
"${TESSERACT_PACKAGE_PREFIX}tesseract-task-composer-planning")

if(${BUILD_RENDERING})
message("Building rendering module")
add_subdirectory(rendering)
Expand All @@ -67,12 +108,33 @@ if(${BUILD_RENDERING})
${GZ_RENDERING}
gz-math7-eigen3
"gz-common5 COMPONENTS profiler events av")
list(
APPEND
LINUX_DEPENDS
lib${GZ_RENDERING}-dev
libgz-common5-dev
libgz-math7-dev)
list(
APPEND
WINDOWS_DEPENDS
lib${GZ_RENDERING}-dev
libgz-common5-dev
libgz-math7-dev)
endif()

if(${BUILD_STUDIO} AND ${BUILD_RENDERING})
message("Building studio module")
list(APPEND DEPS "qtadvanceddocking NAMES qtadvanceddocking qt5advanceddocking qt6advanceddocking")
add_subdirectory(studio)

if((EXISTS LSB_RELEASE_CODE_SHORT) AND (LSB_RELEASE_CODE_SHORT STREQUAL "noble"))
set(QT_ADS libqt-advanced-docking-system-dev)
else()
set(QT_ADS qt-advanced-docking-system)
endif()

list(APPEND LINUX_DEPENDS ${QT_ADS})
list(APPEND WINDOWS_DEPENDS ${QT_ADS})
endif()

install(FILES "${CMAKE_CURRENT_LIST_DIR}/cmake/FindQwt.cmake" "${CMAKE_CURRENT_LIST_DIR}/cmake/FindGraphviz.cmake"
Expand All @@ -84,3 +146,24 @@ configure_package(
TARGETS ${PROJECT_TARGETS}
DEPENDENCIES ${DEPS}
CFG_EXTRAS cmake/tesseract_qt-extras.cmake)

if(TESSERACT_PACKAGE)
cpack(
VERSION ${pkg_extracted_version}
MAINTAINER_NAME ${pkg_extracted_maintainer_name}
MAINTAINER_EMAIL ${pkg_extracted_maintainer_email}
DESCRIPTION ${pkg_extracted_description}
LICENSE_FILE ${CMAKE_CURRENT_LIST_DIR}/LICENSE
README_FILE ${CMAKE_CURRENT_LIST_DIR}/README.md
LINUX_DEPENDS ${LINUX_DEPENDS}
WINDOWS_DEPENDS ${WINDOWS_DEPENDS})

if(UNIX AND TESSERACT_PACKAGE_SOURCE)
cpack_debian_source_package(
CHANGLELOG ${CMAKE_CURRENT_LIST_DIR}/CHANGELOG.rst
UPLOAD ${TESSERACT_PACKAGE_SOURCE_UPLOAD}
DPUT_HOST ${TESSERACT_PACKAGE_SOURCE_DPUT_HOST}
DEBIAN_INCREMENT ${TESSERACT_PACKAGE_SOURCE_DEBIAN_INCREMENT}
DISTRIBUTIONS ${TESSERACT_PACKAGE_SOURCE_DISTRIBUTIONS})
endif()
endif()

0 comments on commit 110a7ef

Please sign in to comment.