Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: New issue
about: 'Bug report or feature request'
title: ''
labels: ''
assignees: ''

---
<!--- STOP! Before you open an issue please search this repository's issues to see if it has already been reported. This helps reduce duplicate issues from being created. -->
<!--- SECURITY DISCLOSURE: If this is a security disclosure please follow the guidelines in CONTRIBUTING.md. This helps keep folks from accidentally releasing vulnerabilities before the maintainers get a chance to fix the issue. -->

### Expected Behaviour

### Actual Behaviour

### Reproduce Scenario (including but not limited to)

#### Steps to Reproduce

#### Platform and Version

#### Sample Code that illustrates the problem

#### Logs taken while reproducing problem
2 changes: 2 additions & 0 deletions .github/workflows/continuous.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ jobs:
-DOPENVDB_CORE_SHARED=ON \
-DOPENVDB_CORE_STATIC=OFF \
-DUSE_EXPLICIT_INSTANTIATION=OFF \
-DLAGRANGE_POLYSCOPE_MOCK_BACKEND=ON \
-DUSE_SANITIZER="${{ matrix.sanitizer }}"

- name: Build
Expand Down Expand Up @@ -213,6 +214,7 @@ jobs:
-DCMAKE_BUILD_TYPE=${{ matrix.config }} ^
-DLAGRANGE_JENKINS=ON ^
-DLAGRANGE_ALL=ON ^
-DLAGRANGE_POLYSCOPE_MOCK_BACKEND=ON ^
-B "D:/build" ^
-S .
cmake --build "D:/build" -j ${{ steps.cpu-cores.outputs.count }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/wheel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
xcode-version: '26.0.1'

- name: Setup MSVC
if: runner.os == 'windows'
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1

- name: Install uv
Expand Down
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,6 @@ include(lagrange_add_test)
include(lagrange_cpm_cache)
include(lagrange_download_data)
include(lagrange_find_package)
include(lagrange_has_onetbb)
include(lagrange_include_modules)
include(lagrange_install)
include(lagrange_limit_parallelism)
Expand Down
3 changes: 3 additions & 0 deletions LagrangeOptions.cmake.sample
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,12 @@
# option(LAGRANGE_MODULE_IMAGE "Build module lagrange::image" ON)
# option(LAGRANGE_MODULE_IMAGE_IO "Build module lagrange::image_io" ON)
# option(LAGRANGE_MODULE_IO "Build module lagrange::io" ON)
# option(LAGRANGE_MODULE_PACKING "Build module lagrange::packing" ON)
# option(LAGRANGE_MODULE_PARTITIONING "Build module lagrange::partitioning" ON)
# option(LAGRANGE_MODULE_POISSON "Build module lagrange::poisson" ON)
# option(LAGRANGE_MODULE_POLYDDG "Build module lagrange::polyddg" ON)
# option(LAGRANGE_MODULE_POLYSCOPE "Build module lagrange::polyscope" ON)
# option(LAGRANGE_MODULE_PRIMITIVE "Build module lagrange::primitive" ON)
# option(LAGRANGE_MODULE_PYTHON "Build module lagrange::python" ON)
# option(LAGRANGE_MODULE_RAYCASTING "Build module lagrange::raycasting" ON)
# option(LAGRANGE_MODULE_SCENE "Build module lagrange::scene" ON)
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.39.0
6.40.0
2 changes: 1 addition & 1 deletion cmake/lagrange/lagrange_download_data.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function(lagrange_download_data)
PREFIX "${FETCHCONTENT_BASE_DIR}/lagrange-test-data"
SOURCE_DIR ${LAGRANGE_DATA_FOLDER}
GIT_REPOSITORY https://github.com/adobe/lagrange-test-data.git
GIT_TAG f721f82a6366a7ab7af7b2427824434646e2773d
GIT_TAG 2a36e21810e5e4e16c34f0c3969b4fcffe8d02f2
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
Expand Down
9 changes: 1 addition & 8 deletions cmake/lagrange/lagrange_find_package.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,7 @@ function(lagrange_find_package name)

# Defer to find_package() if desired. In the future we will switch to a dependency provider.
if(LAGRANGE_USE_FIND_PACKAGE AND ${name} IN_LIST maybe_external_packages)
# Once we update to MKL 2024.2.1 on vcpkg, we should be able to use their MKLConfig.cmake
# directly. Until then, we need to guard against multiple inclusion by checking MKL::MKL.
# https://github.com/oneapi-src/oneMKL/pull/568
if(${name} STREQUAL MKL)
if(NOT TARGET MKL::MKL)
find_package(${name} ${ARGN})
endif()
elseif(${name} STREQUAL TBB)
if(${name} STREQUAL TBB)
find_package(${name} ${ARGN})
# TODO: Move that to our vcpkg port?
target_compile_definitions(TBB::tbb INTERFACE __TBB_NO_IMPLICIT_LINKAGE=1)
Expand Down
47 changes: 0 additions & 47 deletions cmake/lagrange/lagrange_has_onetbb.cmake

This file was deleted.

20 changes: 7 additions & 13 deletions cmake/recipes/external/MKL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ set_property(CACHE MKL_LINKING PROPERTY STRINGS ${MKL_LINKINK_CHOICES})
message(STATUS "MKL linking strategy: ${MKL_LINKING}")

# MKL version
set(MKL_VERSION "2024.2.2" CACHE STRING "MKL version to use (2024.2.2)")
set(MKL_VERSION_CHOICES 2024.2.2)
set(MKL_VERSION "2025.3.0" CACHE STRING "MKL version to use (2025.3.0)")
set(MKL_VERSION_CHOICES 2025.3.0)
set_property(CACHE MKL_VERSION PROPERTY STRINGS ${MKL_VERSION_CHOICES})
message(STATUS "MKL version: ${MKL_VERSION}")

Expand Down Expand Up @@ -72,21 +72,21 @@ elseif(APPLE)
message(FATAL_ERROR "MKL not supported on macOS")
elseif(UNIX)
set(MKL_PLATFORM linux-64)
set(MKL_PLATFORM_TAG manylinux1_x86_64)
set(MKL_PLATFORM_TAG manylinux_2_28_x86_64)
endif()

#
# How to get URL info:
# https://pypi.org/pypi/mkl/2024.2.2/json
# https://pypi.org/pypi/mkl/2025.3.0/json
#
# URL format:
# https://files.pythonhosted.org/packages/${digest_a}/${digest_b}/${digest_c}/${name}-${version}-${python_tag}-${abi_tag}-${platform_tag}.whl
#
# Let's use jq to extract the checksum info into a separate JSON file:
#
# for name in mkl mkl-devel mkl-include mkl-static; do curl -s https://pypi.org/pypi/${name}/2024.2.2/json; done | jq -s 'reduce (.[] | {urls}.[].[] | {(.filename): {md5: .digests.md5, blake: .digests.blake2b_256}}) as $item ({}; . + $item)' > MKL.json
# for name in mkl mkl-devel mkl-include mkl-static; do curl -s https://pypi.org/pypi/${name}/2025.3.0/json; done | jq -s 'reduce (.[] | {urls}.[].[] | {(.filename): {md5: .digests.md5, blake: .digests.blake2b_256}}) as $item ({}; . + $item)' > MKL.json
#
if(MKL_VERSION VERSION_EQUAL 2024.2.2)
if(MKL_VERSION VERSION_EQUAL 2025.3.0)
file(READ ${CMAKE_CURRENT_LIST_DIR}/MKL.json MKL_HASHES_JSON)
else()
message(FATAL_ERROR "MKL version not supported")
Expand Down Expand Up @@ -158,7 +158,7 @@ else()
if(WIN32)
set(MKL_LIB_SUFFIX "_dll")
endif()
if(MKL_VERSION STREQUAL 2024.2.2)
if(MKL_VERSION STREQUAL 2025.3.0)
set(MKL_DLL_SUFFIX ".2")
endif()
file(GLOB MKL_LIB_HINTS LIST_DIRECTORIES true "${mkl_SOURCE_DIR}/*.data" "${mkl-devel_SOURCE_DIR}/*.data")
Expand Down Expand Up @@ -338,12 +338,6 @@ function(mkl_add_shared_libraries)
set_target_properties(MKL::${name} PROPERTIES
IMPORTED_LOCATION "${${DLLVAR}}"
)
if(UNIX)
get_filename_component(mkl_lib_filename "${${LIBVAR}}" NAME)
set_target_properties(MKL::${name} PROPERTIES
IMPORTED_SONAME "${MKL_SONAME_PREFIX}${mkl_lib_filename}"
)
endif()

# Set as dependency to the meta target MKL::MKL. We cannot directly use `target_link_libraries`, since a MODULE
# target represents a runtime dependency and cannot be linked against. Instead, we populate a custom property
Expand Down
80 changes: 24 additions & 56 deletions cmake/recipes/external/MKL.json
Original file line number Diff line number Diff line change
@@ -1,66 +1,34 @@
{
"mkl-2024.2.2-py2.py3-none-manylinux1_i686.whl": {
"md5": "41540ab4e5c7325596f2847f058de355",
"blake": "f5a3eca31ce232dfa6605279dc168a911615a560b169b519bbb4a90d172e84ad"
"mkl-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl": {
"md5": "25f1ec8059dea2063a55328d19340e94",
"blake": "6db4ef531295ed33b929c6c5214421eeebe370f1be22536b6956b4aaf18fdbc5"
},
"mkl-2024.2.2-py2.py3-none-manylinux1_x86_64.whl": {
"md5": "49d837554275db2a22da07a807ea2e92",
"blake": "b8788e11186efdf608fee944196abd078bedd89db9460ec3370c9b260db3a231"
"mkl-2025.3.0-py2.py3-none-win_amd64.whl": {
"md5": "f0b81e2fcde05df3beec309d2123f1b6",
"blake": "750eb863a60889643e21d5d8d6b619f913703257878979b1df22d344a56276d0"
},
"mkl-2024.2.2-py2.py3-none-win32.whl": {
"md5": "5993c1544261027490fae1239dea07c0",
"blake": "e5ca76021feedd622eb2fb8f9e3349e4e1132c01556f06679dc2499b8853956e"
"mkl_devel-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl": {
"md5": "098dc06c7a48911ea0deb2c7e6b81369",
"blake": "9d000e64ede5280b6fba32837e54e56a63219f3add42ed0ff101c9d2f6c5959f"
},
"mkl-2024.2.2-py2.py3-none-win_amd64.whl": {
"md5": "6f70500fd3778a03a02ad9f6a8229acb",
"blake": "100049b12dfda989a03e0139d1ce630bd8c388bb708db42e1cfe86c5db66e745"
"mkl_devel-2025.3.0-py2.py3-none-win_amd64.whl": {
"md5": "293713bf10ab6651a9e549e2dbdc80ab",
"blake": "5ed6a0f24cf3193610debc8dceddcbac7d1510f68dbffe8f171ed5510c1e4f5e"
},
"mkl_devel-2024.2.2-py2.py3-none-manylinux1_i686.whl": {
"md5": "9e641d101a04049320abaa0a65e3f47a",
"blake": "99049f90f16ebccc1c0db104ee5d310bfbbe392e264e2d6d90b2b5ad651cdf94"
"mkl_include-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl": {
"md5": "808dee3759adae2c0a839798989e302f",
"blake": "d3e75f8f78044b421f859f1a9f6aa4cc957c4733bee3e716a1d54b79797f241c"
},
"mkl_devel-2024.2.2-py2.py3-none-manylinux1_x86_64.whl": {
"md5": "c47a433bec59461e02e528ad7a5c7b0a",
"blake": "cec511a375ee99ceae06a74c77cc5cc465036ea85a26db0c2dbcec3a44bd527a"
"mkl_include-2025.3.0-py2.py3-none-win_amd64.whl": {
"md5": "41b5c0ec6c5e884ffd16095559269c77",
"blake": "b9d70445e80511e70b653291daaac068712a780ee0e00bb791d047eed0053c4b"
},
"mkl_devel-2024.2.2-py2.py3-none-win32.whl": {
"md5": "61e7b58daa631975641e129765dd59cd",
"blake": "15da23bdabf1eb5235f456ff2af5274f2ed099fc28927cf859805d95e2ca2458"
"mkl_static-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl": {
"md5": "7f8d53d014399d8677f629797159262e",
"blake": "a3f39c18b8c144cfe9d99052c5aec77a19711f146cea97b2161a813ee9f96d7e"
},
"mkl_devel-2024.2.2-py2.py3-none-win_amd64.whl": {
"md5": "8986c742855292e2781e7ded6b49436b",
"blake": "3bacb6ef92de949f074935c0a8d3b1cfe8a0d113368de39a8c072a7fd77ba335"
},
"mkl_include-2024.2.2-py2.py3-none-manylinux1_i686.whl": {
"md5": "2892662558c31f0a72063c235d0e79d4",
"blake": "d3905c4d3907a3bae2ed91cbf55e2eac047ac8ed36bd935267b236663c6d794c"
},
"mkl_include-2024.2.2-py2.py3-none-manylinux1_x86_64.whl": {
"md5": "7c648916d58e2f3325fae3b6e246c217",
"blake": "a0c8490f8712ccc5b216ea83706436c076f9ad0ffb7bbf21dcbdb710791ce368"
},
"mkl_include-2024.2.2-py2.py3-none-win32.whl": {
"md5": "fd8fd4b496b27877484259ac7b4135e1",
"blake": "a4e685f7d42f1a62f063ac4f4e8cb140893d2099242eb3ddea499eda22d31b91"
},
"mkl_include-2024.2.2-py2.py3-none-win_amd64.whl": {
"md5": "6bdb08703d6054969dc70e4667d955ef",
"blake": "7567d5ed174eba3ebb75e4d0a71ca1d6c225d22b9c50897c1f0f981108bc4681"
},
"mkl_static-2024.2.2-py2.py3-none-manylinux1_i686.whl": {
"md5": "86f49e3d8bfbec08e0dab262e16294c4",
"blake": "00e2b270ed5488b21c96e2ee784869c91301161d60e4ebff5ea289f85128d149"
},
"mkl_static-2024.2.2-py2.py3-none-manylinux1_x86_64.whl": {
"md5": "f5250dfd8402a9cd5a338c2fdeec8fc1",
"blake": "058eb413b09994f4a25329e08aec241abb8c4e6c835b17c4bcd47b2da69a808b"
},
"mkl_static-2024.2.2-py2.py3-none-win32.whl": {
"md5": "73f7ce444ab62ca45b887f6110c5f138",
"blake": "1979bf8bf43dc804ebbd0980f5dde7d2704b7e29c107cfbf57588450ea933a55"
},
"mkl_static-2024.2.2-py2.py3-none-win_amd64.whl": {
"md5": "1d5bec42ae87d3467f320d7852033774",
"blake": "d4b3c2c139a5170dcc5cd62e45e97fcad016875f046b15b6824c303fd0e2c42a"
"mkl_static-2025.3.0-py2.py3-none-win_amd64.whl": {
"md5": "34bcad6ea5f6afe1ea3dfb7b56a4c66d",
"blake": "9c22c099498c3294381349265dad4b1715edd8b739b6392c3076aa2a68231ae2"
}
}
54 changes: 54 additions & 0 deletions cmake/recipes/external/RectangleBinPack.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#
# Copyright 2020 Adobe. All rights reserved.
# This file is licensed to you under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. You may obtain a copy
# of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under
# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
# OF ANY KIND, either express or implied. See the License for the specific language
# governing permissions and limitations under the License.
#
if(TARGET rectangle_bin_pack::rectangle_bin_pack)
return()
endif()

message(STATUS "Third-party (external): creating target 'rectangle_bin_pack::rectangle_bin_pack'")

include(CPM)
CPMAddPackage(
NAME rectanglebinpack
GIT_REPOSITORY https://github.com/juj/RectangleBinPack
GIT_TAG 83e7e1132d93777e3732dfaae26b0f3703be2036
DOWNLOAD_ONLY ON
)

file(GLOB INC_FILES "${rectanglebinpack_SOURCE_DIR}/*.h")
file(GLOB SRC_FILES "${rectanglebinpack_SOURCE_DIR}/*.cpp")
list(FILTER SRC_FILES EXCLUDE REGEX ".*boost_binpacker\\.cpp$")

add_library(rectangle_bin_pack STATIC ${INC_FILES} ${SRC_FILES})
add_library(rectangle_bin_pack::rectangle_bin_pack ALIAS rectangle_bin_pack)
set_target_properties(rectangle_bin_pack PROPERTIES FOLDER "third_party")
set_target_properties(rectangle_bin_pack PROPERTIES POSITION_INDEPENDENT_CODE ON)

# Copy headers into an include/RectangleBinPack subfolder
file(MAKE_DIRECTORY "${rectanglebinpack_BINARY_DIR}/include/RectangleBinPack")
foreach(filepath IN ITEMS ${INC_FILES})
get_filename_component(filename ${filepath} NAME)
configure_file(${filepath} "${rectanglebinpack_BINARY_DIR}/include/RectangleBinPack/${filename}" COPYONLY)
endforeach()

include(GNUInstallDirs)
target_include_directories(rectangle_bin_pack PUBLIC
$<BUILD_INTERFACE:${rectanglebinpack_BINARY_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

target_compile_definitions(rectangle_bin_pack INTERFACE RECTANGLE_BIN_PACK_OSS)

# Install rules
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME RectangleBinPack)
install(DIRECTORY ${rectanglebinpack_BINARY_DIR}/include/RectangleBinPack DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(TARGETS rectangle_bin_pack EXPORT RectangleBinPack_Targets)
install(EXPORT RectangleBinPack_Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/rectangle_bin_pack NAMESPACE rectangle_bin_pack::)
2 changes: 1 addition & 1 deletion cmake/recipes/external/entt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ include(CPM)
CPMAddPackage(
NAME entt
GITHUB_REPOSITORY skypjack/entt
GIT_TAG v3.13.2
GIT_TAG v3.16.0
)
8 changes: 1 addition & 7 deletions cmake/recipes/external/fmt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,7 @@ include(CPM)
CPMAddPackage(
NAME fmt
GITHUB_REPOSITORY fmtlib/fmt
GIT_TAG 11.1.3
# Other versions to test with:
# GIT_TAG 11.0.2
# GIT_TAG 10.2.1
# GIT_TAG 10.1.1
# GIT_TAG 9.1.0
# GIT_TAG 8.1.1
GIT_TAG 12.1.0
)

set_target_properties(fmt PROPERTIES POSITION_INDEPENDENT_CODE ON)
Expand Down
6 changes: 5 additions & 1 deletion cmake/recipes/external/onetbb.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ option(TBB_PREFER_STATIC "Use the static version of TBB for the alias target" ON
option(TBB_ENABLE_WASM_THREADS "Use wasm threads" ON)
unset(TBB_DIR CACHE)

# Make OneTBB version configurable for now to facilitate testing with -fno-rtti:
# https://github.com/uxlfoundation/oneTBB/issues/1912
set(TBB_VERSION_TAG "v2022.3.0" CACHE STRING "Hash or version tag for OneTBB")

function(onetbb_import_target)
macro(push_variable var value)
if(DEFINED CACHE{${var}})
Expand Down Expand Up @@ -72,7 +76,7 @@ function(onetbb_import_target)
CPMAddPackage(
NAME tbb
GITHUB_REPOSITORY oneapi-src/oneTBB
GIT_TAG v2022.3.0
GIT_TAG ${TBB_VERSION_TAG}
)

# TODO: This might break with future versions of onetbb. Onetbb should eventually add a proper cmake option to turn wasm threads on/off.
Expand Down
Loading
Loading