Skip to content

Commit aa87148

Browse files
authored
Add Mac OSX support (#428)
1 parent 788feaa commit aa87148

File tree

6 files changed

+109
-8
lines changed

6 files changed

+109
-8
lines changed

.github/workflows/mac.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Mac OSX
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- 'dev**'
8+
pull_request:
9+
paths:
10+
- 'tesseract**'
11+
- '.github/workflows/mac.yml'
12+
- '**.repos'
13+
schedule:
14+
- cron: '0 5 * * *'
15+
release:
16+
types:
17+
- released
18+
19+
env:
20+
VCPKG_PKGS: >-
21+
boost-dll boost-program-options
22+
boost-serialization boost-filesystem
23+
tinyxml2 console-bridge assimp
24+
urdfdom octomap orocos-kdl pcl
25+
gtest benchmark flann jsoncpp
26+
yaml-cpp eigen3
27+
openblas
28+
fcl ompl taskflow
29+
bullet3[multithreading,double-precision,rtti]
30+
ccd[double-precision] gperftools
31+
32+
jobs:
33+
build-macos:
34+
runs-on: macos-latest
35+
steps:
36+
- uses: actions/checkout@v2
37+
with:
38+
path: ws/src/tesseract_planning
39+
- uses: actions/setup-python@v4
40+
id: setup-python
41+
with:
42+
python-version: '3.12'
43+
- name: brew
44+
run: |
45+
brew install libomp cmake automake autoconf libtool gcc ninja
46+
- name: vcpkg build
47+
uses: johnwason/vcpkg-action@v5
48+
with:
49+
pkgs: >-
50+
${{ env.VCPKG_PKGS }}
51+
triplet: x64-osx-dynamic-release
52+
extra-args: --clean-after-build --overlay-triplets=${{ github.workspace }}/ws/src/tesseract_planning/.github/workflows/vcpkg_triplets
53+
token: ${{ github.token }}
54+
cache-key: osx-x64-vcpkg
55+
revision: master
56+
- name: pip3
57+
run: |
58+
python3 -m pip install numpy setuptools wheel pytest delvewheel colcon-common-extensions vcstool
59+
- name: vcs import
60+
working-directory: ws/src
61+
run: vcs import --input tesseract_planning/.github/workflows/windows_dependencies.repos
62+
- name: colcon build
63+
working-directory: ws
64+
run: |
65+
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release/lib
66+
export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release
67+
68+
colcon build --merge-install \
69+
--packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd tesseract_python \
70+
--event-handlers console_cohesion+ \
71+
--cmake-force-configure \
72+
--cmake-args -GNinja -DCMAKE_BUILD_TYPE=Release \
73+
-DINSTALL_OMPL=OFF -DINSTALL_OMPL_TAG=master -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF \
74+
-DBUILD_SHARED_LIBS=ON -DTESSERACT_ENABLE_EXAMPLES=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF \
75+
-DVCPKG_APPLOCAL_DEPS=OFF -DTESSERACT_ENABLE_TESTING=ON \
76+
-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \
77+
-DOpenMP_CXX_INCLUDE_DIR=/usr/local/opt/libomp/include \
78+
-DOpenMP_C_INCLUDE_DIR=/usr/local/opt/libomp/include \
79+
-DOpenMP_CXX_LIB_NAMES=libomp -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp" \
80+
-DOpenMP_C_LIB_NAMES=libomp -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp" \
81+
-DOpenMP_libomp_LIBRARY=/usr/local/opt/libomp/lib/libomp.dylib \
82+
-Dtcmalloc_minimal_LIBRARY=${{ github.workspace }}/vcpkg/installed/x64-osx-dynamic-release/lib/libtcmalloc_minimal.dylib
83+
- name: colcon test
84+
working-directory: ws
85+
run: |
86+
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release/lib
87+
export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release
88+
89+
colcon test --merge-install \
90+
--packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd tesseract_python \
91+
--event-handlers console_cohesion+
92+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
set(VCPKG_TARGET_ARCHITECTURE x64)
2+
set(VCPKG_CRT_LINKAGE dynamic)
3+
set(VCPKG_LIBRARY_LINKAGE dynamic)
4+
5+
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
6+
set(VCPKG_OSX_ARCHITECTURES x86_64)
7+
8+
set(VCPKG_BUILD_TYPE release)
9+
set(VCPKG_OSX_DEPLOYMENT_TARGET 12.0)

tesseract_command_language/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ endif()
3030
# Load variable for clang tidy args, compiler options and cxx version
3131
tesseract_variables()
3232

33-
initialize_code_coverage()
33+
initialize_code_coverage(ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
3434
set(COVERAGE_EXCLUDE
3535
/usr/*
3636
/opt/*
3737
${CMAKE_CURRENT_LIST_DIR}/test/*
3838
/*/gtest/*)
39-
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE})
39+
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE} ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
4040

4141
add_library(
4242
${PROJECT_NAME}

tesseract_motion_planners/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ endif()
3434
# Load variable for clang tidy args, compiler options and cxx version
3535
tesseract_variables()
3636

37-
initialize_code_coverage()
37+
initialize_code_coverage(ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
3838
set(COVERAGE_EXCLUDE
3939
/usr/*
4040
/opt/*
@@ -44,7 +44,7 @@ set(COVERAGE_EXCLUDE
4444
/*/include/opw_kinematics/*
4545
/*/include/trajopt/*
4646
/*/include/trajopt_sco/*)
47-
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE})
47+
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE} ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
4848

4949
# Enable Testing
5050
if(TESSERACT_ENABLE_TESTING)

tesseract_task_composer/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ endif()
3030
# Load variable for clang tidy args, compiler options and cxx version
3131
tesseract_variables()
3232

33-
initialize_code_coverage()
33+
initialize_code_coverage(ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
3434
set(COVERAGE_EXCLUDE
3535
/usr/*
3636
/opt/*
3737
${CMAKE_CURRENT_LIST_DIR}/test/*
3838
/*/gtest/*)
39-
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE})
39+
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE} ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
4040

4141
# Define compile-time default variables
4242
if(MSVC)

tesseract_time_parameterization/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ endif()
3030
# Load variable for clang tidy args, compiler options and cxx version
3131
tesseract_variables()
3232

33-
initialize_code_coverage()
33+
initialize_code_coverage(ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
3434
set(COVERAGE_EXCLUDE
3535
/usr/*
3636
/opt/*
3737
${CMAKE_CURRENT_LIST_DIR}/test/*
3838
/*/gtest/*)
39-
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE})
39+
add_code_coverage_all_targets(EXCLUDE ${COVERAGE_EXCLUDE} ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE})
4040

4141
# Enable Testing
4242
if(TESSERACT_ENABLE_TESTING)

0 commit comments

Comments
 (0)