diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 5290260b641..f0ae5477b76 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -24,7 +24,7 @@ env: urdfdom octomap orocos-kdl pcl gtest benchmark flann jsoncpp yaml-cpp eigen3 - openblas + openblas coin-or-ipopt fcl ompl taskflow bullet3[multithreading,double-precision,rtti] ccd[double-precision] gperftools @@ -54,7 +54,7 @@ jobs: python-version: '3.12' - name: brew run: | - brew install libomp cmake automake autoconf libtool gcc ninja + brew install libomp cmake automake autoconf libtool gcc ninja pkgconf - name: vcpkg build uses: johnwason/vcpkg-action@v6 with: @@ -78,14 +78,15 @@ jobs: set -e 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 }} + export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }}/lib/pkgconfig colcon build --merge-install \ - --packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd tesseract_python \ + --packages-ignore tesseract_examples vhacd tesseract_python \ --event-handlers console_cohesion+ \ --cmake-force-configure \ --cmake-args -GNinja -DCMAKE_BUILD_TYPE=Release \ - -DINSTALL_OMPL=OFF -DINSTALL_OMPL_TAG=master -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF \ - -DBUILD_SHARED_LIBS=ON -DTESSERACT_ENABLE_EXAMPLES=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF \ + -DINSTALL_OMPL=OFF -DINSTALL_OMPL_TAG=master -DBUILD_IPOPT=ON -DBUILD_SNOPT=OFF \ + -DBUILD_SHARED_LIBS=ON -DTESSERACT_ENABLE_EXAMPLES=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=ON \ -DVCPKG_APPLOCAL_DEPS=OFF -DTESSERACT_ENABLE_TESTING=ON \ -DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \ -DOpenMP_CXX_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \ @@ -100,6 +101,7 @@ jobs: set -e 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 }} + export TESSERACT_RESOURCE_PATH=$GITHUB_WORKSPACE/ws/install/share colcon test --merge-install \ --packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd tesseract_python \ diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index abcd268e231..0ebdd15b1bb 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -34,13 +34,17 @@ jobs: console-bridge eigen3 yaml-cpp benchmark tinyxml2 assimp orocos-kdl pcl 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 + ompl taskflow jsoncpp flann benchmark coin-or-ipopt triplet: x64-windows-release extra-args: --clean-after-build token: ${{ github.token }} cache-key: ci-${{ matrix.os }} github-binarycache: true + - name: choco + run: | + choco install pkgconfiglite -r + - name: configure-msvc uses: ilammy/msvc-dev-cmd@v1 with: @@ -51,13 +55,14 @@ jobs: run: | echo "PATH=${{ env.PATH }};$GITHUB_WORKSPACE\vcpkg\installed\x64-windows-release\bin" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE\vcpkg\installed\x64-windows-release" >> "$GITHUB_ENV" + echo "PKG_CONFIG_PATH=$GITHUB_WORKSPACE\vcpkg\installed\x64-windows-release\lib\pkgconfig" >> "$GITHUB_ENV" - name: Build and Tests uses: tesseract-robotics/colcon-action@v8 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 -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF + upstream-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=ON -DBUILD_SNOPT=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF -DVCPKG_APPLOCAL_DEPS=OFF target-path: target_ws/src - target-args: --event-handlers console_cohesion+ --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 + target-args: --event-handlers console_cohesion+ --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=ON -DVCPKG_APPLOCAL_DEPS=OFF run-tests-args: --packages-ignore tesseract_examples diff --git a/.github/workflows/windows_dependencies.repos b/.github/workflows/windows_dependencies.repos index ab713de1ccd..9a4e2c41817 100644 --- a/.github/workflows/windows_dependencies.repos +++ b/.github/workflows/windows_dependencies.repos @@ -20,8 +20,8 @@ version: 0.5.2 - git: local-name: ifopt - uri: https://github.com/ethz-adrl/ifopt.git - version: 2.1.3 + uri: https://github.com/johnwason/ifopt.git + version: win_pkgconfig - git: local-name: ruckig uri: https://github.com/pantor/ruckig.git diff --git a/tesseract_motion_planners/trajopt_ifopt/src/profile/trajopt_ifopt_osqp_solver_profile.cpp b/tesseract_motion_planners/trajopt_ifopt/src/profile/trajopt_ifopt_osqp_solver_profile.cpp index 40688efb1cb..df62c99fbc0 100644 --- a/tesseract_motion_planners/trajopt_ifopt/src/profile/trajopt_ifopt_osqp_solver_profile.cpp +++ b/tesseract_motion_planners/trajopt_ifopt/src/profile/trajopt_ifopt_osqp_solver_profile.cpp @@ -24,6 +24,13 @@ * limitations under the License. */ +#ifdef _WIN32 +// Macros to avoid Windows.h conflicts +#define NOGDI +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#endif + #include TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include diff --git a/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_motion_planner.cpp b/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_motion_planner.cpp index c1d17e244df..cddfe2802ef 100644 --- a/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_motion_planner.cpp +++ b/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_motion_planner.cpp @@ -97,7 +97,7 @@ PlannerResponse TrajOptIfoptMotionPlanner::solve(const PlannerRequest& request) // ---------------- // Transform plan instructions into trajopt cost and constraints std::vector> vars; - for (int i = 0; i < move_instructions.size(); ++i) + for (int i = 0; i < static_cast(move_instructions.size()); ++i) { const auto& move_instruction = move_instructions[static_cast(i)].get().as(); diff --git a/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_utils.cpp b/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_utils.cpp index ecc86947a5e..b489c022a7b 100644 --- a/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_utils.cpp +++ b/tesseract_motion_planners/trajopt_ifopt/src/trajopt_ifopt_utils.cpp @@ -24,6 +24,13 @@ * limitations under the License. */ +#ifdef _WIN32 +// Macros to avoid Windows.h conflicts +#define NOGDI +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#endif + #include TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include