Skip to content

Commit 77549fa

Browse files
author
sewon jeon
authored
Merge branch 'main' into vcpkg_support
2 parents 833734f + f38360c commit 77549fa

Some content is hidden

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

55 files changed

+423
-432
lines changed

.github/workflows/macos.yml

Lines changed: 3 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ jobs:
3333
strategy:
3434
fail-fast: false
3535
matrix:
36-
# macos-13 is Intel runner, macos-14 is Apple Silicon
37-
# https://github.com/actions/runner-images
38-
os: [macos-13, macos-14]
36+
os: [macos-14]
3937
CONFIG: [ON, OFF]
4038
env:
4139
BUILD_SHARED_LIBS: ${{ matrix.CONFIG }}
@@ -118,50 +116,6 @@ jobs:
118116
path: build/bin/open3d-*-app-macosx-10_15-${{ runner.arch }}.zip
119117
if-no-files-found: error
120118

121-
fuse-viewer:
122-
permissions:
123-
contents: write # Release upload
124-
name: Fuse x64 and ARM64 viewer app
125-
runs-on: [macos-13]
126-
needs: [MacOS]
127-
steps:
128-
- name: Checkout source code # for gh release upload
129-
uses: actions/checkout@v4
130-
- name: Download viewer apps
131-
uses: actions/download-artifact@v4
132-
with:
133-
pattern: open3d-app-macosx-10_15-*
134-
merge-multiple: true
135-
136-
- name: Fuse x64 and arm64 viewer apps
137-
run: |
138-
unzip open3d-*-app-macosx-10_15-X64.zip -d x64
139-
unzip open3d-*-app-macosx-10_15-ARM64.zip -d arm64
140-
APP_NAME=$(ls open3d-*-app-macosx-10_15-X64.zip)
141-
APP_NAME=${APP_NAME/-X64/-universal2} # includes version
142-
for i in arm64/Open3D.app/Contents/MacOS/*; do
143-
filepath=Open3D.app/Contents/MacOS/$(basename $i)
144-
lipo -create arm64/${filepath} x64/${filepath} -output arm64/${filepath}
145-
done
146-
mv arm64/Open3D.app Open3D.app
147-
zip -rv "${APP_NAME}" Open3D.app
148-
149-
- name: Upload Open3D viewer app
150-
uses: actions/upload-artifact@v4
151-
with:
152-
name: open3d-app-macosx-10_15-universal2
153-
path: open3d-*-app-macosx-10_15-universal2.zip
154-
if-no-files-found: error
155-
156-
- name: Update viewer devel release
157-
if: ${{ github.ref == 'refs/heads/main' }}
158-
env:
159-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
160-
run: |
161-
gh release upload main-devel open3d-*-app-macosx-10_15-universal2.zip --clobber
162-
gh release view main-devel
163-
164-
165119
build-wheel:
166120
name: Build wheel
167121
permissions:
@@ -171,9 +125,7 @@ jobs:
171125
fail-fast: false
172126
# https://github.community/t/how-to-conditionally-include-exclude-items-in-matrix-eg-based-on-branch/16853/6
173127
matrix:
174-
# macos-13 is Intel runner, macos-14 is Apple Silicon
175-
# https://github.com/actions/runner-images
176-
os: [macos-13, macos-14]
128+
os: [macos-14]
177129
python_version: ['3.10', '3.11', '3.12', '3.13']
178130
is_main:
179131
- ${{ github.ref == 'refs/heads/main' }}
@@ -257,75 +209,6 @@ jobs:
257209
path: build/lib/python_package/pip_package/${{ env.PIP_PKG_NAME }}
258210
if-no-files-found: error
259211

260-
261-
fuse-wheel:
262-
name: Fuse universal2 wheel
263-
permissions:
264-
contents: write # Release upload
265-
runs-on: [macos-13]
266-
needs: [build-wheel]
267-
strategy:
268-
fail-fast: false
269-
# https://github.community/t/how-to-conditionally-include-exclude-items-in-matrix-eg-based-on-branch/16853/6
270-
matrix:
271-
python_version: ['3.10', '3.11', '3.12', '3.13']
272-
is_main:
273-
- ${{ github.ref == 'refs/heads/main' }}
274-
exclude:
275-
- is_main: false
276-
python_version: '3.10'
277-
- is_main: false
278-
python_version: '3.11'
279-
- is_main: false
280-
python_version: '3.12'
281-
steps:
282-
- name: Checkout source code # for gh release upload
283-
uses: actions/checkout@v4
284-
- name: Set up Python
285-
uses: actions/setup-python@v5
286-
with:
287-
python-version: ${{ matrix.python_version }}
288-
289-
- name: Download X64 wheels
290-
uses: actions/download-artifact@v4
291-
with:
292-
pattern: open3d-*macosx*_x86_64.whl
293-
path: x64_wheels
294-
merge-multiple: true
295-
296-
- name: Download ARM64 wheels
297-
uses: actions/download-artifact@v4
298-
with:
299-
pattern: open3d-*macosx*_arm64.whl
300-
path: arm64_wheels
301-
merge-multiple: true
302-
303-
- name: Fuse x64 and ARM64 wheels
304-
env:
305-
python_version: ${{ matrix.python_version }}
306-
run: |
307-
PYTAG="-cp$(echo ${{ env.python_version }} | tr -d '.')"
308-
mkdir universal_wheels
309-
pip install delocate
310-
delocate-merge -v -w universal_wheels x64_wheels/open3d-*${PYTAG}*.whl arm64_wheels/open3d-*${PYTAG}*.whl
311-
NEW_WHL_NAME=$(basename universal_wheels/open3d-*${PYTAG}*.whl)
312-
echo "PIP_PKG_NAME=$NEW_WHL_NAME" >> $GITHUB_ENV
313-
314-
- name: Upload merged wheels
315-
uses: actions/upload-artifact@v4
316-
with:
317-
name: ${{ env.PIP_PKG_NAME }}
318-
path: universal_wheels/${{ env.PIP_PKG_NAME }}
319-
if-no-files-found: error
320-
321-
- name: Update devel release
322-
if: ${{ github.ref == 'refs/heads/main' }}
323-
env:
324-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
325-
run: |
326-
gh release upload main-devel universal_wheels/${{ env.PIP_PKG_NAME }} --clobber
327-
gh release view main-devel
328-
329212
test-wheel:
330213
name: Test wheel
331214
permissions:
@@ -335,7 +218,7 @@ jobs:
335218
strategy:
336219
fail-fast: false
337220
matrix:
338-
os: [macos-13, macos-14]
221+
os: [macos-14]
339222
python_version: ['3.10', '3.11', '3.12', '3.13']
340223
is_main:
341224
- ${{ github.ref == 'refs/heads/main' }}

.github/workflows/style.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ jobs:
2121
- name: Checkout source code
2222
uses: actions/checkout@v4
2323
with:
24-
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
24+
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
25+
ref: ${{ github.event.pull_request.head.sha || github.ref }}
2526
token: ${{ secrets.GITHUB_TOKEN }}
2627
- name: Set up Python version
2728
uses: actions/setup-python@v5

.github/workflows/ubuntu-sycl.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
GH_TOKEN: ${{ github.token }}
7070
run: |
7171
if [ ${{ matrix.BUILD_SHARED_LIBS }} == 'ON' ] ; then
72-
gh release upload main-devel open3d-*.whl --clobber
72+
gh release upload main-devel open3d*.whl --clobber
7373
gh release upload main-devel open3d-devel-*.tar.xz --clobber
7474
fi
7575
gh release view main-devel

3rdparty/filament/filament_build.cmake

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,21 @@ if(NOT is_multi_config)
1313
endif()
1414

1515
set(filament_LIBRARIES
16-
filameshio
17-
filament
18-
filamat_lite
19-
filamat
20-
filaflat
21-
filabridge
22-
geometry
23-
backend
24-
bluegl
25-
ibl
26-
image
27-
meshoptimizer
28-
smol-v
29-
utils
16+
filameshio
17+
filament
18+
filaflat
19+
filabridge
20+
geometry
21+
backend
22+
bluegl
23+
bluevk
24+
ibl
25+
image
26+
ktxreader
27+
meshoptimizer
28+
smol-v
29+
utils
30+
vkshaders
3031
)
3132

3233
# Locate byproducts
@@ -43,7 +44,7 @@ set(lib_byproducts ${filament_LIBRARIES})
4344
list(TRANSFORM lib_byproducts PREPEND ${FILAMENT_ROOT}/${lib_dir}/${CMAKE_STATIC_LIBRARY_PREFIX})
4445
list(TRANSFORM lib_byproducts APPEND ${CMAKE_STATIC_LIBRARY_SUFFIX})
4546

46-
set(filament_cxx_flags "${CMAKE_CXX_FLAGS} -Wno-deprecated")
47+
set(filament_cxx_flags "${CMAKE_CXX_FLAGS} -Wno-deprecated" "-Wno-pass-failed=transform-warning" "-Wno-error=nonnull")
4748
if(NOT WIN32)
4849
# Issue Open3D#1909, filament#2146
4950
set(filament_cxx_flags "${filament_cxx_flags} -fno-builtin")
@@ -52,8 +53,8 @@ endif()
5253
ExternalProject_Add(
5354
ext_filament
5455
PREFIX filament
55-
URL https://github.com/isl-org/filament/archive/d1d873d27f43ba0cee1674a555cc0f18daac3008.tar.gz
56-
URL_HASH SHA256=00c3f41af0fcfb2df904e1f77934f2678d943ddac5eb889788a5e22590e497bd
56+
URL https://github.com/google/filament/archive/refs/tags/v1.54.0.tar.gz
57+
URL_HASH SHA256=f4cb4eb81e3a5d66a9612ac131d16183e118b694f4f34c051506c523a8389e8d
5758
DOWNLOAD_DIR "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/filament"
5859
UPDATE_COMMAND ""
5960
CMAKE_ARGS
@@ -69,9 +70,9 @@ ExternalProject_Add(
6970
-DCMAKE_INSTALL_PREFIX=${FILAMENT_ROOT}
7071
-DUSE_STATIC_CRT=${STATIC_WINDOWS_RUNTIME}
7172
-DUSE_STATIC_LIBCXX=ON
72-
-DFILAMENT_SUPPORTS_VULKAN=OFF
73+
-DFILAMENT_SKIP_SDL2=ON
7374
-DFILAMENT_SKIP_SAMPLES=ON
7475
-DFILAMENT_OPENGL_HANDLE_ARENA_SIZE_IN_MB=20 # to support many small entities
7576
-DSPIRV_WERROR=OFF
76-
BUILD_BYPRODUCTS ${lib_byproducts}
77-
)
77+
BUILD_BYPRODUCTS ${lib_byproducts}
78+
)
Lines changed: 26 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
include(FetchContent)
22

3-
set(filament_LIBRARIES filameshio filament filamat_lite filaflat filabridge geometry backend bluegl bluevk ibl image meshoptimizer smol-v utils vkshaders)
3+
set(filament_LIBRARIES filameshio filament filaflat filabridge geometry backend bluegl bluevk ibl image ktxreader meshoptimizer smol-v utils vkshaders)
44

55
if (FILAMENT_PRECOMPILED_ROOT)
66
if (EXISTS "${FILAMENT_PRECOMPILED_ROOT}")
@@ -13,51 +13,38 @@ else()
1313
set(lib_dir lib)
1414
# Setup download links
1515
if(WIN32)
16-
set(FILAMENT_URL https://github.com/google/filament/releases/download/v1.9.9/filament-v1.9.9-windows.tgz)
17-
set(FILAMENT_SHA256 3a937a54a0c6b693c833737878761f8ba8ee02744be3c2f9ec33b1c6399ba31b)
18-
# Required for filament v1.9.9
19-
# Older versions of filament do not contain vkshaders.
20-
# They also have a different directory structure.
21-
# Remove vkshaders here so we can use newer versions with FILAMENT_PRECOMPILED_ROOT.
22-
list(REMOVE_ITEM filament_LIBRARIES vkshaders)
16+
set(FILAMENT_URL https://github.com/google/filament/releases/download/v1.54.0/filament-v1.54.0-windows.tgz)
17+
set(FILAMENT_SHA256 370b85dbaf1a3be26a5a80f60c912f11887748ddd1c42796a83fe989f5805f7b)
2318
if (STATIC_WINDOWS_RUNTIME)
2419
string(APPEND lib_dir /x86_64/mt)
2520
else()
2621
string(APPEND lib_dir /x86_64/md)
2722
endif()
2823
elseif(APPLE)
29-
if (APPLE_AARCH64)
30-
set(FILAMENT_URL https://github.com/isl-org/open3d_downloads/releases/download/filament/filament-v1.9.19-macos_arm64.tgz)
31-
set(FILAMENT_SHA256 3422bdff451d90144fbb69e625d8dcaeaf3222dc2c28879536067937955bc362)
32-
string(APPEND lib_dir /arm64)
33-
# Our arm64 builds use FILAMENT_SUPPORTS_VULKAN=OFF
34-
list(REMOVE_ITEM filament_LIBRARIES bluevk)
35-
else()
36-
set(FILAMENT_URL https://github.com/google/filament/releases/download/v1.9.19/filament-v1.9.19-mac.tgz)
37-
set(FILAMENT_SHA256 2765d0ce60647fc17d1880c4618cf7d6b5343d8be4dad87978c3917d9c723b4e)
38-
string(APPEND lib_dir /x86_64)
39-
endif()
24+
set(FILAMENT_URL https://github.com/google/filament/releases/download/v1.54.0/filament-v1.54.0-mac.tgz)
25+
set(FILAMENT_SHA256 9b71642bd697075110579ccb55a2e8f319b05bbd89613c72567745534936186e)
4026
else() # Linux: Check glibc version and use open3d filament binary if new (Ubuntu 20.04 and similar)
4127
execute_process(COMMAND ldd --version OUTPUT_VARIABLE ldd_version)
4228
string(REGEX MATCH "([0-9]+\.)+[0-9]+" glibc_version ${ldd_version})
43-
if(${glibc_version} VERSION_LESS "2.31")
29+
if(${glibc_version} VERSION_LESS "2.33")
4430
set(FILAMENT_URL
45-
https://github.com/isl-org/open3d_downloads/releases/download/filament/filament-v1.9.19-linux.tgz)
46-
set(FILAMENT_SHA256 f0c0b05a543dd0c82b1cd571957a90f28e72cfeee36d19a527c17ac9de4733d5)
31+
https://github.com/isl-org/open3d_downloads/releases/download/filament/filament-v1.49.1-ubuntu20.04.tgz)
32+
set(FILAMENT_SHA256 f4ba020f0ca63540e2f86b36d1728a1ea063ddd5eb55b0ba6fc621ee815a60a7)
4733
message(STATUS "GLIBC version ${glibc_version} found: Using "
48-
"Google Filament binary.")
34+
"Open3D built Filament binary for Ubuntu 20.04.")
4935
else()
5036
set(FILAMENT_URL
51-
https://github.com/isl-org/open3d_downloads/releases/download/filament/filament-v1.9.19-linux-20.04.tgz)
52-
set(FILAMENT_SHA256 c756fd76f5c6a40ca554f8c3cca424354a2a22ea6fce3c8ea893d4c4aa39514c)
37+
https://github.com/google/filament/releases/download/v1.54.0/filament-v1.54.0-linux.tgz)
38+
set(FILAMENT_SHA256 f07fbe8fcb6422a682f429d95fa2e097c538d0d900c62f0a835f595ab3909e8e)
5339
message(STATUS "GLIBC version ${glibc_version} found: Using "
54-
"Open3D Filament binary.")
40+
"Google Filament binary.")
5541
endif()
5642
endif()
5743

5844
set(lib_byproducts ${filament_LIBRARIES})
5945
list(TRANSFORM lib_byproducts PREPEND <SOURCE_DIR>/${lib_dir}/${CMAKE_STATIC_LIBRARY_PREFIX})
6046
list(TRANSFORM lib_byproducts APPEND ${CMAKE_STATIC_LIBRARY_SUFFIX})
47+
message(STATUS "Filament byproducts: ${lib_byproducts}")
6148

6249
if(WIN32)
6350
set(lib_byproducts_debug ${filament_LIBRARIES})
@@ -68,20 +55,21 @@ else()
6855

6956
# ExternalProject_Add happens at build time.
7057
ExternalProject_Add(
71-
ext_filament
72-
PREFIX filament
73-
URL ${FILAMENT_URL}
74-
URL_HASH SHA256=${FILAMENT_SHA256}
75-
DOWNLOAD_DIR "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/filament"
76-
UPDATE_COMMAND ""
77-
CONFIGURE_COMMAND ""
78-
BUILD_IN_SOURCE ON
79-
BUILD_COMMAND ""
80-
INSTALL_COMMAND ""
81-
BUILD_BYPRODUCTS ${lib_byproducts}
58+
ext_filament
59+
PREFIX filament
60+
URL ${FILAMENT_URL}
61+
URL_HASH SHA256=${FILAMENT_SHA256}
62+
DOWNLOAD_DIR "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/filament"
63+
UPDATE_COMMAND ""
64+
CONFIGURE_COMMAND ""
65+
BUILD_IN_SOURCE ON
66+
BUILD_COMMAND ""
67+
INSTALL_COMMAND ""
68+
BUILD_BYPRODUCTS ${lib_byproducts}
8269
)
8370
ExternalProject_Get_Property(ext_filament SOURCE_DIR)
71+
message(STATUS "Filament source dir is ${SOURCE_DIR}")
8472
set(FILAMENT_ROOT ${SOURCE_DIR})
8573
endif()
8674

87-
message(STATUS "Filament is located at ${FILAMENT_ROOT}")
75+
message(STATUS "Filament is located at ${FILAMENT_ROOT}")

3rdparty/find_dependencies.cmake

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1335,22 +1335,25 @@ if(BUILD_GUI)
13351335
else()
13361336
message(STATUS "Using prebuilt third-party library Filament")
13371337
include(${Open3D_3RDPARTY_DIR}/filament/filament_download.cmake)
1338-
# Set lib directory for filament v1.9.9 on Windows.
1339-
# Assume newer version if FILAMENT_PRECOMPILED_ROOT is set.
1340-
if (WIN32 AND NOT FILAMENT_PRECOMPILED_ROOT)
1341-
if (STATIC_WINDOWS_RUNTIME)
1342-
set(FILAMENT_RUNTIME_VER "x86_64/mt$<$<CONFIG:DEBUG>:d>")
1343-
else()
1344-
set(FILAMENT_RUNTIME_VER "x86_64/md$<$<CONFIG:DEBUG>:d>")
1345-
endif()
1346-
endif()
13471338
endif()
1348-
if (APPLE)
1339+
if (UNIX AND NOT APPLE)
1340+
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)$")
1341+
set(FILAMENT_RUNTIME_VER aarch64)
1342+
else()
1343+
set(FILAMENT_RUNTIME_VER x86_64)
1344+
endif()
1345+
elseif (APPLE)
13491346
if (APPLE_AARCH64)
13501347
set(FILAMENT_RUNTIME_VER arm64)
13511348
else()
13521349
set(FILAMENT_RUNTIME_VER x86_64)
13531350
endif()
1351+
else() # WIN32
1352+
if (STATIC_WINDOWS_RUNTIME)
1353+
set(FILAMENT_RUNTIME_VER "x86_64/mt$<$<CONFIG:DEBUG>:d>")
1354+
else()
1355+
set(FILAMENT_RUNTIME_VER "x86_64/md$<$<CONFIG:DEBUG>:d>")
1356+
endif()
13541357
endif()
13551358
open3d_import_3rdparty_library(3rdparty_filament
13561359
HEADER

0 commit comments

Comments
 (0)