From 92b5e825f82874ba0b303888c709c1c6d0b4b1e6 Mon Sep 17 00:00:00 2001
From: Pooja Babu
Date: Thu, 14 Sep 2023 17:19:37 +0200
Subject: [PATCH 1/2] Add linker flags `-undefined dynamic_lookup` to resolve
linker errors in macOS
---
.../point_neuron/setup/CMakeLists.txt.jinja2 | 24 ++++++++++++-------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2 b/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2
index 6bd93df1d..048ce8cfa 100644
--- a/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2
+++ b/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2
@@ -246,15 +246,23 @@ if ( BUILD_SHARED_LIBS )
# When building shared libraries, also create a module for loading at runtime
# with the `Install` command.
add_library( ${MODULE_NAME}_module MODULE ${MODULE_SOURCES} )
- set_target_properties( ${MODULE_NAME}_module
- PROPERTIES
- COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE"
- LINK_FLAGS "${NEST_LIBS}"
- PREFIX ""
- OUTPUT_NAME ${MODULE_NAME} )
+ if ( APPLE )
+ set_target_properties( ${MODULE_NAME}_module
+ PROPERTIES
+ COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE"
+ LINK_FLAGS "${NEST_LIBS} -undefined dynamic_lookup"
+ PREFIX ""
+ OUTPUT_NAME ${MODULE_NAME} )
+ else ()
+ set_target_properties( ${MODULE_NAME}_module
+ PROPERTIES
+ COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE"
+ LINK_FLAGS "${NEST_LIBS}"
+ PREFIX ""
+ OUTPUT_NAME ${MODULE_NAME} )
+ endif ()
install( TARGETS ${MODULE_NAME}_module
- DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} )
endif ()
message( "" )
From ab59617041d648086eded75f7b34ae767cecc5d1 Mon Sep 17 00:00:00 2001
From: Pooja Babu
Date: Mon, 18 Sep 2023 15:43:37 +0200
Subject: [PATCH 2/2] Address review comments
---
.../point_neuron/setup/CMakeLists.txt.jinja2 | 21 +++++++------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2 b/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2
index 048ce8cfa..496ad7bb8 100644
--- a/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2
+++ b/pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2
@@ -246,21 +246,16 @@ if ( BUILD_SHARED_LIBS )
# When building shared libraries, also create a module for loading at runtime
# with the `Install` command.
add_library( ${MODULE_NAME}_module MODULE ${MODULE_SOURCES} )
+ set(LINKER_FLAGS "${NEST_LIBS}")
if ( APPLE )
- set_target_properties( ${MODULE_NAME}_module
- PROPERTIES
- COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE"
- LINK_FLAGS "${NEST_LIBS} -undefined dynamic_lookup"
- PREFIX ""
- OUTPUT_NAME ${MODULE_NAME} )
- else ()
- set_target_properties( ${MODULE_NAME}_module
- PROPERTIES
- COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE"
- LINK_FLAGS "${NEST_LIBS}"
- PREFIX ""
- OUTPUT_NAME ${MODULE_NAME} )
+ set(LINKER_FLAGS "${LINKER_FLAGS} -undefined dynamic_lookup")
endif ()
+ set_target_properties( ${MODULE_NAME}_module
+ PROPERTIES
+ COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE"
+ LINK_FLAGS "${LINKER_FLAGS}"
+ PREFIX ""
+ OUTPUT_NAME ${MODULE_NAME} )
install( TARGETS ${MODULE_NAME}_module
DESTINATION ${CMAKE_INSTALL_LIBDIR} )
endif ()