diff --git a/CMakeLists.txt b/CMakeLists.txt index a513d76eeafce796d2a48097f9eeb28f54012387..0541457f10b02d28c2bdfb92320db88f63435430 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ set(CMAKE_LEGACY_CYGWIN_WIN32 0) cmake_minimum_required(VERSION 2.8 FATAL_ERROR) -project(pymoose) +project(moose-core) if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) @@ -245,14 +245,6 @@ if(HDF5_LIBRARY_DIRS) set_target_properties( libmoose PROPERTIES LINK_FLAGS "-L${HDF5_LIBRARY_DIRS}" ) endif() -find_package(Termcap) -find_package(Readline) - -if(READLINE_FOUND AND TERMCAP_FOUND) - add_definitions(-DUSE_READLINE) - include_directories(${Readline_INCLUDE_DIR}) -endif() - # Openmpi if(WITH_MPI) find_package(MPI REQUIRED) @@ -393,7 +385,6 @@ endif() ######################### BUILD PYMOOSE ######################################## add_subdirectory( pymoose ) - ######################### INSTALL ############################################## if(DEBUG) @@ -422,25 +413,18 @@ execute_process( message( STATUS "Platform ${_platform_desc}" ) -# DISTUTILS_EXTRA_ARGS may come of top-level cmake script. On DEBIAN/UBUNTU, it -# is most likely to be --install-layout=deb . -set(EXTRA_ARGS "--prefix ${CMAKE_INSTALL_PREFIX} ${DISTUTILS_EXTRA_ARGS}") +set(EXTRA_ARGS "--prefix ${CMAKE_INSTALL_PREFIX}") -# On Debian/Ubuntu install using debian layout. -# NOTE: Also create setup.cfg file which setup prefix and install-layout -# suitable for DEBIAN systems. +# On Debian/Ubuntu install using debian layout if( ${_platform_desc} MATCHES ".*(Ubuntu|Debian).*" ) list( APPEND EXTRA_ARGS "--install-layout=deb" ) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/python/setup.cfg - "[install]\nprefix=/usr\ninstall-layout=deb" - ) endif( ) # If make is called with sudo, install in system directories. Otherwise use # --user to install in user home. install(CODE "execute_process( - COMMAND ${PYTHON_EXECUTABLE} setup.cmake.py install -f ${EXTRA_ARGS} ${PYMOOSE_EXTRA_INSTALL_ARGS} + COMMAND ${PYTHON_EXECUTABLE} setup.cmake.py install ${EXTRA_ARGS} ${PYMOOSE_EXTRA_INSTALL_ARGS} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python )" ) @@ -455,27 +439,6 @@ if(${CMAKE_BUILD_TOOL} MATCHES "make") ) endif() -# Target for creating bdist. This is handy for creating bdist for packaging. -# Save the binary distribution (tar.gz) to PYMOOSE_BDIST_DIR. Note that this -# target is only useful when creating packages on Open Build Service i.e. if you -# use this target on distribution X, it may not work on distrbutions other than -# X. See python-wheels for making portable distributions. -if(NOT PYMOOSE_BDIST_DIR) - set(PYMOOSE_BDIST_DIR ${CMAKE_BINARY_DIR}/pymoose_bdist) -endif( ) - -# get platform and arch using python. -# NOTE: creating bdist or bdist_dump uses /usr and /usr/local on rpm and deb -# based unix respectively. Not a great situation to be in. Need to write a -# setup.cfg file to fix the prefix in all cases. -find_package( PythonInterp REQUIRED) -add_custom_target( bdist - COMMAND ${PYTHON_EXECUTABLE} setup.cmake.py bdist_dumb -d ${PYMOOSE_BDIST_DIR} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python - COMMENT "Genearating bdist using setup.cmake.py." - VERBATIM - ) - ############################ CTEST ###################################### include( CTest ) diff --git a/cmake_modules/FindNumPy.cmake b/cmake_modules/FindNumPy.cmake index f14142f18652c1081f098319b47bf123329352de..5de7901e56780d191dcbc218685c0204f696c22e 100644 --- a/cmake_modules/FindNumPy.cmake +++ b/cmake_modules/FindNumPy.cmake @@ -39,23 +39,15 @@ #============================================================================ # Finding NumPy involves calling the Python interpreter -if(NumPy_FIND_REQUIRED) - find_package(PythonInterp REQUIRED) -else() - find_package(PythonInterp) -endif() - -if(NOT PYTHONINTERP_FOUND) - set(NUMPY_FOUND FALSE) - return() -endif() -execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" +message( STATUS "Using python ${PYTHON_EXECUTABLE} to locate numpy" ) +execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy as n; print(n.__version__); print(n.get_include());" RESULT_VARIABLE _NUMPY_SEARCH_SUCCESS OUTPUT_VARIABLE _NUMPY_VALUES_OUTPUT ERROR_VARIABLE _NUMPY_ERROR_VALUE - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE +) if(NOT _NUMPY_SEARCH_SUCCESS MATCHES 0) if(NumPy_FIND_REQUIRED) diff --git a/pymoose/CMakeLists.txt b/pymoose/CMakeLists.txt index 713ade07302e224a9600177fce2952d0a61dc791..adf4176b955dcc0e1c254777f304cbac14233151 100644 --- a/pymoose/CMakeLists.txt +++ b/pymoose/CMakeLists.txt @@ -10,10 +10,11 @@ set(PYMOOSE_SRCS test_moosemodule.cpp PyRun.cpp ) -add_library( _moose MODULE ${PYMOOSE_SRCS} ) +add_library( _moose MODULE ${PYMOOSE_SRCS} ) set(PYMOOSE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python/moose") +find_package(PythonInterp REQUIRED) execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "try: import importlib.machinery; print(importlib.machinery.EXTENSION_SUFFIXES[0]) except Exception: pass" diff --git a/python/moose/moose_test.py b/python/moose/moose_test.py index 9d5ad2459ecf94e3a6b8b3d4c68d26b54c6c3475..9cda2b80d81b4ffc20ff77bf0dae656c47763e7c 100644 --- a/python/moose/moose_test.py +++ b/python/moose/moose_test.py @@ -26,12 +26,11 @@ import logging from collections import defaultdict import time -logfile_ = tempfile.NamedTemporaryFile( ) logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%m-%d %H:%M', - filename = logfile_.name, + filename='tests.log', filemode='w' ) console = logging.StreamHandler() diff --git a/python/setup.cmake.py b/python/setup.cmake.py index b1761f9957ee37b274fc3fbc6cd50b833356a107..94787ff76ba0bf70554c742c158e19a7ad36f23d 100644 --- a/python/setup.cmake.py +++ b/python/setup.cmake.py @@ -1,11 +1,10 @@ # -*- coding: utf-8 -*- -""" -setup.cmake.py: +"""setup.py: +Script to install python targets. -Script to install python targets by cmake. +NOTE: This script is to be called by CMake. Not intended to be used standalone. -DO NOT USE IT DIRECTLY. Only `cmake` build system should use it directly. """ __author__ = "Dilawar Singh" @@ -21,30 +20,33 @@ import os import sys try: - from setuptools import setup + from setuptools import setup except Exception as e: - from distutils.core import setup - + from distutils.core import setup -# Read version from VERSION created by cmake file. This file must be present for -# setup.cmake.py to work perfectly. script_dir = os.path.dirname( os.path.abspath( __file__ ) ) -version = None -with open( os.path.join( script_dir, 'VERSION'), 'r' ) as f: - version = f.read( ) +version = '3.2pre1' + + +try: + with open( os.path.join( script_dir, 'VERSION'), 'r' ) as f: + version = f.read( ) +except Exception as e: + print( 'Failed to read VERSION %s' % e ) + print( 'Using default %s' % version ) try: import importlib.machinery - suffix = importlib.machinery.EXTENSION_SUFFIXES[0] + suffix = importlib.machinery.EXTENSION_SUFFIXES[0].split('.')[-1] except Exception as e: - print( '[WARN] Failed to determine importlib suffix due to %s' % e ) + print( '[WARN] Failed to determine importlib suffix' ) suffix = '.so' setup( name='pymoose', version=version, description='Python scripting interface of MOOSE Simulator (https://moose.ncbs.res.in)', - author='See AUTHORS.md at https://github.com/BhallaLab/moose', + author='MOOSERes', author_email='bhalla@ncbs.res.in', maintainer='Dilawar Singh', maintainer_email='dilawars@ncbs.res.in', @@ -59,11 +61,9 @@ setup( , 'moose.chemUtil' , 'moose.chemMerge' ], - install_requires = [ 'python-libsbml', 'numpy' ], + install_requires = [ 'python-libsbml', 'numpy' ], package_dir = { 'moose' : 'moose', 'rdesigneur' : 'rdesigneur' }, - package_data = { - 'moose' : ['_moose' + suffix, 'neuroml2/schema/NeuroMLCoreDimensions.xml'] - }, - ) + package_data = { 'moose' : ['_moose' + suffix, 'neuroml2/schema/NeuroMLCoreDimensions.xml'] }, + )