From 08c4b03ca49aeddbf792e6e84feeabc08689bc88 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 14:30:17 +1200 Subject: [PATCH 01/10] New version. --- VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.txt b/VERSION.txt index 4c2294992..1a02ab843 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -0.20260529.0 +0.20260529.1 From 54c7e58ddfd0a2123773087e20032e15433033f3 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 16:28:26 +1200 Subject: [PATCH 02/10] GHA: added a way to build all third-party libraries except LLVM+Clang. --- ...buildAllThirdPartyLibrariesExceptLLVMClang.yml | 11 +++++++++++ .github/workflows/buildThirdPartyLibrary.yml | 15 +++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/buildAllThirdPartyLibrariesExceptLLVMClang.yml diff --git a/.github/workflows/buildAllThirdPartyLibrariesExceptLLVMClang.yml b/.github/workflows/buildAllThirdPartyLibrariesExceptLLVMClang.yml new file mode 100644 index 000000000..7f63558de --- /dev/null +++ b/.github/workflows/buildAllThirdPartyLibrariesExceptLLVMClang.yml @@ -0,0 +1,11 @@ +name: Build all third-party libraries except LLVM+Clang + +on: + workflow_dispatch: + +jobs: + build-all-third-party-libraries-except-llvm-clang: + name: Build all third-party libraries except LLVM+Clang + uses: ./.github/workflows/buildThirdPartyLibrary.yml + with: + third_party_library_name: ALL diff --git a/.github/workflows/buildThirdPartyLibrary.yml b/.github/workflows/buildThirdPartyLibrary.yml index 8fd666c04..9d767de55 100644 --- a/.github/workflows/buildThirdPartyLibrary.yml +++ b/.github/workflows/buildThirdPartyLibrary.yml @@ -72,13 +72,16 @@ jobs: uses: ilammy/msvc-dev-cmd@v1 with: arch: ${{ matrix.arch }} - - name: Configure libOpenCOR (only when building LLVM+Clang) + - name: Configure libOpenCOR (for LLVM+Clang) if: ${{ inputs.third_party_library_name == 'LLVMClang' }} shell: bash run: cmake -G Ninja -S . -B build -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_LLVMCLANG=OFF - - name: Configure libOpenCOR (only when NOT building LLVM+Clang) - if: ${{ inputs.third_party_library_name != 'LLVMClang' }} + - name: Configure libOpenCOR (for a specific third-party library except LLVM+Clang) + if: ${{ inputs.third_party_library_name != 'ALL' && inputs.third_party_library_name != 'LLVMClang' }} run: cmake -G Ninja -S . -B build -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_${{ inputs.third_party_library_name }}=OFF + - name: Configure libOpenCOR (for all third-party libraries except LLVM+Clang) + if: ${{ inputs.third_party_library_name == 'ALL' }} + run: cmake -G Ninja -S . -B build -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_LIBCELLML=OFF -DPREBUILT_LIBCOMBINE=OFF -DPREBUILT_LIBCURL=OFF -DPREBUILT_LIBNUML=OFF -DPREBUILT_LIBSBML=OFF -DPREBUILT_LIBSEDML=OFF -DPREBUILT_LIBSSH2=OFF -DPREBUILT_LIBXML2=OFF -DPREBUILT_OPENSSL=OFF -DPREBUILT_SUNDIALS=OFF -DPREBUILT_ZIPPER=OFF -DPREBUILT_ZLIB=OFF - name: Upload library artifact if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/upload-artifact@v4 @@ -109,8 +112,12 @@ jobs: cache_key: webassembly - name: Install Emscripten run: brew install emscripten - - name: Configure libOpenCOR + - name: Configure libOpenCOR (for a specific third-party library) + if: ${{ inputs.third_party_library_name != 'ALL' }} run: cmake -G Ninja -S . -B build -DBUILD_TYPE=Release -DJAVASCRIPT_BINDINGS=ON -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_${{ inputs.third_party_library_name }}=OFF + - name: Configure libOpenCOR (for all third-party libraries except LLVM+Clang) + if: ${{ inputs.third_party_library_name == 'ALL' }} + run: cmake -G Ninja -S . -B build -DBUILD_TYPE=Release -DJAVASCRIPT_BINDINGS=ON -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_LIBCELLML=OFF -DPREBUILT_LIBCOMBINE=OFF -DPREBUILT_LIBCURL=OFF -DPREBUILT_LIBNUML=OFF -DPREBUILT_LIBSBML=OFF -DPREBUILT_LIBSEDML=OFF -DPREBUILT_LIBSSH2=OFF -DPREBUILT_LIBXML2=OFF -DPREBUILT_OPENSSL=OFF -DPREBUILT_SUNDIALS=OFF -DPREBUILT_ZIPPER=OFF -DPREBUILT_ZLIB=OFF - name: Build WebAssembly run: cmake --build build - name: Upload WebAssembly artifact From d9b1e893ac6d9331599041a5ac3e8bef3fbbe711 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Sat, 30 May 2026 09:02:44 +1200 Subject: [PATCH 03/10] Third-party libraries: skip native-only packages when building for WASM. --- src/3rdparty/CMakeLists.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt index 1b4c0980b..067079e45 100644 --- a/src/3rdparty/CMakeLists.txt +++ b/src/3rdparty/CMakeLists.txt @@ -20,7 +20,11 @@ include(packages) set(PACKAGES libCellML libCOMBINE libNuML libSBML libSEDML libxml2 LLVMClang SUNDIALS zipper zlib) -if(NOT EMSCRIPTEN) +if(EMSCRIPTEN OR ONLY_BUILD_JAVASCRIPT_THIRD_PARTY_LIBRARIES) + set(WASM_MODE TRUE) +endif() + +if(NOT WASM_MODE) list(APPEND PACKAGES libcurl libssh2 OpenSSL) endif() @@ -48,7 +52,7 @@ set(DEPENDENT_PACKAGES_TO_BUILD "" CACHE INTERNAL "Dependent packages to be buil check_dependent_packages(libxml2 libCellML libSBML) -if(EMSCRIPTEN) +if(WASM_MODE) check_dependent_packages(zlib libCellML libCOMBINE zipper) else() check_dependent_packages(OpenSSL libcurl libssh2) @@ -58,7 +62,7 @@ endif() check_dependent_packages(libSBML libCOMBINE libNuML libSEDML) check_dependent_packages(libNuML libSEDML) -if(NOT EMSCRIPTEN) +if(NOT WASM_MODE) check_dependent_packages(libssh2 libcurl) endif() @@ -77,7 +81,7 @@ endif() check_required_packages(libSBML libxml2) check_required_packages(libNuML libSBML) -if(NOT EMSCRIPTEN) +if(NOT WASM_MODE) check_required_packages(libssh2 OpenSSL) endif() @@ -86,7 +90,7 @@ check_required_packages(zipper zlib) check_required_packages(libCellML libxml2 zlib) check_required_packages(libCOMBINE libSBML libxml2 zipper zlib) -if(NOT EMSCRIPTEN) +if(NOT WASM_MODE) check_required_packages(libcurl libssh2 OpenSSL zlib) endif() @@ -106,7 +110,7 @@ list(SORT PACKAGES_TO_ADD) add_package(libxml2) -if(NOT EMSCRIPTEN) +if(NOT WASM_MODE) add_package(OpenSSL) endif() @@ -115,7 +119,7 @@ add_package(zlib) add_package(libSBML) # Requires libxml2. add_package(libNuML) # Requires libSBML. -if(NOT EMSCRIPTEN) +if(NOT WASM_MODE) add_package(libssh2) # Requires OpenSSL and zlib. endif() @@ -126,7 +130,7 @@ add_package(zipper) # Requires zlib. add_package(libCellML) # Requires libxml2 and zlib. add_package(libCOMBINE) # Requires libSBML, libxml2, zipper, and zlib. -if(NOT EMSCRIPTEN) +if(NOT WASM_MODE) add_package(libcurl) # Requires libssh2, OpenSSL, and zlib. endif() From 259142782405457673eb944f40890a90a6338af2 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 12:33:55 +1200 Subject: [PATCH 04/10] libcurl: upgraded to version 8.20.0. --- src/3rdparty/libcurl/CMakeLists.txt | 31 ++++++++++++++++----------- tests/api/version/tests.cpp | 4 ++-- tests/bindings/python/test_version.py | 4 ++-- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/3rdparty/libcurl/CMakeLists.txt b/src/3rdparty/libcurl/CMakeLists.txt index f2405bbc9..132df64db 100644 --- a/src/3rdparty/libcurl/CMakeLists.txt +++ b/src/3rdparty/libcurl/CMakeLists.txt @@ -13,9 +13,9 @@ # limitations under the License. set(PACKAGE_NAME libcurl) -set(PACKAGE_VERSION 8.13.0) +set(PACKAGE_VERSION 8.20.0) set(PACKAGE_REPOSITORY curl) -set(RELEASE_TAG curl-8_13_0) +set(RELEASE_TAG curl-8_20_0) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) if(WIN32 AND NOT RELEASE_MODE) @@ -30,42 +30,42 @@ if(LIBOPENCOR_PREBUILT_LIBCURL) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5e8a72499d218023d67393f734404c7038e7aa14) + fcd780049a9da4bc87d6066f8b7ed94a0669ecb7) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c99cd4ba1b592797e7ebd188f2e65704170d091f) + 55ea4f0047efb61808856f9d6d246e9385277336) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d732b6c4d7e18d7f3bfa8c328967eb8d8caf6dea) + 30a4ad9b968829620dcb020b51b916d3c25fd1ba) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - bf29c92b63ba68b38ca1ba7c8daa36cdee69b77f) + dbaced2020520d73fcec616f6fd364454f98307a) endif() endif() elseif(APPLE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5e7613a34a783a0f9770e51fa7b7dcece9e5cfc4) + 0b10f48c0fb7ca822058284c641a0ad4032e1635) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 828a81a2b5bd2f9f6c005c7303fe11359ccc9478) + cc9d70b909e5f8171a4ea901c797d6b6f47ff5b2) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - aab92093559cd73a5929f8a0a37dd1b67f2d1557) + 2fe369235e2623b936ebe8a5c70e2cb84d329b5a) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f429be1ae9ee0814c51547d5cc424ad2abdb1757) + 8cdb9fbc1bd7b29a2cf35abb4717903a53ccf325) endif() endif() else() @@ -79,11 +79,14 @@ else() -DCURL_BROTLI=OFF -DCURL_ZSTD=OFF -DBUILD_CURL_EXE=OFF + -DBUILD_LIBCURL_DOCS=OFF -DBUILD_TESTING=OFF ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} + -DCURL_DISABLE_LDAP=ON -DCURL_USE_LIBPSL=OFF -DCURL_USE_OPENSSL=ON + -DENABLE_CURL_MANUAL=OFF -DLIBSSH2_INCLUDE_DIR=${LIBSSH2_INCLUDE_DIR} -DLIBSSH2_LIBRARY=${LIBSSH2_LIBRARY_FILE} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} @@ -107,9 +110,11 @@ else() file(READ ${CONFIG_FILE} FILE_CONTENTS) - string(REPLACE "${LIBSSH2_LIBRARY_FILE}" "${LIBSSH2_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") - string(REPLACE "OpenSSL::Crypto" "${OPENSSL_LIBCRYPTO_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") - string(REPLACE "OpenSSL::SSL" "${OPENSSL_LIBSSL_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") + string(REPLACE "CURL::libssh2" "${LIBSSH2_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") + string(REPLACE "CURL::OpenSSL_Crypto" "${OPENSSL_LIBCRYPTO_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") + string(REPLACE "CURL::OpenSSL_SSL" "${OPENSSL_LIBSSL_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") + string(REPLACE "CURL::ZLIB" "${ZLIB_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") + string(REPLACE "Threads::Threads" "" FILE_CONTENTS "${FILE_CONTENTS}") string(REPLACE "ZLIB::ZLIB" "${ZLIB_LIBRARY}" FILE_CONTENTS "${FILE_CONTENTS}") if(APPLE) diff --git a/tests/api/version/tests.cpp b/tests/api/version/tests.cpp index 1d5b870fc..17a8b50fa 100644 --- a/tests/api/version/tests.cpp +++ b/tests/api/version/tests.cpp @@ -79,8 +79,8 @@ TEST(VersionTest, libCOMBINE) TEST(VersionTest, libcurl) { - EXPECT_EQ(0x080D00U, libOpenCOR::libcurlVersion()); - EXPECT_EQ("8.13.0-DEV", libOpenCOR::libcurlVersionString()); + EXPECT_EQ(0x081400U, libOpenCOR::libcurlVersion()); + EXPECT_EQ("8.20.0-DEV", libOpenCOR::libcurlVersionString()); } TEST(VersionTest, libSEDML) diff --git a/tests/bindings/python/test_version.py b/tests/bindings/python/test_version.py index 017a1a5cb..4e5a98cd3 100644 --- a/tests/bindings/python/test_version.py +++ b/tests/bindings/python/test_version.py @@ -86,12 +86,12 @@ def test_libcombine_version_string(): def test_libcurl_version(): assert isinstance(loc.libcurl_version(), int) - assert loc.libcurl_version() == 0x080D00 + assert loc.libcurl_version() == 0x081400 def test_libcurl_version_string(): assert isinstance(loc.libcurl_version_string(), str) - assert loc.libcurl_version_string() == "8.13.0-DEV" + assert loc.libcurl_version_string() == "8.20.0-DEV" def test_libsedml_version(): From 60822d9d11e3f1bda88409576ee3c7bb9ee78331 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 13:09:30 +1200 Subject: [PATCH 05/10] libSBML: upgraded to version 5.21.0. --- src/3rdparty/libSBML/CMakeLists.txt | 35 +++++++++++++++++++---------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/3rdparty/libSBML/CMakeLists.txt b/src/3rdparty/libSBML/CMakeLists.txt index 2bb3c7665..fbdd4b9af 100644 --- a/src/3rdparty/libSBML/CMakeLists.txt +++ b/src/3rdparty/libSBML/CMakeLists.txt @@ -13,9 +13,9 @@ # limitations under the License. set(PACKAGE_NAME libSBML) -set(PACKAGE_VERSION 5.20.5) +set(PACKAGE_VERSION 5.21.0) set(PACKAGE_REPOSITORY libsbml) -set(RELEASE_TAG v5.20.5) +set(RELEASE_TAG v5.21.0) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) # Either retrieve or build our package. @@ -28,55 +28,66 @@ if(LIBOPENCOR_PREBUILT_LIBSBML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 7af6669df81bb9ee61ddbca4970d46ae4dbabeee) + 54f84ef32f6a70cb7cbe6ffc4251d7762ec3c755) else() if(WIN32) if(RELEASE_MODE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 0ff9f19b3840bf61e7654b5d5cfbebf5af77b718) + 27876adefeba2d0e38da978e6c425f7b303a42a6) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - a37af3f1fde2c1f8156e995be154a37eb368e85c) + ffc13b7e8a0e1ebf410579c09d80a212f4c69998) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 8ccc19c239357bebdd7e7e81a1e80449ee6d81d5) + c880538369168005bcd80daea453c7b32d95661e) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - e729dd13b6bb861644ba801903d9def7b6272f35) + d12c16ff4a2b8c667160ca8cb2378e332e089bb1) endif() endif() elseif(APPLE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 052aa4d544d1e93cc4530fcfdec68b39879f4878) + b0fbee2b7a45a35b3cb6751352e56bfc8f111bba) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3e0ea2ce2b20189e83aa85c1cc6a45200526875b) + f3199a109ee56ea2e467ee34c6aca824d63363bb) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 00358806e25d038071f620c04af8c052c06aafcc) + 3c936c1696294b602aa39dad9a6a255866c2f9bd) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6978faf32f2c04d30d4973ae01c83262ae6d4693) + 762d5c39d46a55fc894522ba99ad53c22a3ea1b3) endif() endif() endif() elseif(NOT ONLY_BUILD_JAVASCRIPT_THIRD_PARTY_LIBRARIES) # Build our package. + # libSBML's FindLIBXML.cmake unconditionally probes ZLIB. Pre-seed the ZLIB variables so that FindZLIB.cmake can + # succeed even when zlib is not available (on Windows and with Emscripten), while still keeping zlib disabled for + # libSBML itself. + + set(ZLIB_ARGS + -DWITH_ZLIB=OFF + -DZLIB_FOUND=TRUE + -DZLIB_INCLUDE_DIR=${CMAKE_CURRENT_BINARY_DIR} + -DZLIB_LIBRARY=${CMAKE_CURRENT_BINARY_DIR}/zlib.not.used + ) + build_package(${PACKAGE_NAME} URL https://github.com/opencor/${PACKAGE_REPOSITORY}/archive/refs/tags/${RELEASE_TAG}.tar.gz @@ -91,7 +102,7 @@ elseif(NOT ONLY_BUILD_JAVASCRIPT_THIRD_PARTY_LIBRARIES) -DWITH_BZIP2=OFF -DWITH_CPP_NAMESPACE=ON -DWITH_SWIG=OFF - -DWITH_ZLIB=OFF + ${ZLIB_ARGS} ) # Patch some of our CMake configuration files. From 1b72f140771570de4c4ac24fe2f9210df057f51c Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 12:00:13 +1200 Subject: [PATCH 06/10] OpenSSL: upgraded to version 3.5.6. --- src/3rdparty/OpenSSL/CMakeLists.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/3rdparty/OpenSSL/CMakeLists.txt b/src/3rdparty/OpenSSL/CMakeLists.txt index 597bc5de2..bf50d4afb 100644 --- a/src/3rdparty/OpenSSL/CMakeLists.txt +++ b/src/3rdparty/OpenSSL/CMakeLists.txt @@ -13,9 +13,9 @@ # limitations under the License. set(PACKAGE_NAME OpenSSL) -set(PACKAGE_VERSION 3.5.0) +set(PACKAGE_VERSION 3.5.6) set(PACKAGE_REPOSITORY openssl) -set(RELEASE_TAG openssl-3.5.0) +set(RELEASE_TAG openssl-3.5.6) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) # Either retrieve or build our package. @@ -26,42 +26,42 @@ if(LIBOPENCOR_PREBUILT_OPENSSL) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ac4440ae3dba3415322fc833bef87b8b4d1b082b) + 1480b47efd53e2a84f5ecf34e007af01bf2b5d1c) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - cd571c829ce744dbfc82bb1998f4d566b289cf93) + c3a283735c3fd379b10f91a8fcab5b6bbd1b3b14) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ed9489d5ed226ed79ac2d1042a4a22bcdc899a8c) + c123dc0705360eeadc4186608c041ba7c25cd34c) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - dec6518c275c9f72aeeea068328ac86f0b87fb82) + 24ca17237784250e8e1a436a7675f087c5f94bf8) endif() endif() elseif(APPLE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 67f37a19f38abf06220619074ee880ca63b4a804) + 3b3a4e534bc0ca067b6c4ba20e16d4d7b3df5364) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 8c5d0afbbd2dfe2120502b728e8e5e9ff8f69ecc) + f03c6b2b4ffc795ae8cdb459a4ee19324c4c910b) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 934a9c39cd923b2466f83066952b17295b8dadf5) + 5d413c062d210d51e2b8bc7d43b77e8551524035) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - cc6a2de4b58b0b717e0684534c17ba5c90e6e7ab) + 505270e090d7eba089b553c5939801f3e468acd7) endif() endif() else() From 341d0e623f828765fe01fe55ea74babb7cb989b8 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 14:27:56 +1200 Subject: [PATCH 07/10] SUNDIALS: upgraded to version 7.7.0. --- src/3rdparty/SUNDIALS/CMakeLists.txt | 22 +++++++++++----------- tests/api/version/tests.cpp | 4 ++-- tests/bindings/javascript/version.test.js | 4 ++-- tests/bindings/python/test_version.py | 4 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/3rdparty/SUNDIALS/CMakeLists.txt b/src/3rdparty/SUNDIALS/CMakeLists.txt index 2ce9e0b5c..cec285aa1 100644 --- a/src/3rdparty/SUNDIALS/CMakeLists.txt +++ b/src/3rdparty/SUNDIALS/CMakeLists.txt @@ -13,9 +13,9 @@ # limitations under the License. set(PACKAGE_NAME SUNDIALS) -set(PACKAGE_VERSION v7.3.0) +set(PACKAGE_VERSION v7.7.0) set(PACKAGE_REPOSITORY sundials) -set(RELEASE_TAG v7.3.0) +set(RELEASE_TAG v7.7.0) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) # Either retrieve or build our package. @@ -24,49 +24,49 @@ if(LIBOPENCOR_PREBUILT_SUNDIALS) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3ce480076a375ac68b84e3a395805b1304f65ca3) + d51821a5f6edf151e72e53ad9edb700022e44b98) else() if(WIN32) if(RELEASE_MODE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6c3758026f18435d2ddba98ea6cdca03b720a905) + ea5e25fbe26a8f1309f9c9424e688abe626700c5) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6bccea22078cac44357cb8c2c70138f1c68837fc) + 9526d5b7723b31f77f8c68ed8a8e356ae7029503) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 0d62d71b789f05270852adb1b280711088304dfd) + a84a217438bd69c61ba7649ccf54ea3def6f0cdb) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - bed457c4b5430aa40a97fa2f403acba8648dadbe) + 0ce0997d40fec38b3f2a6ecea7f39a29a66bef79) endif() endif() elseif(APPLE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 23db2411afd00e339667c7d8761d12dfd43e7c1a) + 0cfb4f6722c19acd12935b9d2a2f9dbea9e44cba) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d889bfbf95f76518048523b0a59ca925f73b5b6b) + 6e36a58950250682f16117715d780adb1a9588f5) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6b736ecb5d7bac1f54e75b81f2b733c49fc654d7) + e4501231ad79082f46c031a34c2da1c50d6e7db3) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d8e6b1ed20c2fa2557333e0c281e8e4ad622b09b) + 68ca5feee035f3a958225fdaaea6bfab3bae7aa2) endif() endif() endif() diff --git a/tests/api/version/tests.cpp b/tests/api/version/tests.cpp index 17a8b50fa..4678ff472 100644 --- a/tests/api/version/tests.cpp +++ b/tests/api/version/tests.cpp @@ -97,6 +97,6 @@ TEST(VersionTest, LLVM) TEST(VersionTest, SUNDIALS) { - EXPECT_EQ(0x070300U, libOpenCOR::sundialsVersion()); - EXPECT_EQ("7.3.0", libOpenCOR::sundialsVersionString()); + EXPECT_EQ(0x070700U, libOpenCOR::sundialsVersion()); + EXPECT_EQ("7.7.0", libOpenCOR::sundialsVersionString()); } diff --git a/tests/bindings/javascript/version.test.js b/tests/bindings/javascript/version.test.js index fad96a403..246419ec8 100644 --- a/tests/bindings/javascript/version.test.js +++ b/tests/bindings/javascript/version.test.js @@ -77,7 +77,7 @@ test.describe('Version tests', () => { }); test('SUNDIALS', () => { - assert.strictEqual(loc.sundialsVersion(), 0x070300); - assert.strictEqual(loc.sundialsVersionString(), '7.3.0'); + assert.strictEqual(loc.sundialsVersion(), 0x070700); + assert.strictEqual(loc.sundialsVersionString(), '7.7.0'); }); }); diff --git a/tests/bindings/python/test_version.py b/tests/bindings/python/test_version.py index 4e5a98cd3..a6763a56b 100644 --- a/tests/bindings/python/test_version.py +++ b/tests/bindings/python/test_version.py @@ -116,9 +116,9 @@ def test_llvm_version_string(): def test_sundials_version(): assert isinstance(loc.sundials_version(), int) - assert loc.sundials_version() == 0x070300 + assert loc.sundials_version() == 0x070700 def test_sundials_version_string(): assert isinstance(loc.sundials_version_string(), str) - assert loc.sundials_version_string() == "7.3.0" + assert loc.sundials_version_string() == "7.7.0" From 3d180484a7bb50c0b8be4237e12fe9c9e9c7427f Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 14:29:07 +1200 Subject: [PATCH 08/10] zipper: upgraded to commit 83701e0. --- src/3rdparty/zipper/CMakeLists.txt | 33 ++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/3rdparty/zipper/CMakeLists.txt b/src/3rdparty/zipper/CMakeLists.txt index 0608cd34b..7e2674942 100644 --- a/src/3rdparty/zipper/CMakeLists.txt +++ b/src/3rdparty/zipper/CMakeLists.txt @@ -15,7 +15,7 @@ set(PACKAGE_NAME zipper) set(PACKAGE_VERSION 0.9.1) set(PACKAGE_REPOSITORY zipper) -set(RELEASE_TAG 966d3b2) +set(RELEASE_TAG 83701e0) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) # Either retrieve or build our package. @@ -24,63 +24,70 @@ if(LIBOPENCOR_PREBUILT_ZIPPER) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ffa3d9d8d1c908f4c2ceb5d6458752713e6a67be) + 32b71d3650a7f9b12205d19159a7b66b43b8053d) else() if(WIN32) if(RELEASE_MODE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d9a1f4c3ca79c08a0c374fd4312e2a66ac8a9a98) + 58c80587ec2e926f534dad28ac2bd51270a7478d) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 024f1739d168bd52456b9cbfb55ca3c995d81929) + 4342c6af925245d06c099647d1abc94413dfd790) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 46b74fd7bd222b074fac49e190ec9671ffadd137) + 30f92acc56e7ae6ca51fa7f7c8db358d6e645de3) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 7d6a468d06bb634d98a7f2dcbf606fead6b6d08d) + b69909d36c98248a367e55071dc4ff77803efd7f) endif() endif() elseif(APPLE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ed676c101edd61413660bf16a9d72e1bd53bdfba) + c191906c1143e8fbaf3d99efa624d88728d22757) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 9122983dd5f9cb356fdbc100fb8c07e870290a9a) + c345999013e5dca311f6567ea5a264476d6218af) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 481332ea711b286022341952253fde5b9e5d4884) + c2c699b0644ebfd4b934ec3dd49b12d787ca7782) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - e67c7b7c6aa174f73e79f50fb26c41a5efab8f2d) + 2aad270e975e23afc8a79fcb67be784a09151088) endif() endif() endif() elseif(NOT ONLY_BUILD_JAVASCRIPT_THIRD_PARTY_LIBRARIES) # Build our package. + # Note: unlike for the other packages, we don't use a URL to retrieve zipper's source code since it contains a + # submodule (minizip) and we need to make sure that it is retrieved. if(APPLE) set(PACKAGE_C_FLAGS -Wno-implicit-function-declaration) endif() build_package(${PACKAGE_NAME} - URL - https://github.com/opencor/${PACKAGE_REPOSITORY}/archive/refs/tags/${RELEASE_TAG}.tar.gz - DOWNLOAD_NO_PROGRESS ON + GIT_REPOSITORY + https://github.com/opencor/${PACKAGE_REPOSITORY}.git + GIT_TAG + ${RELEASE_TAG} + GIT_SUBMODULES + minizip + GIT_SUBMODULES_RECURSE + ON CMAKE_CACHE_ARGS -DCMAKE_C_FLAGS:STRING=${PACKAGE_C_FLAGS} CMAKE_ARGS From c85c681ec35665708894a101025920cb72fd7a08 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 29 May 2026 14:35:13 +1200 Subject: [PATCH 09/10] zlib-ng: upgraded to version 2.3.3. --- src/3rdparty/zlib/CMakeLists.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/3rdparty/zlib/CMakeLists.txt b/src/3rdparty/zlib/CMakeLists.txt index c7b314a3b..e4bc06a32 100644 --- a/src/3rdparty/zlib/CMakeLists.txt +++ b/src/3rdparty/zlib/CMakeLists.txt @@ -13,9 +13,9 @@ # limitations under the License. set(PACKAGE_NAME zlib) -set(PACKAGE_VERSION 2.2.4) +set(PACKAGE_VERSION 2.3.3) set(PACKAGE_REPOSITORY zlib-ng) -set(RELEASE_TAG 2.2.4) +set(RELEASE_TAG 2.3.3) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) # Either retrieve or build our package. @@ -24,49 +24,49 @@ if(LIBOPENCOR_PREBUILT_ZLIB) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - a2ce80c7f1eea451d1e57e351a52a9d11b5a4a6c) + c47de434f979f49d43483f5e695b09918ab00e2a) else() if(WIN32) if(RELEASE_MODE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 1f45147bceeded545d2ecc5a5e0234c50aa122f9) + a7da5d1649d860d174517941cce710ae67096d46) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - dd158fb86ac14e2423128c2a5ada55e620ef4e10) + bd80f33ed5682f034eefbde2cb85bdb7ae427b45) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - a090b05e817a8e3d1137d2d272641a68eaf2111f) + 56671c62efd78d42a9ae01a38cd84790c778fc17) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 989b17fd78df61608efb365b083957fd3230e26f) + 19513fc314f35b3af2926d048f7183e29309321b) endif() endif() elseif(APPLE) if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 2225a43db4b45fa707f894cba12b615678909330) + 6ddb3cbe8db944b867129a07c2303df2bd34896e) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 93efe39a0bb32bed4c7a4bf8d25f82472aced7a7) + 4b0de3a7a5918b0efe60d3f536f526312c3adb97) endif() else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f2b41dcc4fbefa3c347e8a86d85f40b0ca802b2e) + 2acc1f90e59fb53f809d8126b20847043a64fc78) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 396fac845ae196fb3619341c78f787b65c382105) + 95dc67508c173e06d14c0438a671187b674ed535) endif() endif() endif() From 6dc45d37bf5676f03df5e251ea8e50cd1b1e831b Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Mon, 1 Jun 2026 20:25:03 +1200 Subject: [PATCH 10/10] CI --- cmake/packaging/patch.in.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/packaging/patch.in.cmake b/cmake/packaging/patch.in.cmake index 9a6c64c97..f32e0c7af 100644 --- a/cmake/packaging/patch.in.cmake +++ b/cmake/packaging/patch.in.cmake @@ -7,7 +7,7 @@ file(READ ${CMAKE_FILE} FILE_CONTENTS) # entry to those needed system libraries or remove the INTERFACE_LINK_LIBRARIES entry altogether. if(WIN32) - string(REGEX REPLACE "INTERFACE_LINK_LIBRARIES[^\n]*\n" "INTERFACE_LINK_LIBRARIES \"$;$;$;$\"\n" FILE_CONTENTS "${FILE_CONTENTS}") + string(REGEX REPLACE "INTERFACE_LINK_LIBRARIES[^\n]*\n" "INTERFACE_LINK_LIBRARIES \"$;$;$;$;$;$\"\n" FILE_CONTENTS "${FILE_CONTENTS}") elseif(APPLE) string(REGEX REPLACE "INTERFACE_LINK_LIBRARIES[^\n]*\n" "INTERFACE_LINK_LIBRARIES \"-framework CoreFoundation;-framework SystemConfiguration;$\"\n" FILE_CONTENTS "${FILE_CONTENTS}") else()