Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Commit 1ba2b4a

Browse files
authored
Fix issues while NMODL is built with sympy and analytical passes (#280)
* Fix issues while NMODL is built with sympy and analytical passes - set PYTHONPATH for nmodl sympy solver passes - make sure nmodl python module is built before compiling mod files - install nmodl headers to install prefix - enable inline pass always (--inline) - nrnivmodl-core inherit PYTHONPATH correctly - when nmodl external, make sure to INCLUDE paths * Update nmodl submodule
1 parent 8659c7b commit 1ba2b4a

File tree

5 files changed

+16
-7
lines changed

5 files changed

+16
-7
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ if(CORENRN_ENABLE_NMODL)
190190
include(AddNmodlSubmodule)
191191
set(CORENRN_NMODL_BINARY ${CMAKE_BINARY_DIR}/bin/nmodl${CMAKE_EXECUTABLE_SUFFIX})
192192
set(CORENRN_NMODL_INCLUDE ${CMAKE_BINARY_DIR}/include)
193+
set(ENV{PYTHONPATH} "$ENV{PYTHONPATH}")
194+
set(CORENRN_NMODL_PYTHONPATH $ENV{PYTHONPATH})
193195
endif()
194196
include_directories(${CORENRN_NMODL_INCLUDE})
195197
# set correct arguments for nmodl for cpu/gpu target

coreneuron/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ include(NmodlHelper)
5757
# =============================================================================
5858
# Command for MOD to CPP conversion
5959
# =============================================================================
60-
set(CORENRN_NMODL_COMMAND env "MODLUNIT=${NMODL_UNITS_FILE}" "PYTHONPATH=$ENV{PYTHONPATH}" ${CORENRN_NMODL_BINARY})
60+
set(CORENRN_NMODL_COMMAND env "MODLUNIT=${NMODL_UNITS_FILE}"
61+
"PYTHONPATH=$ENV{PYTHONPATH}:${CMAKE_BINARY_DIR}/lib/python"
62+
${CORENRN_NMODL_BINARY})
6163

6264
if(${CORENRN_ENABLE_ISPC})
6365
set(NMODL_CODEGEN_TARGET ispc)
@@ -297,6 +299,6 @@ endif()
297299
install(TARGETS nrniv-core DESTINATION bin)
298300
install(FILES apps/coreneuron.cpp DESTINATION share/coreneuron)
299301

300-
# install Random123
301-
install(DIRECTORY ${CMAKE_BINARY_DIR}/include/Random123
302+
# install random123 and nmodl headers
303+
install(DIRECTORY ${CMAKE_BINARY_DIR}/include/
302304
DESTINATION include)

extra/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ message(STATUS "CXX Compile flags from BUILD_TYPE (${_BUILD_TYPE}): ${BUILD_TYPE
4949

5050
# nmodl options
5151
if(CORENRN_ENABLE_NMODL)
52-
set(nmodl_arguments_c "host --c ${CORENRN_NMODL_FLAGS}")
52+
set(nmodl_arguments_c "host --c passes --inline ${CORENRN_NMODL_FLAGS}")
5353
set(nmodl_arguments_ispc "host --ispc passes --inline ${CORENRN_NMODL_FLAGS}")
5454
else()
5555
set(nmodl_arguments_c "")

extra/nrnivmodl_core_makefile.in

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ ISPC = @CMAKE_ISPC_COMPILER@
5151
ISPC_FLAGS = @CMAKE_ISPC_FLAGS@
5252
ISPC_COMPILE = $(ISPC) $(ISPC_FLAGS) -I$(incdir)
5353

54+
ifeq (@nmodl_FOUND@, TRUE)
55+
INCLUDES += -I@CORENRN_NMODL_INCLUDE@
56+
ISPC_COMPILE += -I@CORENRN_NMODL_INCLUDE@
57+
endif
58+
5459
# Variables used in the "ARTIFICIAL_CELL" detection
5560
mod_c_srcs_path =
5661
mod_ispc_srcs_path =
@@ -147,7 +152,7 @@ $(OBJS_DIR)/%.obj: $(MODC_DIR)/%.ispc | $(OBJS_DIR)
147152
# Build ispc files with mod2c/nmodl
148153
$(mod_ispc_files): $(MODC_DIR)/%.ispc: $(MODS_PATH)/%.mod | $(MODC_DIR)
149154
@printf " -> $(C_GREEN)MOD2C$(C_RESET) $<\n"
150-
PYTHONPATH=@CORENRN_NMODL_PYTHONPATH@ \
155+
PYTHONPATH=@CORENRN_NMODL_PYTHONPATH@:${libdir}/python \
151156
MODLUNIT=$(datadir_mod2c)/nrnunits.lib \
152157
$(nmodl_binary_path) $< -o $(MODC_DIR)/ @nmodl_arguments_ispc@
153158

@@ -157,7 +162,7 @@ $(mod_ispc_c_files): $(MODC_DIR)/%.cpp: $(MODC_DIR)/%.ispc
157162
# Build cpp files with mod2c/nmodl
158163
$(mod_c_files): $(MODC_DIR)/%.cpp: $(MODS_PATH)/%.mod | $(MODC_DIR)
159164
@printf " -> $(C_GREEN)MOD2C$(C_RESET) $<\n"
160-
PYTHONPATH=@CORENRN_NMODL_PYTHONPATH@ \
165+
PYTHONPATH=@CORENRN_NMODL_PYTHONPATH@:${libdir}/python \
161166
MODLUNIT=$(datadir_mod2c)/nrnunits.lib \
162167
$(nmodl_binary_path) $< -o $(MODC_DIR)/ @nmodl_arguments_c@
163168

0 commit comments

Comments
 (0)