From 25bed1ded20fdebf1150a238d14d8c89a3f4704d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 16 Jan 2026 11:52:19 -0800 Subject: [PATCH 1/5] Fix so it'll build again on libroadrunner-deps --- CMakeLists.txt | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 59bcd72..f1cecda 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,24 +49,27 @@ endif () ## Find ZLIB find_package(ZLIB CONFIG REQUIRED) set(LIBZ_LIBRARY ZLIB::ZLIBSTATIC) -get_target_property(LIBZ_LIBRARY_LOCATION ZLIB::ZLIBSTATIC LOCATION) -message(STATUS "ZLIB Library: ${LIBZ_LIBRARY_LOCATION}") -set(ZLIB_LIBRARY "${LIBZ_LIBRARY_LOCATION}" CACHE FILEPATH "Path to zlib library" FORCE) +set(ZLIB_LIBRARY $ CACHE FILEPATH "Path to zlib library" FORCE) set(ZLIB_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include" CACHE PATH "Path to zlib include directory" FORCE) set(ZLIB_FOUND TRUE CACHE BOOL "ZLIB found" FORCE) ## Find expat -find_package(expat CONFIG REQUIRED) -set(EXPAT_LIBRARY expat::expat) -get_target_property(EXPAT_LIBRARY_LOCATION expat::expat LOCATION) -get_target_property(EXPAT_INCLUDE_DIR expat::expat INTERFACE_INCLUDE_DIRECTORIES) -message(STATUS "Expat Library: ${EXPAT_LIBRARY_LOCATION}") -message(STATUS "Expat Include: ${EXPAT_INCLUDE_DIR}") +if (NOT DEFINED EXPAT_LIBRARY) + find_package(expat CONFIG REQUIRED) + set(EXPAT_LIBRARY expat::expat) + get_target_property(EXPAT_LIBRARY_LOCATION expat::expat LOCATION) + get_target_property(EXPAT_INCLUDE_DIR expat::expat INTERFACE_INCLUDE_DIRECTORIES) + message(STATUS "Expat Library: ${EXPAT_LIBRARY_LOCATION}") + message(STATUS "Expat Include: ${EXPAT_INCLUDE_DIR}") +endif() ## Find libSBML -find_package(${SBML_TARGET_NAME} CONFIG REQUIRED) -set(LIBSBML_LIBRARY ${SBML_TARGET_NAME}) -message(STATUS "libSBML Target: ${LIBSBML_LIBRARY}") +if (NOT DEFINED LIBSBML_LIBRARY) + find_package(${SBML_TARGET_NAME} CONFIG REQUIRED) + set(LIBSBML_LIBRARY ${SBML_TARGET_NAME}) + message(STATUS "libSBML Target: ${LIBSBML_LIBRARY}") +endif() + ## Set dependencies include directory set(DEPENDENCIES_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include") From 9e8dbfca29c32b596be39afaf1d8d1e4272b70f5 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 16 Jan 2026 16:56:29 -0800 Subject: [PATCH 2/5] Revert to when it used to work. --- CMakeLists.txt | 73 +++++++++++++++++++------------------------------- 1 file changed, 28 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f1cecda..f4aa69f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.10 FATAL_ERROR) +cmake_minimum_required(VERSION 3.6 FATAL_ERROR) project(libsbmlnetwork) add_definitions(-DLIBSBMLNETWORK_EXPORTS=true) @@ -26,53 +26,36 @@ endif() add_definitions(-DLIBSBMLNETWORK_VERSION="${LIBSBMLNETWORK_DOTTED_VERSION}") -## Dependency configuration +## find dependency libraries set(DEPENDENCIES_INSTALL_PREFIX "" CACHE PATH "Path to the libsbml, libexpat, and libz installation directory") - -set(DEPENDENCY_CMAKE_CONFIG_PATHS - "${DEPENDENCIES_INSTALL_PREFIX}/cmake" - "${DEPENDENCIES_INSTALL_PREFIX}/lib/cmake" - "${DEPENDENCIES_INSTALL_PREFIX}/lib64/cmake" -) -set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${DEPENDENCY_CMAKE_CONFIG_PATHS}") -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${DEPENDENCY_CMAKE_CONFIG_PATHS}") - -message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") - -## Set platform-specific libSBML target name -if (WIN32) - set(SBML_TARGET_NAME "libsbml-static") -else () - set(SBML_TARGET_NAME "sbml-static") -endif () - -## Find ZLIB -find_package(ZLIB CONFIG REQUIRED) -set(LIBZ_LIBRARY ZLIB::ZLIBSTATIC) -set(ZLIB_LIBRARY $ CACHE FILEPATH "Path to zlib library" FORCE) -set(ZLIB_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include" CACHE PATH "Path to zlib include directory" FORCE) -set(ZLIB_FOUND TRUE CACHE BOOL "ZLIB found" FORCE) - -## Find expat -if (NOT DEFINED EXPAT_LIBRARY) - find_package(expat CONFIG REQUIRED) - set(EXPAT_LIBRARY expat::expat) - get_target_property(EXPAT_LIBRARY_LOCATION expat::expat LOCATION) - get_target_property(EXPAT_INCLUDE_DIR expat::expat INTERFACE_INCLUDE_DIRECTORIES) - message(STATUS "Expat Library: ${EXPAT_LIBRARY_LOCATION}") - message(STATUS "Expat Include: ${EXPAT_INCLUDE_DIR}") -endif() - -## Find libSBML -if (NOT DEFINED LIBSBML_LIBRARY) - find_package(${SBML_TARGET_NAME} CONFIG REQUIRED) - set(LIBSBML_LIBRARY ${SBML_TARGET_NAME}) - message(STATUS "libSBML Target: ${LIBSBML_LIBRARY}") +set(LIBSBML_INSTALL_PREFIX "" CACHE PATH "Path to the libsbml installation directory") +set(EXPAT_INSTALL_PREFIX "" CACHE PATH "Path to the expat installation directory") +if(WIN32) + find_library(LIBSBML_LIBRARY NAMES libsbml-staticmd.lib libsbml-staticmdd.lib PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) + if (NOT TARGET EXPAT::EXPAT) + find_library(EXPAT_LIBRARY NAMES libexpatMD.lib libexpatdMD.lib PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) + else () + find_package(EXPAT REQUIRED) + set(EXPAT_LIBRARY EXPAT::EXPAT) + endif () + find_library(LIBZ_LIBRARY NAMES zlibstatic.lib zlibstaticd.lib zs.lib PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) +elseif (APPLE) + find_library(LIBSBML_LIBRARY NAMES libsbml-static.a libsbml-staticd.a PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) + find_library(EXPAT_LIBRARY NAMES libexpat.a expat PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) + find_library(LIBZ_LIBRARY NAMES libz.a PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) +elseif(UNIX) + find_library(LIBSBML_LIBRARY NAMES libsbml-static.a libsbml-staticd.a + PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib ${LIBSBML_INSTALL_PREFIX}/lib64 ${DEPENDENCIES_INSTALL_PREFIX}/lib64 REQUIRED) + find_library(EXPAT_LIBRARY NAMES libexpat.a expat + PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib ${EXPAT_INSTALL_PREFIX}/lib64 ${DEPENDENCIES_INSTALL_PREFIX}/lib64 REQUIRED) + find_library(LIBZ_LIBRARY NAMES libz.so + PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib64) endif() - -## Set dependencies include directory -set(DEPENDENCIES_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include") +## set dependencies include directory if it is not set by a parent project +if (NOT DEFINED DEPENDENCIES_INCLUDE_DIR) + set(DEPENDENCIES_INCLUDE_DIR ${LIBSBML_INSTALL_PREFIX}/include ${EXPAT_INSTALL_PREFIX}/include ${DEPENDENCIES_INSTALL_PREFIX}/include) +endif () ## whether to build the dynamic version of the library set(BUILD_SHARED_LIBS ON CACHE BOOL "Build the dynamic version of the library") From 2daa7f47cc62be4c5f1b54d355772f9d73c6e397 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 16 Jan 2026 17:05:45 -0800 Subject: [PATCH 3/5] Add name of zlibstatic debug lib. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4aa69f..a461d5a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ if(WIN32) find_package(EXPAT REQUIRED) set(EXPAT_LIBRARY EXPAT::EXPAT) endif () - find_library(LIBZ_LIBRARY NAMES zlibstatic.lib zlibstaticd.lib zs.lib PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) + find_library(LIBZ_LIBRARY NAMES zlibstatic.lib zlibstaticd.lib zs.lib zsd.lib PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) elseif (APPLE) find_library(LIBSBML_LIBRARY NAMES libsbml-static.a libsbml-staticd.a PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) find_library(EXPAT_LIBRARY NAMES libexpat.a expat PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) From 35f4696b26ee307f2d76012c3f519360d0d053e4 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 Jul 2026 18:26:09 -0700 Subject: [PATCH 4/5] Fix memory leak. When we try to read a sbml document and fail, we need to delete the failed document. --- src/libsbmlnetwork_sbmldocument.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libsbmlnetwork_sbmldocument.cpp b/src/libsbmlnetwork_sbmldocument.cpp index b622f5e..aed778e 100644 --- a/src/libsbmlnetwork_sbmldocument.cpp +++ b/src/libsbmlnetwork_sbmldocument.cpp @@ -22,10 +22,11 @@ namespace LIBSBMLNETWORK_CPP_NAMESPACE { SBMLDocument* document = readSBMLFromFile(sbml.c_str()); if (document && document->isSetModel()) return document; + delete document; document = readSBMLFromString(sbml.c_str()); if (document && document->isSetModel()) return document; - + delete document; return NULL; } From 42cfa41cd3ae4b6f054d2b8c8909e387b0285bb3 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 28 Aug 2026 20:47:47 -0700 Subject: [PATCH 5/5] Re-wrap everything Yet Again. Trying to get CMakeLists so it compiles: * on its own * Also in libanimonyjs * Also in libroadrunner-deps --- CMakeLists.txt | 72 ++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ca4ab3..bb24e09 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.6 FATAL_ERROR) +cmake_minimum_required(VERSION 3.10 FATAL_ERROR) project(libsbmlnetwork) add_definitions(-DLIBSBMLNETWORK_EXPORTS=true) @@ -26,48 +26,42 @@ endif() add_definitions(-DLIBSBMLNETWORK_VERSION="${LIBSBMLNETWORK_DOTTED_VERSION}") -## find dependency libraries +## Dependency configuration set(DEPENDENCIES_INSTALL_PREFIX "" CACHE PATH "Path to the libsbml, libexpat, and libz installation directory") -set(LIBSBML_INSTALL_PREFIX "" CACHE PATH "Path to the libsbml installation directory") -set(EXPAT_INSTALL_PREFIX "" CACHE PATH "Path to the expat installation directory") -if(WIN32) - find_library(LIBSBML_LIBRARY NAMES libsbml-staticmd.lib libsbml-staticmdd.lib PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) - if (NOT TARGET EXPAT::EXPAT) - find_library(EXPAT_LIBRARY NAMES libexpatMD.lib libexpatdMD.lib PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) - else () - find_package(EXPAT REQUIRED) - set(EXPAT_LIBRARY EXPAT::EXPAT) - endif () - find_library(LIBZ_LIBRARY NAMES zlibstatic.lib zlibstaticd.lib zs.lib zsd.lib PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) -elseif (APPLE) - find_library(LIBSBML_LIBRARY NAMES libsbml-static.a libsbml-staticd.a PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) - find_library(EXPAT_LIBRARY NAMES libexpat.a expat PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) - find_library(LIBZ_LIBRARY NAMES libz.a PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib REQUIRED) -elseif(UNIX) - find_library(LIBSBML_LIBRARY NAMES libsbml-static.a libsbml-staticd.a - PATHS ${LIBSBML_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib ${LIBSBML_INSTALL_PREFIX}/lib64 ${DEPENDENCIES_INSTALL_PREFIX}/lib64 REQUIRED) - find_library(EXPAT_LIBRARY NAMES libexpat.a expat - PATHS ${EXPAT_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib ${EXPAT_INSTALL_PREFIX}/lib64 ${DEPENDENCIES_INSTALL_PREFIX}/lib64 REQUIRED) - find_library(LIBZ_LIBRARY NAMES libz.so - PATHS ${DEPENDENCIES_INSTALL_PREFIX}/lib ${DEPENDENCIES_INSTALL_PREFIX}/lib64) -endif() -## set dependencies include directory if it is not set by a parent project -if (NOT DEFINED DEPENDENCIES_INCLUDE_DIR) - set(DEPENDENCIES_INCLUDE_DIR ${LIBSBML_INSTALL_PREFIX}/include ${EXPAT_INSTALL_PREFIX}/include ${DEPENDENCIES_INSTALL_PREFIX}/include) +set(DEPENDENCY_CMAKE_CONFIG_PATHS + "${DEPENDENCIES_INSTALL_PREFIX}/cmake" + "${DEPENDENCIES_INSTALL_PREFIX}/lib/cmake" + "${DEPENDENCIES_INSTALL_PREFIX}/lib64/cmake" +) +set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${DEPENDENCY_CMAKE_CONFIG_PATHS}") +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${DEPENDENCY_CMAKE_CONFIG_PATHS}") + +message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") + +## Set platform-specific libSBML target name +if (WIN32) + set(SBML_TARGET_NAME "libsbml-static") +else () + set(SBML_TARGET_NAME "sbml-static") endif () ## Find ZLIB option(WITH_ZLIB "Link libsbmlnetwork against zlib." ON) -set(LIBZ_LIBRARY "") if (WITH_ZLIB) - find_package(ZLIB CONFIG REQUIRED) - set(LIBZ_LIBRARY ZLIB::ZLIBSTATIC) - get_target_property(LIBZ_LIBRARY_LOCATION ZLIB::ZLIBSTATIC LOCATION) - message(STATUS "ZLIB Library: ${LIBZ_LIBRARY_LOCATION}") - set(ZLIB_LIBRARY "${LIBZ_LIBRARY_LOCATION}" CACHE FILEPATH "Path to zlib library" FORCE) - set(ZLIB_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include" CACHE PATH "Path to zlib include directory" FORCE) - set(ZLIB_FOUND TRUE CACHE BOOL "ZLIB found" FORCE) + if (DEFINED LIBZ_LIBRARY) + message(STATUS "ZLIB Library: ${LIBZ_LIBRARY}") + else () + find_package(ZLIB CONFIG REQUIRED) + set(LIBZ_LIBRARY ZLIB::ZLIBSTATIC) + get_target_property(LIBZ_LIBRARY_LOCATION ZLIB::ZLIBSTATIC LOCATION) + message(STATUS "ZLIB Library: ${LIBZ_LIBRARY_LOCATION}") + set(ZLIB_LIBRARY "${LIBZ_LIBRARY_LOCATION}" CACHE FILEPATH "Path to zlib library" FORCE) + set(ZLIB_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include" CACHE PATH "Path to zlib include directory" FORCE) + set(ZLIB_FOUND TRUE CACHE BOOL "ZLIB found" FORCE) + endif () +else () + set(LIBZ_LIBRARY "") endif () ## Find expat @@ -92,8 +86,10 @@ else () message(STATUS "libSBML Target: ${LIBSBML_LIBRARY}") endif () -## Set dependencies include directory -set(DEPENDENCIES_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include" "${LIBSBML_INSTALL_PREFIX}/include" "${EXPAT_INCLUDE_DIR}") +## Set dependencies include directory if it is not set by a parent project +if (NOT DEFINED DEPENDENCIES_INCLUDE_DIR) + set(DEPENDENCIES_INCLUDE_DIR "${DEPENDENCIES_INSTALL_PREFIX}/include" "${LIBSBML_INSTALL_PREFIX}/include" "${EXPAT_INCLUDE_DIR}") +endif () ## whether to build the dynamic version of the library set(BUILD_SHARED_LIBS ON CACHE BOOL "Build the dynamic version of the library")