Skip to content

Commit c2a1a03

Browse files
authored
December 2024 update (#79)
* Work on Python update Dec 2024 * Use actions/upload-artifact@v4 * Update dep links * dev * apt-get libfcl-dev * vcpkg use latest release * Fix mesh geometry constructors * Use ubuntu 22.04 and windows-2022 * Update tesseract_task_composer module * Fix library anchors on Windows * Bump version to 0.5.0 * Use macos-13 to build x64 wheel * Use MSVC 2022 vsdevcmd * Use MSVC 2022 vsdevcmd * Include boost-stacktrace vcpkg package * Fix CompoundMesh * Add support for CompoundMesh to tesseract_viewer_python * Update examples * Bump tesseract_viewer_python version to 0.3.0 * Update readme * Include boost-format boost-algorithm vcpkg package * Use vcpkg-action github-binarycache * brew install swig on macos * Use actions/download-artifact@v4 * Add macos builds * Use tesseract commit sha * Add macos builds * Add macos builds * Add macos builds * Add macos builds * Add macos builds * Use tesseract master branch * Update dependencies * Update to upstream changes * Use master for macos vcpkg * Update dependency versions * Update examples * Bump package versions * Update generated docs * Update readme example
1 parent abefd17 commit c2a1a03

File tree

58 files changed

+996
-1468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+996
-1468
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
set(VCPKG_TARGET_ARCHITECTURE arm64)
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 arm64)
7+
8+
set(VCPKG_BUILD_TYPE release)
9+
set(VCPKG_OSX_DEPLOYMENT_TARGET 12.0)

.github/workflows/wheels.yml

