From b5dcc94b42f34fca569681763e5376c16a8467a0 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sat, 27 Jul 2024 14:57:56 -0400 Subject: [PATCH 01/12] Include boost-stacktrace vcpkg package in windows and mac github actions --- .github/workflows/mac.yml | 2 +- .github/workflows/windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 72b0eaac10..3034522c20 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -18,7 +18,7 @@ on: env: VCPKG_PKGS: >- - boost-dll boost-program-options + boost-dll boost-program-options boost-stacktrace boost-serialization boost-filesystem boost-format tinyxml2 console-bridge assimp urdfdom octomap orocos-kdl pcl diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 9486202c72..83154f5dfa 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -32,7 +32,7 @@ jobs: pkgs: >- fcl bullet3[multithreading,double-precision,rtti] octomap console-bridge eigen3 yaml-cpp benchmark tinyxml2 assimp orocos-kdl pcl - lapack-reference boost-dll boost-filesystem boost-serialization boost-format + lapack-reference boost-dll boost-filesystem boost-serialization boost-format boost-stacktrace boost-program-options boost-graph urdfdom ccd[double-precision] gtest ompl taskflow jsoncpp flann benchmark triplet: x64-windows-release From 00ad92f22046aef14d5f51e27cf9295250152df4 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sat, 27 Jul 2024 15:00:55 -0400 Subject: [PATCH 02/12] Fix mac os x64 and arm64 github actions --- .github/workflows/mac.yml | 32 +++++++++++++------ .../arm64-osx-dynamic-release.cmake | 9 ++++++ 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 3034522c20..34a7467e79 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -31,7 +31,19 @@ env: jobs: build-macos: - runs-on: macos-latest + strategy: + fail-fast: false + matrix: + config: + - runner: macos-12 + vcpkg_triplet: x64-osx-dynamic-release + arch: x64 + homebrew_root: /usr/local + - runner: macos-14 + vcpkg_triplet: arm64-osx-dynamic-release + arch: arm64 + homebrew_root: /opt/homebrew + runs-on: ${{ matrix.config.runner }} steps: - uses: actions/checkout@v2 with: @@ -48,10 +60,10 @@ jobs: with: pkgs: >- ${{ env.VCPKG_PKGS }} - triplet: x64-osx-dynamic-release + triplet: ${{ matrix.config.vcpkg_triplet }} extra-args: --clean-after-build --overlay-triplets=${{ github.workspace }}/ws/src/tesseract_planning/.github/workflows/vcpkg_triplets token: ${{ github.token }} - cache-key: osx-x64-vcpkg + cache-key: osx-${{ matrix.config.arch }}-vcpkg revision: master github-binarycache: true - name: pip3 @@ -63,8 +75,8 @@ jobs: - name: colcon build working-directory: ws run: | - export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release/lib - export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release + export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }}/lib + export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }} colcon build --merge-install \ --packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd tesseract_python \ @@ -75,17 +87,17 @@ jobs: -DBUILD_SHARED_LIBS=ON -DTESSERACT_ENABLE_EXAMPLES=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF \ -DVCPKG_APPLOCAL_DEPS=OFF -DTESSERACT_ENABLE_TESTING=ON \ -DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \ - -DOpenMP_CXX_INCLUDE_DIR=/usr/local/opt/libomp/include \ - -DOpenMP_C_INCLUDE_DIR=/usr/local/opt/libomp/include \ + -DOpenMP_CXX_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \ + -DOpenMP_C_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \ -DOpenMP_CXX_LIB_NAMES=libomp -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp" \ -DOpenMP_C_LIB_NAMES=libomp -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp" \ - -DOpenMP_libomp_LIBRARY=/usr/local/opt/libomp/lib/libomp.dylib \ + -DOpenMP_libomp_LIBRARY=${{ matrix.config.homebrew_root }}/opt/libomp/lib/libomp.dylib -Dtcmalloc_minimal_LIBRARY=${{ github.workspace }}/vcpkg/installed/x64-osx-dynamic-release/lib/libtcmalloc_minimal.dylib - name: colcon test working-directory: ws run: | - export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release/lib - export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release + export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }}/lib + export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }} colcon test --merge-install \ --packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd tesseract_python \ diff --git a/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake b/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake new file mode 100644 index 0000000000..d0936e7f85 --- /dev/null +++ b/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake @@ -0,0 +1,9 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES arm64) + +set(VCPKG_BUILD_TYPE release) +set(VCPKG_OSX_DEPLOYMENT_TARGET 14.0) \ No newline at end of file From 0c28710612a19baa1f2cb6e322d767e56cb39463 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sat, 27 Jul 2024 15:38:18 -0400 Subject: [PATCH 03/12] Adjust windows github action cmake args --- .github/workflows/windows.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 83154f5dfa..5aa8a22ef4 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -57,6 +57,6 @@ jobs: with: ccache-prefix: ${{ matrix.distro }} vcs-file: .github/workflows/windows_dependencies.repos - upstream-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF + upstream-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF target-path: target_ws/src - target-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DTESSERACT_ENABLE_TESTING=ON + target-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DTESSERACT_ENABLE_TESTING=ON -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF From 7bc32d5f5eeed88bd56c4a9f796cb3dc55104284 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sat, 27 Jul 2024 19:02:09 -0400 Subject: [PATCH 04/12] Import task_composer_node_info.h in task_composer_node.h --- .../include/tesseract_task_composer/core/task_composer_node.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h index 0b9053ca44..01b4de429b 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h @@ -40,6 +40,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP #include #include +#include namespace YAML { @@ -48,7 +49,6 @@ class Node; namespace tesseract_planning { -class TaskComposerNodeInfo; class TaskComposerDataStorage; enum class TaskComposerNodeType From c0b35a8dbf9a32f24242c83dd9a575a6b77e58a3 Mon Sep 17 00:00:00 2001 From: Levi Armstrong Date: Sun, 28 Jul 2024 13:16:23 -0500 Subject: [PATCH 05/12] Fix windows build by exporting public static const class variables --- tesseract_task_composer/core/CMakeLists.txt | 14 ++++++++++++-- .../core/nodes/has_data_storage_entry_task.h | 2 +- .../core/task_composer_node.h | 1 + .../planning/nodes/continuous_contact_check_task.h | 10 +++++----- .../planning/nodes/discrete_contact_check_task.h | 10 +++++----- .../planning/nodes/fix_state_bounds_task.h | 10 +++++----- .../planning/nodes/fix_state_collision_task.h | 10 +++++----- .../planning/nodes/format_as_input_task.h | 6 +++--- .../planning/nodes/format_as_result_task.h | 2 +- .../nodes/iterative_spline_parameterization_task.h | 12 ++++++------ .../planning/nodes/min_length_task.h | 8 ++++---- .../planning/nodes/motion_planner_task.hpp | 12 ++++++------ .../planning/nodes/process_planning_input_task.h | 4 ++-- .../planning/nodes/profile_switch_task.h | 6 +++--- .../planning/nodes/raster_motion_task.h | 6 +++--- .../planning/nodes/raster_only_motion_task.h | 6 +++--- .../nodes/ruckig_trajectory_smoothing_task.h | 12 ++++++------ .../nodes/time_optimal_parameterization_task.h | 12 ++++++------ .../planning/nodes/update_end_state_task.h | 6 +++--- .../nodes/update_start_and_end_state_task.h | 8 ++++---- .../planning/nodes/update_start_state_task.h | 6 +++--- .../planning/nodes/upsample_trajectory_task.h | 6 +++--- 22 files changed, 90 insertions(+), 79 deletions(-) diff --git a/tesseract_task_composer/core/CMakeLists.txt b/tesseract_task_composer/core/CMakeLists.txt index 550690c83a..586a85e43d 100644 --- a/tesseract_task_composer/core/CMakeLists.txt +++ b/tesseract_task_composer/core/CMakeLists.txt @@ -1,3 +1,6 @@ +# Need to create export header so static class variables can be exported on windows build +include(GenerateExportHeader) + add_library( ${PROJECT_NAME} src/task_composer_data_storage.cpp @@ -13,6 +16,9 @@ add_library( src/task_composer_plugin_factory.cpp src/task_composer_server.cpp src/task_composer_task.cpp) + +generate_export_header(${PROJECT_NAME}) + target_link_libraries( ${PROJECT_NAME} PUBLIC console_bridge::console_bridge @@ -35,8 +41,9 @@ target_code_coverage( ALL EXCLUDE ${COVERAGE_EXCLUDE} ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE}) -target_include_directories(${PROJECT_NAME} PUBLIC "$" - "$") +target_include_directories( + ${PROJECT_NAME} PUBLIC "$" + "$" "$") add_library( ${PROJECT_NAME}_nodes @@ -97,6 +104,9 @@ install( PATTERN "*.h" PATTERN "*.hpp") +install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_export.h DESTINATION include/${PROJECT_NAME}/core/ + COMPONENT core) + # Plugin should not be export only installed install( TARGETS ${PROJECT_NAME}_factories diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h index 58d464a1e0..fec21704d0 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h @@ -16,7 +16,7 @@ class HasDataStorageEntryTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_KEYS_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_KEYS_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h index 5d714f1983..1319f1db55 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h @@ -34,6 +34,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h index 3c81416ac9..e4b2c64cf1 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h @@ -45,13 +45,13 @@ class ContinuousContactCheckTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h index b43c129fde..c19d8ed7ec 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h @@ -45,13 +45,13 @@ class DiscreteContactCheckTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h index 8b92e0583d..1c405d6f6d 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h @@ -46,13 +46,13 @@ class FixStateBoundsTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h index 3cb2ff1717..2c673cfec9 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h @@ -54,13 +54,13 @@ class FixStateCollisionTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h index 0968dc8101..0b4e584c26 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h @@ -55,9 +55,9 @@ class FormatAsInputTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PRE_PLANNING_PROGRAM_PORT; - static const std::string INPUT_POST_PLANNING_PROGRAM_PORT; - static const std::string OUTPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PRE_PLANNING_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_POST_PLANNING_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h index fd832658ab..9290567966 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h @@ -16,7 +16,7 @@ class FormatAsResultTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAMS_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAMS_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h index 4778d0537c..685246cb31 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h @@ -43,14 +43,14 @@ class IterativeSplineParameterizationTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h index ead8d1b32e..8d8fc29ff8 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h @@ -42,12 +42,12 @@ class MinLengthTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp index 0fad182cdf..b3e106e472 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp @@ -53,14 +53,14 @@ class MotionPlannerTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; MotionPlannerTask() : TaskComposerTask("MotionPlannerTask", MotionPlannerTask::ports(), true) {} explicit MotionPlannerTask(std::string name, // NOLINT(performance-unnecessary-value-param) diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h index a4b894a544..9f78e58ee4 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h @@ -42,8 +42,8 @@ class ProcessPlanningInputTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PLANNING_INPUT_PORT; - static const std::string OUTPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PLANNING_INPUT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h index 40831d9904..94665b3055 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h @@ -43,11 +43,11 @@ class ProfileSwitchTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PROGRAM_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h index 37864a28d1..ec6bf7f2de 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h @@ -60,11 +60,11 @@ class RasterMotionTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; struct TaskFactoryResults { diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h index 58b753eefe..c102cc4a38 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h @@ -56,11 +56,11 @@ class RasterOnlyMotionTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; struct TaskFactoryResults { diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h index 3e0a18b43a..9873bb1fd0 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h @@ -39,14 +39,14 @@ class RuckigTrajectorySmoothingTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h index 684e1ee926..2423961aae 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h @@ -43,14 +43,14 @@ class TimeOptimalParameterizationTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_ENVIRONMENT_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_MANIP_INFO_PORT; - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h index 6397b662b5..ff4f706098 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h @@ -39,9 +39,9 @@ class UpdateEndStateTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_CURRENT_PROGRAM_PORT; - static const std::string INPUT_NEXT_PROGRAM_PORT; - static const std::string OUTPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_NEXT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h index d1e8595d11..95d8f4ac84 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h @@ -39,10 +39,10 @@ class UpdateStartAndEndStateTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PREVIOUS_PROGRAM_PORT; - static const std::string INPUT_CURRENT_PROGRAM_PORT; - static const std::string INPUT_NEXT_PROGRAM_PORT; - static const std::string OUTPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PREVIOUS_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_NEXT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h index 517e67e5dc..de60a5e365 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h @@ -39,9 +39,9 @@ class UpdateStartStateTask : public TaskComposerTask { public: // Requried - static const std::string INPUT_PREVIOUS_PROGRAM_PORT; - static const std::string INPUT_CURRENT_PROGRAM_PORT; - static const std::string OUTPUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PREVIOUS_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h index 7b5274460b..11c8ad3c85 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h @@ -47,11 +47,11 @@ class UpsampleTrajectoryTask : public TaskComposerTask { public: // Requried - static const std::string INOUT_PROGRAM_PORT; - static const std::string INPUT_PROFILES_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; // Optional - static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; From 3f12c954dd366d671c6969c124ee4ad9cd2cef09 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sun, 28 Jul 2024 20:58:16 -0400 Subject: [PATCH 06/12] Fix windows static field exports and fix tests --- tesseract_task_composer/core/CMakeLists.txt | 7 ++++--- .../core/nodes/has_data_storage_entry_task.h | 5 +++-- .../core/task_composer_node.h | 1 - .../planning/CMakeLists.txt | 9 ++++++++ .../nodes/continuous_contact_check_task.h | 13 ++++++------ .../nodes/discrete_contact_check_task.h | 13 ++++++------ .../planning/nodes/fix_state_bounds_task.h | 13 ++++++------ .../planning/nodes/fix_state_collision_task.h | 13 ++++++------ .../planning/nodes/format_as_input_task.h | 9 ++++---- .../planning/nodes/format_as_result_task.h | 5 +++-- .../iterative_spline_parameterization_task.h | 15 ++++++------- .../planning/nodes/min_length_task.h | 11 +++++----- .../planning/nodes/motion_planner_task.hpp | 12 +++++------ .../nodes/process_planning_input_task.h | 7 ++++--- .../planning/nodes/profile_switch_task.h | 9 ++++---- .../planning/nodes/raster_motion_task.h | 9 ++++---- .../planning/nodes/raster_only_motion_task.h | 9 ++++---- .../nodes/ruckig_trajectory_smoothing_task.h | 15 ++++++------- .../time_optimal_parameterization_task.h | 15 ++++++------- .../planning/nodes/update_end_state_task.h | 9 ++++---- .../nodes/update_start_and_end_state_task.h | 11 +++++----- .../planning/nodes/update_start_state_task.h | 9 ++++---- .../planning/nodes/upsample_trajectory_task.h | 9 ++++---- ...ct_task_composer_plugin_factories_unit.cpp | 21 +++++++++++++++++++ 24 files changed, 149 insertions(+), 100 deletions(-) diff --git a/tesseract_task_composer/core/CMakeLists.txt b/tesseract_task_composer/core/CMakeLists.txt index 586a85e43d..f05b077614 100644 --- a/tesseract_task_composer/core/CMakeLists.txt +++ b/tesseract_task_composer/core/CMakeLists.txt @@ -17,8 +17,6 @@ add_library( src/task_composer_server.cpp src/task_composer_task.cpp) -generate_export_header(${PROJECT_NAME}) - target_link_libraries( ${PROJECT_NAME} PUBLIC console_bridge::console_bridge @@ -54,6 +52,9 @@ add_library( src/nodes/start_task.cpp src/nodes/sync_task.cpp src/test_suite/test_task.cpp) + +generate_export_header(${PROJECT_NAME}_nodes) + target_link_libraries( ${PROJECT_NAME}_nodes PUBLIC ${PROJECT_NAME} @@ -104,7 +105,7 @@ install( PATTERN "*.h" PATTERN "*.hpp") -install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_export.h DESTINATION include/${PROJECT_NAME}/core/ +install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_nodes_export.h DESTINATION include/${PROJECT_NAME}/core/ COMPONENT core) # Plugin should not be export only installed diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h index fec21704d0..e9bbc213ac 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h @@ -5,6 +5,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -12,11 +13,11 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class HasDataStorageEntryTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_NODES_EXPORT HasDataStorageEntryTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_KEYS_PORT; + static const std::string INPUT_KEYS_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h index f61ae1d40c..a15b62278f 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h @@ -34,7 +34,6 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include -#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include diff --git a/tesseract_task_composer/planning/CMakeLists.txt b/tesseract_task_composer/planning/CMakeLists.txt index ff337f1f7f..ddf2eae619 100644 --- a/tesseract_task_composer/planning/CMakeLists.txt +++ b/tesseract_task_composer/planning/CMakeLists.txt @@ -1,3 +1,6 @@ +# Need to create export header so static class variables can be exported on windows build +include(GenerateExportHeader) + find_package(tesseract_command_language REQUIRED) find_package( tesseract_motion_planners REQUIRED @@ -138,8 +141,11 @@ target_code_coverage( ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE}) target_include_directories( ${PROJECT_NAME}_planning_nodes PUBLIC "$" + "$" "$") +generate_export_header(${PROJECT_NAME}_planning_nodes) + # Create factories target add_library(${PROJECT_NAME}_planning_factories ${FACTORIES_SOURCE_FILES}) target_link_libraries(${PROJECT_NAME}_planning_factories PUBLIC ${FACTORIES_SOURCE_LINK_LIBRARIES}) @@ -171,6 +177,9 @@ install( PATTERN "*.hpp" PATTERN ".svn" EXCLUDE) +install(FILES ${PROJECT_BINARY_DIR}/planning/tesseract_task_composer_planning_nodes_export.h DESTINATION include/${PROJECT_NAME}/planning/ + COMPONENT planning) + # Plugin should not be export only installed install( TARGETS ${PROJECT_NAME}_planning_factories diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h index e4b2c64cf1..a096b3942e 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -41,17 +42,17 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class ContinuousContactCheckTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT ContinuousContactCheckTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INPUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h index c19d8ed7ec..5600e70d78 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -41,17 +42,17 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class DiscreteContactCheckTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT DiscreteContactCheckTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INPUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h index 1c405d6f6d..8c80cc0dcf 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -42,17 +43,17 @@ class TaskComposerPluginFactory; * @brief This task modifies the input instructions in order to push waypoints that are outside of their * limits back within them. */ -class FixStateBoundsTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FixStateBoundsTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h index 2c673cfec9..d10dadd08e 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -50,17 +51,17 @@ struct FixStateCollisionProfile; * * First it uses TrajOpt to correct the waypoint. If that fails, it reverts to random sampling */ -class FixStateCollisionTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FixStateCollisionTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h index 0b4e584c26..0cb33fab55 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h @@ -33,6 +33,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -51,13 +52,13 @@ class TaskComposerPluginFactory; * input_keys[0]: The original input to motion planning * input_keys[1]: The output of the first motion plan which failed collision checking */ -class FormatAsInputTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FormatAsInputTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PRE_PLANNING_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_POST_PLANNING_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PRE_PLANNING_PROGRAM_PORT; + static const std::string INPUT_POST_PLANNING_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h index 9290567966..29ffabd75a 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h @@ -5,6 +5,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -12,11 +13,11 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class FormatAsResultTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FormatAsResultTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAMS_PORT; + static const std::string INOUT_PROGRAMS_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h index 685246cb31..3947c5b8ad 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -39,18 +40,18 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class IterativeSplineParameterizationTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT IterativeSplineParameterizationTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h index 8d8fc29ff8..2afc4c8499 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -38,16 +39,16 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class MinLengthTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT MinLengthTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp index b3e106e472..0fad182cdf 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp @@ -53,14 +53,14 @@ class MotionPlannerTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; MotionPlannerTask() : TaskComposerTask("MotionPlannerTask", MotionPlannerTask::ports(), true) {} explicit MotionPlannerTask(std::string name, // NOLINT(performance-unnecessary-value-param) diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h index 9f78e58ee4..ad45629796 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -38,12 +39,12 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class ProcessPlanningInputTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT ProcessPlanningInputTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PLANNING_INPUT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PLANNING_INPUT_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h index 94665b3055..d0873270f7 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h @@ -28,6 +28,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -39,15 +40,15 @@ class TaskComposerPluginFactory; * @brief This task simply returns a value specified in the composite profile. This can be used to switch execution * based on the profile */ -class ProfileSwitchTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT ProfileSwitchTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INPUT_PROGRAM_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h index ec6bf7f2de..03482d67ee 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -56,15 +57,15 @@ class TaskComposerPluginFactory; * } */ -class RasterMotionTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT RasterMotionTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_MANIP_INFO_PORT; struct TaskFactoryResults { diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h index c102cc4a38..2410b4164f 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -52,15 +53,15 @@ class TaskComposerPluginFactory; * Composite - Raster segment * } */ -class RasterOnlyMotionTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT RasterOnlyMotionTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_MANIP_INFO_PORT; struct TaskFactoryResults { diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h index 9873bb1fd0..8ed42834fb 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h @@ -28,6 +28,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -35,18 +36,18 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class RuckigTrajectorySmoothingTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT RuckigTrajectorySmoothingTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h index 2423961aae..116141e159 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -39,18 +40,18 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class TimeOptimalParameterizationTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT TimeOptimalParameterizationTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h index ff4f706098..ccc1960f09 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h @@ -29,19 +29,20 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include namespace tesseract_planning { -class UpdateEndStateTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpdateEndStateTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_NEXT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_CURRENT_PROGRAM_PORT; + static const std::string INPUT_NEXT_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h index 95d8f4ac84..42917107ff 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h @@ -29,20 +29,21 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include namespace tesseract_planning { -class UpdateStartAndEndStateTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpdateStartAndEndStateTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PREVIOUS_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_NEXT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PREVIOUS_PROGRAM_PORT; + static const std::string INPUT_CURRENT_PROGRAM_PORT; + static const std::string INPUT_NEXT_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h index de60a5e365..7f39a9f5b3 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h @@ -29,19 +29,20 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include namespace tesseract_planning { -class UpdateStartStateTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpdateStartStateTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PREVIOUS_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PREVIOUS_PROGRAM_PORT; + static const std::string INPUT_CURRENT_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h index 11c8ad3c85..918da768db 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h @@ -29,6 +29,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -43,15 +44,15 @@ class TaskComposerPluginFactory; * assume joint interpolated between states. If the points are spaced to fart apart the path between * two states may not be a straight line causing collision during execution. */ -class UpsampleTrajectoryTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpsampleTrajectoryTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp b/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp index 47769eb592..78bde3db9c 100644 --- a/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp +++ b/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp @@ -134,8 +134,15 @@ TEST(TesseractTaskComposerFactoryUnit, LoadAndExportPluginTest) // NOLINT } { // String Constructor +#ifdef TESSERACT_TASK_COMPOSER_HAS_TRAJOPT_IFOPT tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" "task_composer_plugins.yaml"); +#else + tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" + "task_composer_plugins_no_" + "trajopt_" + "ifopt.yaml"); +#endif TaskComposerPluginFactory factory(tesseract_common::fileToString(config_path)); YAML::Node plugin_config = YAML::LoadFile(config_path.string()); @@ -148,8 +155,15 @@ TEST(TesseractTaskComposerFactoryUnit, LoadAndExportPluginTest) // NOLINT } { // YAML Node Constructor +#ifdef TESSERACT_TASK_COMPOSER_HAS_TRAJOPT_IFOPT tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" "task_composer_plugins.yaml"); +#else + tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" + "task_composer_plugins_no_" + "trajopt_" + "ifopt.yaml"); +#endif YAML::Node plugin_config = YAML::LoadFile(config_path.string()); TaskComposerPluginFactory factory(plugin_config); @@ -163,8 +177,15 @@ TEST(TesseractTaskComposerFactoryUnit, LoadAndExportPluginTest) // NOLINT // TaskComposerPluginInfo Constructor { +#ifdef TESSERACT_TASK_COMPOSER_HAS_TRAJOPT_IFOPT tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" "task_composer_plugins.yaml"); +#else + tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" + "task_composer_plugins_no_" + "trajopt_" + "ifopt.yaml"); +#endif YAML::Node plugin_config = YAML::LoadFile(config_path.string()); const YAML::Node& plugins = plugin_config[tesseract_common::TaskComposerPluginInfo::CONFIG_KEY]; From 7f20009b82804d87ea10577c19cc171ef9a8ac96 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sun, 28 Jul 2024 21:23:12 -0400 Subject: [PATCH 07/12] code format --- .../arm64-osx-dynamic-release.cmake | 18 +++++++++--------- tesseract_task_composer/core/CMakeLists.txt | 4 ++-- .../planning/CMakeLists.txt | 7 +++---- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake b/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake index d0936e7f85..9ff5889fb6 100644 --- a/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake +++ b/.github/workflows/vcpkg_triplets/arm64-osx-dynamic-release.cmake @@ -1,9 +1,9 @@ -set(VCPKG_TARGET_ARCHITECTURE arm64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) - -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -set(VCPKG_OSX_ARCHITECTURES arm64) - -set(VCPKG_BUILD_TYPE release) -set(VCPKG_OSX_DEPLOYMENT_TARGET 14.0) \ No newline at end of file +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES arm64) + +set(VCPKG_BUILD_TYPE release) +set(VCPKG_OSX_DEPLOYMENT_TARGET 14.0) diff --git a/tesseract_task_composer/core/CMakeLists.txt b/tesseract_task_composer/core/CMakeLists.txt index f05b077614..ca5b5c1b18 100644 --- a/tesseract_task_composer/core/CMakeLists.txt +++ b/tesseract_task_composer/core/CMakeLists.txt @@ -105,8 +105,8 @@ install( PATTERN "*.h" PATTERN "*.hpp") -install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_nodes_export.h DESTINATION include/${PROJECT_NAME}/core/ - COMPONENT core) +install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_nodes_export.h + DESTINATION include/${PROJECT_NAME}/core/ COMPONENT core) # Plugin should not be export only installed install( diff --git a/tesseract_task_composer/planning/CMakeLists.txt b/tesseract_task_composer/planning/CMakeLists.txt index ddf2eae619..37114b74f6 100644 --- a/tesseract_task_composer/planning/CMakeLists.txt +++ b/tesseract_task_composer/planning/CMakeLists.txt @@ -141,8 +141,7 @@ target_code_coverage( ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE}) target_include_directories( ${PROJECT_NAME}_planning_nodes PUBLIC "$" - "$" - "$") + "$" "$") generate_export_header(${PROJECT_NAME}_planning_nodes) @@ -177,8 +176,8 @@ install( PATTERN "*.hpp" PATTERN ".svn" EXCLUDE) -install(FILES ${PROJECT_BINARY_DIR}/planning/tesseract_task_composer_planning_nodes_export.h DESTINATION include/${PROJECT_NAME}/planning/ - COMPONENT planning) +install(FILES ${PROJECT_BINARY_DIR}/planning/tesseract_task_composer_planning_nodes_export.h + DESTINATION include/${PROJECT_NAME}/planning/ COMPONENT planning) # Plugin should not be export only installed install( From 95212d0a84761f718c745316355303807b64b9de Mon Sep 17 00:00:00 2001 From: John Wason Date: Sun, 28 Jul 2024 21:28:21 -0400 Subject: [PATCH 08/12] Ignore tesseract_examples in windows github action --- .github/workflows/windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 5aa8a22ef4..c9633f0782 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -59,4 +59,4 @@ jobs: vcs-file: .github/workflows/windows_dependencies.repos upstream-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF target-path: target_ws/src - target-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DTESSERACT_ENABLE_TESTING=ON -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF + target-args: --packages-ignore tesseract_examples --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DTESSERACT_ENABLE_TESTING=ON -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF From 83f31217735c25aa675860803b5261683d6e3196 Mon Sep 17 00:00:00 2001 From: John Wason Date: Sun, 28 Jul 2024 21:58:33 -0400 Subject: [PATCH 09/12] Ignore tesseract_examples for windows tests --- .github/workflows/windows.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index c9633f0782..3afc257e02 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -60,3 +60,4 @@ jobs: upstream-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF target-path: target_ws/src target-args: --packages-ignore tesseract_examples --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DTESSERACT_ENABLE_TESTING=ON -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF + run-tests-args: --packages-ignore tesseract_examples From 051220a6c3fe9cb28f096a01835d55d3cf13abc8 Mon Sep 17 00:00:00 2001 From: John Wason Date: Mon, 29 Jul 2024 02:27:11 -0400 Subject: [PATCH 10/12] Add conda github action --- .github/workflows/conda.yml | 81 +++++++++++++++++++ .github/workflows/conda/environment.yml | 6 ++ .github/workflows/conda/recipe/activate.bat | 5 ++ .github/workflows/conda/recipe/activate.sh | 1 + .github/workflows/conda/recipe/bld.bat | 45 +++++++++++ .github/workflows/conda/recipe/build.sh | 33 ++++++++ .github/workflows/conda/recipe/deactivate.bat | 0 .github/workflows/conda/recipe/deactivate.sh | 0 .github/workflows/conda/recipe/meta.yaml | 81 +++++++++++++++++++ 9 files changed, 252 insertions(+) create mode 100644 .github/workflows/conda.yml create mode 100644 .github/workflows/conda/environment.yml create mode 100644 .github/workflows/conda/recipe/activate.bat create mode 100644 .github/workflows/conda/recipe/activate.sh create mode 100644 .github/workflows/conda/recipe/bld.bat create mode 100644 .github/workflows/conda/recipe/build.sh create mode 100644 .github/workflows/conda/recipe/deactivate.bat create mode 100644 .github/workflows/conda/recipe/deactivate.sh create mode 100644 .github/workflows/conda/recipe/meta.yaml diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml new file mode 100644 index 0000000000..f0058b4562 --- /dev/null +++ b/.github/workflows/conda.yml @@ -0,0 +1,81 @@ +name: Conda + +on: + push: + branches: + - master + - 'dev**' + pull_request: + release: + types: + - released + +jobs: + conda-win: + runs-on: windows-2019 + defaults: + run: + shell: powershell + steps: + - uses: actions/checkout@v3 + with: + path: workspace/src/tesseract_planning + - name: install-depends + shell: cmd + run: | + python -m pip install vcstool -q + - name: vcs import + run: > + vcs import --input "${{ github.workspace }}/workspace/src/tesseract_planning/.github/workflows/windows_dependencies.repos" workspace/src/ + - uses: conda-incubator/setup-miniconda@v3 + with: + channel-priority: strict + environment-file: workspace/src/tesseract_planning/.github/workflows/conda/environment.yml + use-mamba: true + auto-update-conda: true + activate-environment: tesseract-build + - name: build and test + run: | + conda info + conda list + mkdir conda + xcopy /E workspace\src\tesseract_planning\.github\workflows\conda conda + cd conda + New-Item -Name conda-forge.yml -ItemType File + conda smithy regenerate + + conda mambabuild -m .ci_support/win_64_.yaml . + + conda-linux: + runs-on: ubuntu-latest + defaults: + run: + shell: bash -el {0} + steps: + - uses: actions/checkout@v3 + with: + path: workspace/src/tesseract_planning + - name: install-depends + run: | + python -m pip install vcstool -q + - name: vcs import + run: > + vcs import --input "${{ github.workspace }}/workspace/src/tesseract_planning/.github/workflows/windows_dependencies.repos" workspace/src/ + - uses: conda-incubator/setup-miniconda@v3 + with: + channel-priority: strict + environment-file: workspace/src/tesseract_planning/.github/workflows/conda/environment.yml + use-mamba: true + auto-update-conda: true + activate-environment: tesseract-build + - name: build and test + run: | + conda info + conda list + + cp -r workspace/src/tesseract_planning/.github/workflows/conda ./conda + cd conda + touch conda-forge.yml + conda smithy regenerate + + conda mambabuild -m .ci_support/linux_64_.yaml . diff --git a/.github/workflows/conda/environment.yml b/.github/workflows/conda/environment.yml new file mode 100644 index 0000000000..909dc29d5e --- /dev/null +++ b/.github/workflows/conda/environment.yml @@ -0,0 +1,6 @@ +name: tesseract-build +channels: + - conda-forge +dependencies: + - boa + - conda-smithy \ No newline at end of file diff --git a/.github/workflows/conda/recipe/activate.bat b/.github/workflows/conda/recipe/activate.bat new file mode 100644 index 0000000000..0e01a3a569 --- /dev/null +++ b/.github/workflows/conda/recipe/activate.bat @@ -0,0 +1,5 @@ +@if not defined CONDA_PREFIX goto:eof + +@call "%CONDA_PREFIX%\opt\tesseract_robotics\setup.bat" + +@set TESSERACT_PYTHON_DLL_PATH=%CONDA_PREFIX%\opt\tesseract_robotics\bin \ No newline at end of file diff --git a/.github/workflows/conda/recipe/activate.sh b/.github/workflows/conda/recipe/activate.sh new file mode 100644 index 0000000000..b4f0242294 --- /dev/null +++ b/.github/workflows/conda/recipe/activate.sh @@ -0,0 +1 @@ +source "${CONDA_PREFIX}/opt/tesseract_robotics/setup.sh" \ No newline at end of file diff --git a/.github/workflows/conda/recipe/bld.bat b/.github/workflows/conda/recipe/bld.bat new file mode 100644 index 0000000000..1ca24598f6 --- /dev/null +++ b/.github/workflows/conda/recipe/bld.bat @@ -0,0 +1,45 @@ +set CXXFLAGS=%CXXFLAGS% -DEIGEN_DONT_ALIGN=1 -DEIGEN_DONT_VECTORIZE=1 +set CXXFLAGS=%CXXFLAGS% /std:c++17 + +colcon build --merge-install --install-base="%PREFIX%\opt\tesseract_robotics" ^ + --event-handlers console_cohesion+ desktop_notification- status- terminal_title- ^ + --packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp ^ + --cmake-args -GNinja -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="/MD /O2 /Ob0 /Zi /DNDEBUG" ^ + -DCMAKE_RELWITHDEBINFO_POSTFIX="" ^ + -DBUILD_SHARED_LIBS=ON ^ + -DUSE_MSVC_RUNTIME_LIBRARY_DLL=ON ^ + -DBUILD_IPOPT=OFF ^ + -DBUILD_SNOPT=OFF ^ + -DCMAKE_PREFIX_PATH:PATH="%LIBRARY_PREFIX%" ^ + -DTESSERACT_ENABLE_CLANG_TIDY=OFF ^ + -DTESSERACT_ENABLE_CODE_COVERAGE=OFF ^ + -DPYTHON_EXECUTABLE="%PREFIX%\python.exe" ^ + -DTESSERACT_ENABLE_EXAMPLES=OFF ^ + -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF ^ + -DTESSERACT_ENABLE_TESTING=OFF ^ + -DTRAJOPT_ENABLE_TESTING=ON + +if %errorlevel% neq 0 exit /b %errorlevel% + +set TESSERACT_RESOURCE_PATH=%PREFIX%\opt\tesseract_robotics\share + +colcon test --event-handlers console_direct+ desktop_notification- status- terminal_title- ^ + --return-code-on-test-failure ^ + --packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp tesseract_common ^ + tesseract_collision tesseract_environment tesseract_geometry tesseract_kinematics tesseract_scene_graph ^ + tesseract_srdf tesseract_state_solver tesseract_support tesseract_urdf tesseract_visualization ^ + --merge-install --install-base="%PREFIX%\opt\tesseract_robotics" + +if %errorlevel% neq 0 exit /b %errorlevel% + +setlocal EnableDelayedExpansion + +:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. +:: This will allow them to be run on environment activation. +for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat +) + +if %errorlevel% neq 0 exit /b %errorlevel% \ No newline at end of file diff --git a/.github/workflows/conda/recipe/build.sh b/.github/workflows/conda/recipe/build.sh new file mode 100644 index 0000000000..28dbdc0d4e --- /dev/null +++ b/.github/workflows/conda/recipe/build.sh @@ -0,0 +1,33 @@ +set -e + +ln -s $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc $BUILD_PREFIX/bin/gcc + +colcon build --merge-install --install-base="$PREFIX/opt/tesseract_robotics" \ + --event-handlers console_cohesion+ \ + --packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp \ + --cmake-args -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_IPOPT=OFF \ + -DBUILD_SNOPT=OFF \ + -DCMAKE_PREFIX_PATH:PATH="$PREFIX" \ + -DTESSERACT_ENABLE_CLANG_TIDY=OFF \ + -DTESSERACT_ENABLE_CODE_COVERAGE=OFF \ + -DTESSERACT_ENABLE_EXAMPLES=OFF \ + -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DTESSERACT_ENABLE_TESTING=ON \ + -DTRAJOPT_ENABLE_TESTING=ON + +export TESSERACT_RESOURCE_PATH="$PREFIX/opt/tesseract_robotics/share" + +colcon test --event-handlers console_direct+ \ + --return-code-on-test-failure \ + --packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp tesseract_common \ + --merge-install --install-base="$PREFIX/opt/tesseract_robotics" + + +for CHANGE in "activate" "deactivate" +do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" +done \ No newline at end of file diff --git a/.github/workflows/conda/recipe/deactivate.bat b/.github/workflows/conda/recipe/deactivate.bat new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.github/workflows/conda/recipe/deactivate.sh b/.github/workflows/conda/recipe/deactivate.sh new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.github/workflows/conda/recipe/meta.yaml b/.github/workflows/conda/recipe/meta.yaml new file mode 100644 index 0000000000..1f0f0c9060 --- /dev/null +++ b/.github/workflows/conda/recipe/meta.yaml @@ -0,0 +1,81 @@ +package: + name: tesseract_planning + version: "0.1.0" + +source: + path: ../../workspace + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - gtest + - gmock + - cmake + - ninja # [win] + - make # [linux] + - pkg-config + - colcon-common-extensions + - lcov + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + - git + host: + - boost-cpp + - eigen + - tinyxml2 + - console_bridge + - assimp + - urdfdom + - fcl + - octomap + - orocos-kdl + - pcl + - gtest + - gmock + - pkg-config + - xz + - flann + - jsoncpp + - yaml-cpp + - bullet-cpp + - xorg-libx11 # [unix] + - xorg-libxext # [unix] + - blas + - osqp + - qpoases + - ompl + - taskflow + run: + - boost-cpp + - eigen + - tinyxml2 + - console_bridge + - assimp + - urdfdom + - fcl + - octomap + - orocos-kdl + - pcl + - gtest + - gmock + - xz + - jsoncpp + - taskflow + - yaml-cpp + - bullet-cpp + - xorg-libx11 # [unix] + - xorg-libxext # [unix] + - blas + - osqp + - qpoases + - ompl + - taskflow + +build: + skip: true # [py<37] + number: 0 + +about: + home: https://github.com/tesseract-robotics/tesseract_planning + summary: Tesseract robot motion planners \ No newline at end of file From d06cbf22ff20f8a1602313ebe16af5aa47a63af6 Mon Sep 17 00:00:00 2001 From: John Wason Date: Tue, 30 Jul 2024 16:32:37 -0400 Subject: [PATCH 11/12] Use --build-only for conda build in conda action to speed up test --- .github/workflows/conda.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index f0058b4562..7c06a99490 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -44,7 +44,7 @@ jobs: New-Item -Name conda-forge.yml -ItemType File conda smithy regenerate - conda mambabuild -m .ci_support/win_64_.yaml . + conda mambabuild -m .ci_support/win_64_.yaml --build-only . conda-linux: runs-on: ubuntu-latest @@ -78,4 +78,4 @@ jobs: touch conda-forge.yml conda smithy regenerate - conda mambabuild -m .ci_support/linux_64_.yaml . + conda mambabuild -m .ci_support/linux_64_.yaml --build-only . From e22b98e6a3ed1cf8e86bab0dca0520821c3d7e5e Mon Sep 17 00:00:00 2001 From: John Wason Date: Tue, 30 Jul 2024 18:04:58 -0400 Subject: [PATCH 12/12] Use libboost-devel --- .github/workflows/conda/recipe/meta.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/conda/recipe/meta.yaml b/.github/workflows/conda/recipe/meta.yaml index 1f0f0c9060..711ba1d04e 100644 --- a/.github/workflows/conda/recipe/meta.yaml +++ b/.github/workflows/conda/recipe/meta.yaml @@ -21,7 +21,7 @@ requirements: - {{ cdt('mesa-dri-drivers') }} # [linux] - git host: - - boost-cpp + - libboost-devel - eigen - tinyxml2 - console_bridge @@ -47,7 +47,6 @@ requirements: - ompl - taskflow run: - - boost-cpp - eigen - tinyxml2 - console_bridge