From 4d033d65a61708645669a3b143db8d664b135b76 Mon Sep 17 00:00:00 2001
From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
Date: Wed, 19 Aug 2020 09:48:56 +0100
Subject: [PATCH 03/11] Disable python build and install
---
src/nrnpython/CMakeLists.txt | 72 ------------------------------------
1 file changed, 72 deletions(-)
diff --git a/src/nrnpython/CMakeLists.txt b/src/nrnpython/CMakeLists.txt
index e4a4e3f18..4f9a767d3 100644
--- a/src/nrnpython/CMakeLists.txt
+++ b/src/nrnpython/CMakeLists.txt
@@ -206,81 +206,9 @@ if(NRN_ENABLE_MODULE_INSTALL)
${PROJECT_BINARY_DIR}/share/nrn/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/share/demo
${PROJECT_BINARY_DIR}/share/nrn/demo)
- # Don't do exactly the same copy twice in a row. Presumably it's sometimes important to do both...
- if(NOT "${NRN_BUILD_SHARE_DIR}/lib" STREQUAL "${PROJECT_BINARY_DIR}/share/nrn/lib")
- add_custom_command(
- TARGET hoc_module
- PRE_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/share/lib
- ${NRN_BUILD_SHARE_DIR}/lib)
- endif()
-
- # =============================================================================
- # Build python module
- # =============================================================================
- # for each python detected / provided by user, install module at install time
-
- # Workaround for: https://github.com/neuronsimulator/nrn/issues/1605 See:
- # https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html
- # https://setuptools.pypa.io/en/latest/history.html#id228
- set(extra_env ${CMAKE_COMMAND} -E env "SETUPTOOLS_USE_DISTUTILS=stdlib")
-
- if(NRN_SANITIZERS)
- # Make sure the same compiler (currently always clang in the sanitizer builds) is used to link
- # as was used to build. By default, Python will try to use the compiler that was used to build
- # Python, which is often gcc.
- list(APPEND extra_env "LDCSHARED=${CMAKE_C_COMPILER} ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}"
- "LDCXXSHARED=${CMAKE_CXX_COMPILER} ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}")
- endif()
-
- foreach(pyexe ${NRN_PYTHON_EXE_LIST})
- add_custom_command(
- TARGET hoc_module
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/inithoc.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/inithoc.cpp
- COMMAND
- ${CMAKE_COMMAND} -E copy_if_different
- ${PROJECT_SOURCE_DIR}/share/lib/python/neuron/help_data.dat
- ${CMAKE_CURRENT_BINARY_DIR}/lib/python/neuron/help_data.dat
- COMMAND ${extra_env} ${pyexe} setup.py --quiet build --build-lib=${NRN_PYTHON_BUILD_LIB}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Building python module with: ${pyexe}")
- endforeach(pyexe)
add_dependencies(hoc_module nrniv_lib ${nrnpython_lib_list})
if(NRN_ENABLE_RX3D)
add_dependencies(hoc_module rxd_cython_generated)
endif()
-
- # ~~~
- # neuron module (possibly with multiple extension versions) was built
- # in NRN_PYTHON_BUILD_LIB. Not a problem if install overwrites multiple
- # times to same install folder or if each install ends up in different
- # place.
- # ~~~
- file(
- WRITE ${CMAKE_CURRENT_BINARY_DIR}/neuron_module_install.sh
- "\
-#!bash\n\
-echo 'Installing python module using:'\n\
-set -ex\n\
-cd ${CMAKE_CURRENT_BINARY_DIR}\n\
-export SETUPTOOLS_USE_DISTUTILS=stdlib
-$1 setup.py --quiet build --build-lib=${NRN_PYTHON_BUILD_LIB} install ${NRN_MODULE_INSTALL_OPTIONS}\n\
-")
- foreach(pyexe ${NRN_PYTHON_EXE_LIST})
- # install(CODE ...) only takes a single CMake code expression, so we can't easily roll our own
- # check on the return code. Modern CMake versions support the COMMAND_ERROR_IS_FATAL option,
- # which will cause the installation to abort if the shell script returns an error code.
- if(${CMAKE_VERSION} VERSION_LESS "3.19")
- install(
- CODE "execute_process(COMMAND bash ${CMAKE_CURRENT_BINARY_DIR}/neuron_module_install.sh ${pyexe})"
- )
- else()
- install(
- CODE "execute_process(COMMAND bash ${CMAKE_CURRENT_BINARY_DIR}/neuron_module_install.sh ${pyexe} COMMAND_ERROR_IS_FATAL LAST)"
- )
- endif()
- endforeach(pyexe)
endif()
--
2.39.1