From 6acffdfa94785c0aa352ff78634e59687d55317f Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 10 Nov 2026 12:28:13 +1300 Subject: [PATCH 1/4] New version. --- VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.txt b/VERSION.txt index 245d68e4f..d3a9b7684 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.20261029.0 +1.20261110.0 From fc3cdf4c651403052784abf4bd6c7ba177a75bd5 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 10 Nov 2026 13:12:40 +1300 Subject: [PATCH 2/4] GHA: install the latest version of Emscripten. And do it the way we do it for CI and CD workflows! --- .github/workflows/buildThirdPartyLibrary.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/buildThirdPartyLibrary.yml b/.github/workflows/buildThirdPartyLibrary.yml index e0a261c07..1a401b920 100644 --- a/.github/workflows/buildThirdPartyLibrary.yml +++ b/.github/workflows/buildThirdPartyLibrary.yml @@ -125,7 +125,7 @@ jobs: with: cache_key: webassembly - name: Install Emscripten - run: brew install emscripten + uses: emscripten-core/setup-emsdk@v16 - 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 From fe392f02fa4f0c62ded153e2ee1394d717f4440c Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 10 Nov 2026 14:50:06 +1300 Subject: [PATCH 3/4] CMake: force the inclusion of and when building our third-party libraries with Emscripten. --- cmake/packages.cmake | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cmake/packages.cmake b/cmake/packages.cmake index 1f6751ce2..5f454049f 100644 --- a/cmake/packages.cmake +++ b/cmake/packages.cmake @@ -435,14 +435,17 @@ if(CMAKE_C_COMPILER_LAUNCHER AND CMAKE_CXX_COMPILER_LAUNCHER) endif() if(EMSCRIPTEN) - # Note: we are using the same CMake variables that we used to build libOpenCOR so that we can build our third-party - # libraries in the same way that we built libOpenCOR. + # Note #1: we are using the same CMake variables that we used to build libOpenCOR, so that we can build our + # third-party libraries in the same way that we built libOpenCOR. + # Note #2: with Emscripten 7, libc++ no longer includes some headers indirectly, but some third-party libraries + # may use something from them without including them (e.g., libCellML uses std::strtod() without including + # and libSBML uses std::nothrow without including ), so we force their inclusion. list(APPEND CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CROSSCOMPILING_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} + -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}\ -include\ cstdlib\ -include\ new -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} ) From 094d2f991a58782c6f73713ec2c4acf90d95e0c5 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Tue, 10 Nov 2026 16:17:15 +1300 Subject: [PATCH 4/4] Third-party libraries: updated the SHA-1 values of their WASM builds. This is as a result of upgrading to Emscripten 7. --- src/3rdparty/LLVM/CMakeLists.txt | 2 +- src/3rdparty/SUNDIALS/CMakeLists.txt | 2 +- src/3rdparty/libCOMBINE/CMakeLists.txt | 2 +- src/3rdparty/libCellML/CMakeLists.txt | 2 +- src/3rdparty/libNuML/CMakeLists.txt | 2 +- src/3rdparty/libSBML/CMakeLists.txt | 2 +- src/3rdparty/libSEDML/CMakeLists.txt | 2 +- src/3rdparty/libxml2/CMakeLists.txt | 2 +- src/3rdparty/zipper/CMakeLists.txt | 2 +- src/3rdparty/zlib/CMakeLists.txt | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/3rdparty/LLVM/CMakeLists.txt b/src/3rdparty/LLVM/CMakeLists.txt index ae5834413..928d69b47 100644 --- a/src/3rdparty/LLVM/CMakeLists.txt +++ b/src/3rdparty/LLVM/CMakeLists.txt @@ -138,7 +138,7 @@ if(LIBOPENCOR_PREBUILT_LLVM) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - b0180baf919d8953ffa673eb3e0f6f11d6bfcd2a) + 6155cad48ecc59cf37d8b7dd8c968ae816a7fefe) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/SUNDIALS/CMakeLists.txt b/src/3rdparty/SUNDIALS/CMakeLists.txt index da5f4431c..5c21fe5ea 100644 --- a/src/3rdparty/SUNDIALS/CMakeLists.txt +++ b/src/3rdparty/SUNDIALS/CMakeLists.txt @@ -24,7 +24,7 @@ if(LIBOPENCOR_PREBUILT_SUNDIALS) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - e543ccdaaca2174c10dec3ac77bfb12c7eb9b7be) + 37b6e58e99566ca1f7ca9244bf89c07657d9aa5e) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/libCOMBINE/CMakeLists.txt b/src/3rdparty/libCOMBINE/CMakeLists.txt index 4cc4228be..74e9749d0 100644 --- a/src/3rdparty/libCOMBINE/CMakeLists.txt +++ b/src/3rdparty/libCOMBINE/CMakeLists.txt @@ -28,7 +28,7 @@ if(LIBOPENCOR_PREBUILT_LIBCOMBINE) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 8ed8266a91d67ff28438beda9d9854df4d4b5ccf) + 81e0e199fbfdc61e37fce2794d730dbd8d854a14) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/libCellML/CMakeLists.txt b/src/3rdparty/libCellML/CMakeLists.txt index 4cabdf15d..48e8a5fff 100644 --- a/src/3rdparty/libCellML/CMakeLists.txt +++ b/src/3rdparty/libCellML/CMakeLists.txt @@ -70,7 +70,7 @@ if(LIBOPENCOR_PREBUILT_LIBCELLML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - b0b2b2d709ccec251caf4a6fbaeba9908eb0357b) + a0ae6d3219d4f25d8940f8544e743ec85bdcc7b7) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/libNuML/CMakeLists.txt b/src/3rdparty/libNuML/CMakeLists.txt index 963f31b40..421cbf7fa 100644 --- a/src/3rdparty/libNuML/CMakeLists.txt +++ b/src/3rdparty/libNuML/CMakeLists.txt @@ -28,7 +28,7 @@ if(LIBOPENCOR_PREBUILT_LIBNUML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 145f03c3e2b38f7b501eb7fbc1b22fdaa6d1368d) + 8db92823664d64c45f7a35cfa9b70a57b75c2fbd) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/libSBML/CMakeLists.txt b/src/3rdparty/libSBML/CMakeLists.txt index 01a012ef9..652e7018e 100644 --- a/src/3rdparty/libSBML/CMakeLists.txt +++ b/src/3rdparty/libSBML/CMakeLists.txt @@ -28,7 +28,7 @@ if(LIBOPENCOR_PREBUILT_LIBSBML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 29604e9829a1f24f5127e5badfc5c47ae9601501) + 3d203fac4766ed4297bd1442349525571a9d5f0b) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/libSEDML/CMakeLists.txt b/src/3rdparty/libSEDML/CMakeLists.txt index 1b8a0745a..593a60bbf 100644 --- a/src/3rdparty/libSEDML/CMakeLists.txt +++ b/src/3rdparty/libSEDML/CMakeLists.txt @@ -28,7 +28,7 @@ if(LIBOPENCOR_PREBUILT_LIBSEDML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f14279d7f32d8658ae13301bcc910d71330c5a59) + c318dff320dd2eab8cea701d35fa5e43ff3d9806) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/libxml2/CMakeLists.txt b/src/3rdparty/libxml2/CMakeLists.txt index be5941743..239411045 100644 --- a/src/3rdparty/libxml2/CMakeLists.txt +++ b/src/3rdparty/libxml2/CMakeLists.txt @@ -24,7 +24,7 @@ if(LIBOPENCOR_PREBUILT_LIBXML2) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 758a5a306b2d360e5563e1a72064e2c2ac1fee58) + f67b580d4d6e20fdbf25c1fef6a0187683c8caf2) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/zipper/CMakeLists.txt b/src/3rdparty/zipper/CMakeLists.txt index 0e97f8c85..8efa323ce 100644 --- a/src/3rdparty/zipper/CMakeLists.txt +++ b/src/3rdparty/zipper/CMakeLists.txt @@ -24,7 +24,7 @@ if(LIBOPENCOR_PREBUILT_ZIPPER) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ae9fb0ae52695b9b078afdfdacd5d162722de4ee) + 23f140517181270d773056970ff8944ce4805eab) else() if(WIN32) if(RELEASE_MODE) diff --git a/src/3rdparty/zlib/CMakeLists.txt b/src/3rdparty/zlib/CMakeLists.txt index da8bfdc49..14eb467ee 100644 --- a/src/3rdparty/zlib/CMakeLists.txt +++ b/src/3rdparty/zlib/CMakeLists.txt @@ -24,7 +24,7 @@ if(LIBOPENCOR_PREBUILT_ZLIB) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 78889fdace28d611207cfc1bbb459d8507d50839) + b2f0f4e24de0f076fd5d805ca4f6480a49e2b587) else() if(WIN32) if(RELEASE_MODE)