Lines changed: 80 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ env:
1414
VCPKG_PKGS: >-
1515
boost-dll boost-program-options
1616
boost-serialization boost-filesystem
17+
boost-stacktrace boost-algorithm
18+
boost-format
1719
tinyxml2 console-bridge assimp
1820
urdfdom octomap orocos-kdl pcl
1921
gtest benchmark flann jsoncpp
@@ -30,48 +32,48 @@ jobs:
3032
fail-fast: false
3133
matrix:
3234
config:
33-
- os: ubuntu-20.04
34-
runs_on: ubuntu-20.04
35-
container: ubuntu:20.04
36-
py_platform: manylinux_2_31_x86_64
37-
python_version: "3.7"
38-
docs: false
39-
docs_cmake: OFF
40-
- os: ubuntu-20.04
41-
runs_on: ubuntu-20.04
42-
container: ubuntu:20.04
43-
py_platform: manylinux_2_31_x86_64
35+
- os: ubuntu-22.04
36+
runs_on: ubuntu-22.04
37+
container: ubuntu:22.04
38+
py_platform: manylinux_2_35_x86_64
4439
python_version: "3.8"
4540
docs: true
4641
docs_cmake: ON
47-
- os: ubuntu-20.04
48-
runs_on: ubuntu-20.04
49-
container: ubuntu:20.04
50-
py_platform: manylinux_2_31_x86_64
42+
- os: ubuntu-22.04
43+
runs_on: ubuntu-22.04
44+
container: ubuntu:22.04
45+
py_platform: manylinux_2_35_x86_64
5146
python_version: "3.9"
5247
docs: true
5348
docs_cmake: ON
54-
- os: ubuntu-20.04
55-
runs_on: ubuntu-20.04
56-
container: ubuntu:20.04
57-
py_platform: manylinux_2_31_x86_64
49+
- os: ubuntu-22.04
50+
runs_on: ubuntu-22.04
51+
container: ubuntu:22.04
52+
py_platform: manylinux_2_35_x86_64
5853
python_version: "3.10"
5954
docs: true
6055
docs_cmake: ON
61-
- os: ubuntu-20.04
62-
runs_on: ubuntu-20.04
63-
container: ubuntu:20.04
64-
py_platform: manylinux_2_31_x86_64
56+
- os: ubuntu-22.04
57+
runs_on: ubuntu-22.04
58+
container: ubuntu:22.04
59+
py_platform: manylinux_2_35_x86_64
6560
python_version: "3.11.0"
6661
docs: true
6762
docs_cmake: ON
68-
- os: ubuntu-20.04
69-
runs_on: ubuntu-20.04
70-
container: ubuntu:20.04
71-
py_platform: manylinux_2_31_x86_64
63+
- os: ubuntu-22.04
64+
runs_on: ubuntu-22.04
65+
container: ubuntu:22.04
66+
py_platform: manylinux_2_35_x86_64
7267
python_version: "3.12.0"
7368
docs: true
7469
docs_cmake: ON
70+
- os: ubuntu-22.04
71+
runs_on: ubuntu-22.04
72+
container: ubuntu:22.04
73+
py_platform: manylinux_2_35_x86_64
74+
python_version: "3.13.0"
75+
docs: true
76+
docs_cmake: ON
7577
env:
7678
DEBIAN_FRONTEND: noninteractive
7779
steps:
@@ -93,7 +95,7 @@ jobs:
9395
liburdfdom-dev liboctomap-dev liborocos-kdl-dev libpcl-dev
9496
libflann-dev libjsoncpp-dev libyaml-cpp-dev git cmake ninja-build
9597
build-essential autoconf automake libtool bison libpcre2-dev libpcre3-dev
96-
lcov libbullet-dev libbullet-extras-dev python3-venv curl -y -qq
98+
lcov libbullet-dev libbullet-extras-dev python3-venv curl libfcl-dev -y -qq
9799
- name: build-swig
98100
uses: johnwason/swig-build-action@v1
99101
with:
@@ -149,17 +151,17 @@ jobs:
149151
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/ws/install/lib
150152
cmake --build . --config Release --target tesseract_python_doc
151153
- name: archive wheels
152-
uses: actions/upload-artifact@v2
154+
uses: actions/upload-artifact@v4
153155
with:
154156
name: 'python-wheels-${{ matrix.config.os }}-${{ matrix.config.python_version }}'
155157
path: ws/build/tesseract_python/python/*
156158
- name: archive docs
157-
uses: actions/upload-artifact@v2
159+
uses: actions/upload-artifact@v4
158160
with:
159161
name: 'python-docs-${{ matrix.config.os }}-${{ matrix.config.python_version }}'
160162
path: ws/build/tesseract_python/docs/*
161163
build-win:
162-
runs-on: windows-2019
164+
runs-on: windows-2022
163165
strategy:
164166
fail-fast: false
165167
matrix:
@@ -188,6 +190,10 @@ jobs:
188190
vcpkg_triplet: x64-windows-release
189191
cmake_arch: x64
190192
python_version: "3.12.0"
193+
- arch: x64
194+
vcpkg_triplet: x64-windows-release
195+
cmake_arch: x64
196+
python_version: "3.13.0"
191197
steps:
192198
- uses: actions/checkout@v2
193199
with:
@@ -198,15 +204,15 @@ jobs:
198204
python-version: '${{ matrix.config.python_version }}'
199205
architecture: ${{ matrix.config.arch }}
200206
- name: vcpkg build
201-
uses: johnwason/vcpkg-action@v5
207+
uses: johnwason/vcpkg-action@v6
202208
with:
203209
pkgs: >-
204210
${{ env.VCPKG_PKGS }}
205211
triplet: ${{ matrix.config.vcpkg_triplet }}
206212
extra-args: --clean-after-build
207213
token: ${{ github.token }}
208214
cache-key: win-${{ matrix.config.arch }}-python-${{ matrix.config.python_version }}
209-
revision: master
215+
github-binarycache: true
210216
- name: pip3
211217
run: |
212218
python -m pip install numpy setuptools wheel pytest delvewheel colcon-common-extensions vcstool
@@ -220,7 +226,7 @@ jobs:
220226
working-directory: ws
221227
shell: cmd
222228
run: |
223-
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64
229+
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64
224230
set CXXFLAGS=%CXXFLAGS% -DEIGEN_DONT_ALIGN=1 -DEIGEN_DONT_VECTORIZE=1
225231
set CMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%\vcpkg\installed\${{ matrix.config.vcpkg_triplet }}
226232
set PATH=%PATH%;%GITHUB_WORKSPACE%\vcpkg\installed\${{ matrix.config.vcpkg_triplet }}\bin
@@ -263,25 +269,44 @@ jobs:
263269
if %errorlevel% neq 0 exit /b %errorlevel%
264270
- name: archive wheels
265271
if: always()
266-
uses: actions/upload-artifact@v2
272+
uses: actions/upload-artifact@v4
267273
with:
268274
name: 'python-wheels-win-${{matrix.config.python_version}}'
269275
path: ws/build/tesseract_python/python
270276
- name: archive logs
271277
if: failure()
272-
uses: actions/upload-artifact@v2
278+
uses: actions/upload-artifact@v4
273279
with:
274280
name: 'build-logs-win-${{ matrix.config.arch }}-python-${{ matrix.config.python_version }}'
275281
path: "**/*.log"
276282
retention-days: 2
277283
build-macos:
278-
runs-on: macos-latest
284+
runs-on: ${{ matrix.config.runner }}
279285
strategy:
280286
fail-fast: false
281287
matrix:
282288
config:
283-
- py_platform: macosx-10.9-x86_64
289+
- py_platform: macosx-12.0-x86_64
290+
python_version: "3.12"
291+
arch: x64
292+
runner: macos-13
293+
brew_prefix: /usr/local
294+
- py_platform: macosx-12.0-x86_64
295+
python_version: "3.13"
296+
arch: x64
297+
runner: macos-13
298+
brew_prefix: /usr/local
299+
- py_platform: macosx-12.0-arm64
284300
python_version: "3.12"
301+
arch: arm64
302+
runner: macos-14
303+
brew_prefix: /opt/homebrew
304+
- py_platform: macosx-12.0-arm64
305+
python_version: "3.13"
306+
arch: arm64
307+
runner: macos-14
308+
brew_prefix: /opt/homebrew
309+
285310
steps:
286311
- uses: actions/checkout@v2
287312
with:
@@ -292,16 +317,17 @@ jobs:
292317
python-version: '${{ matrix.config.python_version }}'
293318
- name: brew
294319
run: |
295-
brew install libomp cmake automake autoconf libtool gcc ninja
320+
brew install libomp cmake automake autoconf libtool gcc ninja swig
296321
- name: vcpkg build
297-
uses: johnwason/vcpkg-action@v5
322+
uses: johnwason/vcpkg-action@v6
298323
with:
299324
pkgs: >-
300325
${{ env.VCPKG_PKGS }}
301-
triplet: x64-osx-dynamic-release
326+
triplet: ${{ matrix.config.arch }}-osx-dynamic-release
302327
extra-args: --clean-after-build --overlay-triplets=${{ github.workspace }}/ws/src/tesseract_python/.github/workflows/vcpkg_triplets
303328
token: ${{ github.token }}
304-
cache-key: osx-x64-vcpkg
329+
cache-key: osx-${{ matrix.config.arch }}-vcpkg
330+
github-binarycache: true
305331
revision: master
306332
- name: pip3
307333
run: |
@@ -312,8 +338,8 @@ jobs:
312338
- name: colcon build
313339
working-directory: ws
314340
run: |
315-
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release/lib:$GITHUB_WORKSPACE/ws/install/lib
316-
export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/x64-osx-dynamic-release
341+
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.arch }}-osx-dynamic-release/lib:$GITHUB_WORKSPACE/ws/install/lib
342+
export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.arch }}-osx-dynamic-release
317343
318344
colcon build --merge-install \
319345
--packages-ignore tesseract_examples trajopt_ifopt trajopt_sqp ifopt vhacd \
@@ -324,12 +350,12 @@ jobs:
324350
-DBUILD_SHARED_LIBS=ON -DTESSERACT_ENABLE_EXAMPLES=OFF -DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF \
325351
-DVCPKG_APPLOCAL_DEPS=OFF -DTESSERACT_ENABLE_TESTING=ON \
326352
-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \
327-
-DOpenMP_CXX_INCLUDE_DIR=/usr/local/opt/libomp/include \
328-
-DOpenMP_C_INCLUDE_DIR=/usr/local/opt/libomp/include \
353+
-DOpenMP_CXX_INCLUDE_DIR=${{ matrix.config.brew_prefix }}/opt/libomp/include \
354+
-DOpenMP_C_INCLUDE_DIR=${{ matrix.config.brew_prefix }}/opt/libomp/include \
329355
-DOpenMP_CXX_LIB_NAMES=libomp -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp" \
330356
-DOpenMP_C_LIB_NAMES=libomp -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp" \
331-
-DOpenMP_libomp_LIBRARY=/usr/local/opt/libomp/lib/libomp.dylib \
332-
-Dtcmalloc_minimal_LIBRARY=${{ github.workspace }}/vcpkg/installed/x64-osx-dynamic-release/lib/libtcmalloc_minimal.dylib \
357+
-DOpenMP_libomp_LIBRARY=${{ matrix.config.brew_prefix }}/opt/libomp/lib/libomp.dylib \
358+
-Dtcmalloc_minimal_LIBRARY=${{ github.workspace }}/vcpkg/installed/${{ matrix.config.arch }}-osx-dynamic-release/lib/libtcmalloc_minimal.dylib \
333359
-DPYTHON_EXECUTABLE="${{ steps.setup-python.outputs.python-path }}" \
334360
-DTESSERACT_PYTHON_WHEEL_PLATFORM=${{ matrix.config.py_platform }} \
335361
-DTESSERACT_PYTHON_BUILD_WHEEL=ON
@@ -347,13 +373,13 @@ jobs:
347373
pytest -s
348374
- name: archive wheels
349375
if: always()
350-
uses: actions/upload-artifact@v2
376+
uses: actions/upload-artifact@v4
351377
with:
352-
name: 'python-macos-win-${{matrix.config.python_version}}'
378+
name: 'python-macos-${{ matrix.config.arch }}-python-${{matrix.config.python_version}}'
353379
path: ws/build/tesseract_python/python
354380
- name: archive logs
355381
if: failure()
356-
uses: actions/upload-artifact@v2
382+
uses: actions/upload-artifact@v4
357383
with:
358384
name: 'build-logs-macos-${{ matrix.config.arch }}-python-${{ matrix.config.python_version }}'
359385
path: "**/*.log"
@@ -363,17 +389,17 @@ jobs:
363389
- build-win
364390
- build-ubuntu
365391
- build-macos
366-
runs-on: ubuntu-20.04
392+
runs-on: ubuntu-22.04
367393
steps:
368394
- uses: actions/checkout@v2
369395
with:
370396
path: robotraconteur
371397
- name: Download CI artifacts
372-
uses: actions/download-artifact@v2
398+
uses: actions/download-artifact@v4
373399
with:
374400
path: artifacts/main
375401
- name: archive wheels
376-
uses: actions/upload-artifact@v2
402+
uses: actions/upload-artifact@v4
377403
with:
378404
name: 'python-wheels-all'
379405
path: artifacts/**/wheelhouse/*.whl

0 commit comments

Comments
 (0)