diff --git a/.travis.yml b/.travis.yml index 473c14db8cd4127c1e8f27b2bdfccc8f3eaee700..8c33e46ff8823ade37439662f18135dd2bdc0182 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,29 +20,31 @@ env: - CTEST_MODEL=Nightly cache: apt -#matrix: -# allow_failures: -# - clang +matrix: + allow_failures: + - clang before_script: - sudo apt-get install -qq libxml2-dev libbz2-dev - sudo apt-get install -qq libhdf5-serial-dev - sudo apt-get install -qq make cmake - - sudo apt-get install -qq python-numpy python-matplotlib python-networkx - - sudo apt-get install -qq python3-numpy python3-matplotlib python3-dev + - sudo apt-get install -qq python-numpy python-matplotlib python-networkx + - sudo apt-get install -qq python3-numpy python3-matplotlib python3-dev - sudo apt-get install -qq libboost-all-dev - sudo apt-get install -qq libgsl0-dev - sudo apt-get install -qq python-pip python3-pip - sudo apt-get install -qq libgraphviz-dev - - # sudo pip install python-libsbml - - # sudo pip3 install python-libsbml - - # sudo pip3 install pygraphviz + - sudo pip install python-libsbml + - sudo pip3 install python-libsbml + - sudo pip3 install pygraphviz install: - echo "nothing to do here" script: - - # First test is normal make scripts. (outdated). + - First check no python3 incompatible file. + - python3 -m compileall -q . + - # Then run the old make scripts - make - ## CMAKE based flow - mkdir -p _GSL_BUILD && cd _GSL_BUILD && cmake -DDEBUG=ON -DPYTHON_EXECUTABLE=/usr/bin/python .. diff --git a/CMakeLists.txt b/CMakeLists.txt index 93810552e438a530a5a6888a870fa5e04b80cc9c..1be4010205191f76caaa704a2d46aaf7a248f170 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,37 +94,16 @@ option(DEBUG "Build with debug support" OFF) option(GPROF "Build for profiling using gprof" OFF) option(ENABLE_UNIT_TESTS "Enable unit tests (DEBUG should also be ON)" OFF) option(WITH_PYTHON "Build native python extension" ON) -option(WITH_CYTHON "Build python extension using Cython. (experimental)" OFF) option(WITH_MPI "Enable Openmpi support" OFF) option(WITH_BOOST "Use boost library instead of GSL" OFF) option(WITH_GSL "Use gsl-library. Alternative is WITH_BOOST" ON) -# If GSL_STATIC_HOME is set, we use it to search for static gsl libs. -option(GSL_STATIC_HOME - "Path prefix where static gsl library can be found e.g. /opt/sw/gsl116 " - OFF - ) -option(HDF5_STATIC_HOME - "Path prefix where static hdf5 library can be found e.g /opt/sw/hdf5 " - OFF - ) - ################################# CMKAE MACROS ################################# set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") ############################ BUILD CONFIGURATION ################################# -# VERBOSITY OF OUTPUT -if(VERBOSITY) - message(STATUS "Verbosity of output is ${VERBOSITY}. This is not implemented - yet!") - add_definitions(-DVERBOSITY=${VERBOSITY}) -else() - message(STATUS "Moose will be quiet") - add_definitions(-DQUIET_MODE) -endif() - # Default macros add_definitions(-DUSE_GENESIS_PARSER) @@ -178,42 +157,30 @@ include_directories(msg basecode) set_target_properties(libmoose PROPERTIES COMPILE_DEFINITIONS "MOOSE_LIB") set_target_properties(libmoose PROPERTIES PREFIX "") +## Variable to collect all static libraries. +set(STATIC_LIBRARIES "" ) +# Collect all shared libraries here. +set(SYSTEM_SHARED_LIBS ${LibXML2_LIBRARIES}) + if(WITH_GSL) - if(GSL_STATIC_HOME) - SET(GSL_INCLUDE_DIRS "${GSL_STATIC_HOME}/include") - find_library(GSL_LIBRARY - NAME libgsl.a - PATHS ${GSL_STATIC_HOME}/lib ${GSL_STATIC_HOME}/lib64 - NO_DEFAULT_PATH - ) - find_library(GSLCBLAS_LIBRARY - NAME libgslcblas.a - PATHS ${GSL_STATIC_HOME}/lib ${GSL_STATIC_HOME}/lib64 - NO_DEFAULT_PATH + find_package(GSL 1.16) + if(NOT GSL_FOUND) + message(FATAL_ERROR + "=====================================================================\n" + " FATAL gsl(>1.16) not found.\n\n" + " MOOSE requires Gnu Scientific Library (GSL) 1.16 or higher. \n" + " Please install the `dev` or `devel` package e.g. \n" + " $ sudo apt-get install libgsl0-dev \n" + " $ sudo yum install libgsl-devel \n" + " $ brew install gsl \n\n" + " Or build and install gsl from source code \n" + " https://www.gnu.org/software/gsl/ \n" + " After installing gsl, rerun cmake.\n\n" + " If you install gsl in non-standard place, set the GSL_HOME environment \n" + " variable. CMAKE use this to search for required files. \n" + "====================================================================\n" ) - SET(GSL_LIBRARIES ${GSL_LIBRARY} ${GSLCBLAS_LIBRARY}) - message(STATUS "STATIC GSL_LIBRARIES ${GSL_LIBRARIES}") - set(GSL_FOUND TRUE) - ELSE() - find_package(GSL 1.16) - if(NOT GSL_FOUND) - message(FATAL_ERROR - "=====================================================================\n" - " FATAL gsl(>1.16) not found.\n\n" - " MOOSE requires Gnu Scientific Library (GSL) 1.16 or higher. \n" - " Please install the `dev` or `devel` package e.g. \n" - " $ sudo apt-get install libgsl0-dev \n" - " $ sudo yum install libgsl-devel \n" - " $ brew install gsl \n\n" - " Or build and install gsl from source code \n" - " https://www.gnu.org/software/gsl/ \n" - " After installing gsl, rerun cmake.\n\n" - " If you install gsl in non-standard place, set the GSL_HOME environment \n" - " variable. CMAKE use this to search for required files. \n" - "====================================================================\n" - ) - endif(NOT GSL_FOUND) - endif() + endif(NOT GSL_FOUND) add_definitions(-DUSE_GSL) # GSL is also used in RNG (whenever applicable), therefore include paths are # top level. @@ -232,29 +199,8 @@ elseif(WITH_BOOST) endif(BOOST_RANDOM_DEVICE_EXISTS) endif() -## Setup hdf5 -if(HDF5_STATIC_HOME) - SET(HDF5_INCLUDE_DIRS "${HDF5_STATIC_HOME}/include") - find_library(HDF5_LIBRARY - NAME libhdf5-static.a - PATHS ${HDF5_STATIC_HOME}/lib ${HDF5_STATIC_HOME}/lib64 - NO_DEFAULT_PATH - ) - find_library(HDF5_HL_LIBRARY - NAME libhdf5_hl-static.a - PATHS ${HDF5_STATIC_HOME}/lib ${HDF5_STATIC_HOME}/lib64 - NO_DEFAULT_PATH - ) - SET(HDF5_LIBRARIES ${HDF5_LIBRARY} ${HDF5_HL_LIBRARY}) - SET(HDF5_FOUND TRUE) -ELSE(HDF5_STATIC_HOME) - pkg_check_modules(HDF5 hdf5) - if(NOT HDF5_FOUND) - message(STATUS "pkg-config could not find hdf5. fallback to default") - find_package(HDF5 COMPONENTS CXX HL REQUIRED) - endif() -endif(HDF5_STATIC_HOME) +find_package(HDF5 COMPONENTS CXX HL) if(NOT HDF5_FOUND) message( "==================================================================\n" @@ -269,18 +215,35 @@ if(NOT HDF5_FOUND) " variable HDF5_ROOT to the location. Rerun cmake \n" "================================================================ \n" ) -ELSEIF(HDF5_FOUND AND (NOT HDF5_STATIC_HOME)) - if(HDF5_HL_LIBRARIES) - set(HDF5_LIBRARIES ${HDF5_HL_LIBRARIES}) - else() - set(HDF5_LIBRARIES "-lhdf5 -lhdf5_hl") - endif() - include_directories(${HDF5_INCLUDE_DIRS}) endif(NOT HDF5_FOUND) if(HDF5_FOUND) - add_definitions( -DUSE_HDF5 ) include_directories( ${HDF5_INCLUDE_DIRS} ) + add_definitions( -DUSE_HDF5 ) + if(HDF5_USE_STATIC_LIBRARIES) + message(STATUS "Finding static HDF5 libraries in $ENV{HDF5_ROOT}") + find_library(HDF5_CXX_LIBRARIES NAMES libhdf5.a + PATHS $ENV{HDF5_ROOT}/lib $ENV{HDF5_ROOT}/lib64 + ) + find_library(HDF5_HL_LIBRARIES NAMES libhdf5_hl.a + PATHS $ENV{HDF5_ROOT}/lib $ENV{HDF5_ROOT}/lib64 + ) + endif() + + set(HDF5_LIBRARIES ${HDF5_CXX_LIBRARIES} ${HDF5_HL_LIBRARIES}) + message(STATUS "MOOSE will use ${HDF5_LIBRARIES}" ) + foreach(HDF5_LIB ${HDF5_LIBRARIES}) + if(HDF5_LIB) + get_filename_component( HDF5_LIB_EXT ${HDF5_LIB} EXT ) + if(HDF5_LIB_EXT) + if(${HDF5_LIB_EXT} STREQUAL ".a") + list(APPEND STATIC_LIBRARIES ${HDF5_LIB} ) + else( ) + list(APPEND SYSTEM_SHARED_LIBS ${HDF5_LIB} ) + endif( ) + endif() + endif( ) + endforeach( ) endif( HDF5_FOUND ) # This is a fix for new HDF5 package on Debian/Ubuntu which installs hdf5 @@ -313,64 +276,30 @@ if(WITH_MPI) endif() endif(WITH_MPI) -# Add subdirectroeis -add_subdirectory(basecode) -add_subdirectory(msg) -add_subdirectory(shell) -add_subdirectory(randnum) -add_subdirectory(scheduling) -add_subdirectory(biophysics) -add_subdirectory(builtins) -add_subdirectory(utility) -add_subdirectory(mesh) -add_subdirectory(mpi) -add_subdirectory(signeur) -add_subdirectory(ksolve) -add_subdirectory(hsolve) -add_subdirectory(diffusion) -add_subdirectory(device) -add_subdirectory(benchmarks) -add_subdirectory(kinetics) -add_subdirectory(synapse) -add_subdirectory(intfire) - -# These are always shared libraries. -set(SYSTEM_SHARED_LIBS ${LibXML2_LIBRARIES}) if(WITH_BOOST) list(APPEND SYSTEM_SHARED_LIBS ${LAPACK_LIBRARIES}) list(APPEND SYSTEM_SHARED_LIBS ${Boost_LIBRARIES}) endif(WITH_BOOST) -# These libraries could be static of dynamic. -# When building packages on OBS or launchpad, we build static library of a -# dependencies if a correct version is not found. -# Here we make sure that the correct static version is linked; if a correct -# shared version is found then link the shared version in SYSTEM_SHARED_LIBS. - -# If CMAKE_STATIC_LIBRARIES are mentiond on command line, use it as list. -set(STATIC_LIBRARIES "") - -if(HDF5_STATIC_HOME) - list(APPEND STATIC_LIBRARIES ${HDF5_LIBRARIES}) -elseif(HDF5_FOUND) - list(APPEND SYSTEM_SHARED_LIBS ${HDF5_LIBRARIES}) -endif() - +# These libraries could be static of dynamic. We need to discrimate between +# these two types because of --whole-archive option. See +# BhallaLab/moose-core#66, if(WITH_GSL) - if(GSL_STATIC_HOME) - message(STATUS "Using STATIC gsl libraries: ${GSL_LIBRARIES}") - list(APPEND STATIC_LIBRARIES ${GSL_LIBRARIES}) - else() - message(STATUS "Using system gsl : ${GSL_LIBRARIES}") - list(APPEND SYSTEM_SHARED_LIBS ${GSL_LIBRARIES}) - endif() + message(STATUS "Using STATIC gsl libraries: ${GSL_LIBRARIES}") + foreach(GSL_LIB ${GSL_LIBRARIES} ) + if(GSL_LIB) + get_filename_component( GSL_LIB_EXT ${GSL_LIB} EXT ) + if(GSL_LIB_EXT) + if(GSL_LIB_EXT STREQUAL ".a" ) + list(APPEND STATIC_LIBRARIES ${GSL_LIB}) + else() + list(APPEND SYSTEM_SHARED_LIBS ${GSL_LIB}) + endif( ) + endif( ) + endif( ) + endforeach( ) endif() -# Deprecated. -#if(READLINE_FOUND AND TERMCAP_FOUND) -# list(APPEND SYSTEM_SHARED_LIBS ${Readline_LIBRARY} ${TERMCAP_LIBRARY}) -#endif() - if(WITH_MPI) if(MPI_CXX_FOUND) list(APPEND SYSTEM_SHARED_LIBS ${MPI_CXX_LIBRARIES}) @@ -387,15 +316,26 @@ else() list(APPEND MOOSE_LIBRARIES muparser) endif() -#pkg_check_modules(TINYXML tinyxml) -#if(TINYXML_FOUND) - #message(STATUS "Using system tinyxml ${TINYXML_VERSION}") - #list(APPEND SYSTEM_SHARED_LIBS ${TINYXML_LIBRARIES}) -#else() - #message(STATUS "Using private tinyxml") - #add_subdirectory(external/tinyxml) - #list(APPEND MOOSE_LIBRARIES tinyxml) -#endif() +# Add subdirectroeis +add_subdirectory(basecode) +add_subdirectory(msg) +add_subdirectory(shell) +add_subdirectory(randnum) +add_subdirectory(scheduling) +add_subdirectory(biophysics) +add_subdirectory(builtins) +add_subdirectory(utility) +add_subdirectory(mesh) +add_subdirectory(mpi) +add_subdirectory(signeur) +add_subdirectory(ksolve) +add_subdirectory(hsolve) +add_subdirectory(diffusion) +add_subdirectory(device) +add_subdirectory(benchmarks) +add_subdirectory(kinetics) +add_subdirectory(synapse) +add_subdirectory(intfire) ###################################### LINKING ################################# list(APPEND MOOSE_LIBRARIES @@ -420,6 +360,11 @@ list(APPEND MOOSE_LIBRARIES basecode ) +# Make sure to remove duplicates. +list(REMOVE_DUPLICATES STATIC_LIBRARIES) +if(SYSTEM_SHARED_LIBS) + list(REMOVE_DUPLICATES SYSTEM_SHARED_LIBS) +endif( ) # MAC linker does not understand many of gnu-ld options. message( STATUS "Shared libs: ${SYSTEM_SHARED_LIBS}") @@ -446,13 +391,7 @@ endif(MACOSX) add_dependencies(moose.bin libmoose) -# This target is only for testing purpose. It links to libmoose. -if(CMAKE_VERSION VERSION_LESS "2.8.0") - message(STATUS "Using a fix for cmake ( < 2.8)") - target_link_libraries(moose.bin PUBLIC moose ${CMAKE_DL_LIBS}) -ELSE() - target_link_libraries(moose.bin LINK_PUBLIC moose ${CMAKE_DL_LIBS}) -ENDIF() +target_link_libraries(moose.bin LINK_PUBLIC moose ${CMAKE_DL_LIBS}) ######################### BUILD PYMOOSE ######################################## # Root of all python module. diff --git a/VERSION b/VERSION index 819720a6233f6ad3d6a233433f7e03e8a6d47442..bad061c1d8dde6d3f7b8f05cf11fa949eafa1642 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.1.0-123-g7805364 \ No newline at end of file +3.1.0-155-gb7f1834 \ No newline at end of file diff --git a/cmake_modules/FindGSL.cmake b/cmake_modules/FindGSL.cmake index 17260420fa97eb299391165b317f84ffd72c81bf..93c2686f78e6fbbdde540e86241d0995934c8813 100644 --- a/cmake_modules/FindGSL.cmake +++ b/cmake_modules/FindGSL.cmake @@ -1,147 +1,107 @@ -## -## Try to find gnu scientific library GSL -## (see http://www.gnu.org/software/gsl/) -## Once run this will define: -## -## GSL_FOUND = system has GSL lib -## -## GSL_LIBRARIES = full path to the libraries -## on Unix/Linux with additional linker flags from "gsl-config --libs" -## -## CMAKE_GSL_CXX_FLAGS = Unix compiler flags for GSL, essentially "`gsl-config --cxxflags`" -## -## GSL_INCLUDE_DIRS = where to find headers -## -## GSL_LINK_DIRECTORIES = link directories, useful for rpath on Unix -## GSL_EXE_LINKER_FLAGS = rpath on Unix -## -## Felix Woelk 07/2004 -## minor corrections Jan Woetzel -## -## www.mip.informatik.uni-kiel.de -## -------------------------------- -## - +# Try to find gnu scientific library GSL +# (see http://www.gnu.org/software/gsl/) +# Once run this will define: +# +# GSL_FOUND = system has GSL lib +# +# GSL_VERSION = gsl version +# +# GSL_LIBRARIES = name of the libraries. +# +# GSL_INCLUDE_DIRS = where to find headers +# +# GSL_USE_STATIC_LIBRARIES = Set it ON if you want to search for static +# libraries. +# +# Felix Woelk 07/2004 +# minor corrections Jan Woetzel +# +# www.mip.informatik.uni-kiel.de +# -------------------------------- +# +# Friday 18 November 2016 09:05:56 AM IST +# MODIFICATIONS: ## dilawars@ncbs.res.in, For the MOOSE project. +# This version does not use gsl-config file. +# + +# Set this envrionment variable to search in this path first. +SET(GSL_ROOT_DIR $ENV{GSL_ROOT_DIR}) +if(GSL_ROOT_DIR) + message( STATUS "Debug: GSL_ROOT_DIR value ${GSL_ROOT_DIR}") +endif(GSL_ROOT_DIR) IF(WIN32) - SET(GSL_MINGW_PREFIX "c:/msys/local" ) - SET(GSL_MSVC_PREFIX "$ENV{LIB_DIR}") - FIND_LIBRARY(GSL_LIB gsl PATHS - ${GSL_MINGW_PREFIX}/lib - ${GSL_MSVC_PREFIX}/lib - ) - #MSVC version of the lib is just called 'cblas' - FIND_LIBRARY(GSLCBLAS_LIB gslcblas cblas PATHS - ${GSL_MINGW_PREFIX}/lib - ${GSL_MSVC_PREFIX}/lib - ) - - FIND_PATH(GSL_INCLUDE_DIRS gsl/gsl_blas.h - ${GSL_MINGW_PREFIX}/include - ${GSL_MSVC_PREFIX}/include - ) + SET(GSL_MINGW_PREFIX "c:/msys/local" ) + SET(GSL_MSVC_PREFIX "$ENV{LIB_DIR}") + FIND_LIBRARY(GSL_LIB gsl PATHS + ${GSL_MINGW_PREFIX}/lib + ${GSL_MSVC_PREFIX}/lib + ) + #MSVC version of the lib is just called 'cblas' + FIND_LIBRARY(GSLCBLAS_LIB gslcblas cblas PATHS + ${GSL_MINGW_PREFIX}/lib + ${GSL_MSVC_PREFIX}/lib + ) + + FIND_PATH(GSL_INCLUDE_DIRS gsl/gsl_blas.h + ${GSL_MINGW_PREFIX}/include + ${GSL_MSVC_PREFIX}/include + ) + + IF (GSL_LIB AND GSLCBLAS_LIB) + SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB}) + ENDIF (GSL_LIB AND GSLCBLAS_LIB) - IF (GSL_LIB AND GSLCBLAS_LIB) - SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB}) - ENDIF (GSL_LIB AND GSLCBLAS_LIB) - ELSE(WIN32) - IF(UNIX) - SET(GSL_CONFIG_PREFER_PATH "$ENV{GSL_HOME}/bin") - # MESSAGE("++ DEBUG: GSL_CONFIG_PREFER_PATH: ${GSL_CONFIG_PREFER_PATH}") - - # GSL_CONFIG must be cleared. This script may be called again after installing - # the proper version of gsl - if(EXISTS "$ENV{GSL_HOME}") - set(GSL_CONFIG "$ENV{GSL_HOME}/bin/gsl-config") - MESSAGE(STATUS "gsl-config from environment variable: ${GSL_CONFIG}") - set(GSL_INCLUDE_DIRS) - set(GSL_LIBRARIES) - set(GSL_VERSION) - set(GSL_CONFIG_LIBS) - else() - FIND_PROGRAM(GSL_CONFIG gsl-config - ${GSL_CONFIG_PREFER_PATH} - $ENV{LIB_DIR}/bin - /usr/local/bin/ - /usr/bin/ - ) - endif() - IF (GSL_CONFIG) - # set CXXFLAGS to be fed into CXX_FLAGS by the user: - SET(GSL_CXX_FLAGS "`${GSL_CONFIG} --cflags`") - - # set INCLUDE_DIRS to prefix+include - EXEC_PROGRAM(${GSL_CONFIG} - ARGS --prefix - OUTPUT_VARIABLE GSL_PREFIX) - SET(GSL_INCLUDE_DIRS ${GSL_PREFIX}/include CACHE STRING INTERNAL) - - # set link libraries and link flags - EXEC_PROGRAM(${GSL_CONFIG} - ARGS --libs - OUTPUT_VARIABLE GSL_LIBRARIES) - - ## extract link dirs for rpath - EXEC_PROGRAM(${GSL_CONFIG} - ARGS --libs - OUTPUT_VARIABLE GSL_CONFIG_LIBS ) - - EXEC_PROGRAM(${GSL_CONFIG} - ARGS --version - OUTPUT_VARIABLE GSL_VERSION - ) - - ## split off the link dirs (for rpath) - ## use regular expression to match wildcard equivalent "-L*<endchar>" - ## with <endchar> is a space or a semicolon - STRING(REGEX MATCHALL "[-][L]([^ ;])+" - GSL_LINK_DIRECTORIES_WITH_PREFIX - "${GSL_CONFIG_LIBS}" ) - # MESSAGE("DBG GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}") - ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES - - IF (GSL_LINK_DIRECTORIES_WITH_PREFIX) - STRING(REGEX REPLACE "[-][L]" "" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} ) - ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX) - SET(GSL_EXE_LINKER_FLAGS "-Wl,-rpath,${GSL_LINK_DIRECTORIES}" CACHE STRING INTERNAL) - # MESSAGE("DBG GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}") - # MESSAGE("DBG GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}") + IF(GSL_USE_STATIC_LIBRARIES) + SET(GSL_LIB_NAMES libgsl.a) + SET(GSL_CBLAS_LIB_NAMES libgslcblas.a) + ELSE(GSL_USE_STATIC_LIBRARIES) + SET(GSL_LIB_NAMES gsl) + SET(GSL_CBLAS_LIB_NAMES gslcblas) + ENDIF( ) + + FIND_LIBRARY(GSL_LIB + NAMES ${GSL_LIB_NAMES} + PATHS + ${GSL_ROOT_DIR}/lib ${GSL_ROOT_DIR}/lib64 + /opt/lib /opt/lib64 + ) + + FIND_LIBRARY(GSLCBLAS_LIB + NAMES ${GSL_CBLAS_LIB_NAMES} + PATHS + ${GSL_ROOT_DIR}/lib ${GSL_ROOT_DIR}/lib64 + /opt/lib /opt/lib64 + ) + IF (GSL_LIB AND GSLCBLAS_LIB) + SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB}) + ENDIF (GSL_LIB AND GSLCBLAS_LIB) + + FIND_PATH(GSL_INCLUDE_DIRS NAMES gsl/gsl_blas.h + PATHS ${GSL_ROOT_DIR}/include /opt/include + ) - # ADD_DEFINITIONS("-DHAVE_GSL") - # SET(GSL_DEFINITIONS "-DHAVE_GSL") - MARK_AS_ADVANCED( - GSL_CXX_FLAGS - GSL_INCLUDE_DIRS - GSL_LIBRARIES - GSL_LINK_DIRECTORIES - GSL_DEFINITIONS - ) - - ELSE(GSL_CONFIG) - IF (GSL_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find gsl-config. Please set it manually. GSL_CONFIG=${GSL_CONFIG}") - ELSE (GSL_FIND_REQUIRED) - MESSAGE(STATUS "Could not find GSL") - # TODO: Avoid cmake complaints if GSL is not found - ENDIF (GSL_FIND_REQUIRED) - - ENDIF(GSL_CONFIG) - - ENDIF(UNIX) ENDIF(WIN32) - -IF(GSL_LIBRARIES) - IF(GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS) - - SET(GSL_FOUND 1) - - MESSAGE(STATUS "Using GSL from ${GSL_PREFIX}") - - ENDIF(GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS) -ENDIF(GSL_LIBRARIES) +# FIND version +if(GSL_INCLUDE_DIRS) + file(READ "${GSL_INCLUDE_DIRS}/gsl/gsl_version.h" GSL_VERSION_TEXT) + string(REGEX REPLACE ".*define[ ]+GSL_MAJOR_VERSION[ ]*([0-9]+).*" "\\1" + GSL_MAJOR_VERSION "${GSL_VERSION_TEXT}") + string(REGEX REPLACE ".*define[ ]+GSL_MINOR_VERSION[ ]*([0-9]+).*" "\\1" + GSL_MINOR_VERSION "${GSL_VERSION_TEXT}") + set(GSL_VERSION "${GSL_MAJOR_VERSION}.${GSL_MINOR_VERSION}") + message(STATUS "GSL version : ${GSL_VERSION}") +endif(GSL_INCLUDE_DIRS) + +IF(GSL_LIBRARIES AND GSL_VERSION) + IF(GSL_INCLUDE_DIRS) + MESSAGE(STATUS "Found GSL ${GSL_LIBRARIES}") + SET(GSL_FOUND 1) + ENDIF(GSL_INCLUDE_DIRS) +ENDIF() diff --git a/python/libmumbl/core/dynamic_vars.py b/python/libmumbl/core/dynamic_vars.py index b66a1e15f9fecb8dc07cb158f54c14d6d397d508..ae56381a9f295efff01e8ebc7903a78b1248a752 100644 --- a/python/libmumbl/core/dynamic_vars.py +++ b/python/libmumbl/core/dynamic_vars.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """dynamic_vars.py: Class to create variables out of strings. diff --git a/python/libmumbl/core/types.py b/python/libmumbl/core/types.py index a89ed84c602a21432623c4ae3986e83e8219d888..272ae847cf3c4969cdd7a24e82033bc6733f73cb 100644 --- a/python/libmumbl/core/types.py +++ b/python/libmumbl/core/types.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """types.py: Implement some data-types. diff --git a/python/libmumbl/helper/graph_methods.py b/python/libmumbl/helper/graph_methods.py index b5d1360bebc483841b9ed37ae1dee80b22f30f95..50c400ebed26d1b4c45629355f71d1a27a85fc87 100644 --- a/python/libmumbl/helper/graph_methods.py +++ b/python/libmumbl/helper/graph_methods.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + __author__ = "Dilawar Singh <dilawars@ncbs.res.in>" diff --git a/python/libmumbl/helper/moose_methods.py b/python/libmumbl/helper/moose_methods.py index bb6844800ffdb5788020a458c8535b63b99062a0..c5b0cb8f610b8ef924be8378756a37717ae28d17 100644 --- a/python/libmumbl/helper/moose_methods.py +++ b/python/libmumbl/helper/moose_methods.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """moose_methods.py: Some helper function related with moose to do multiscale modelling. diff --git a/python/libmumbl/helper/xml_methods.py b/python/libmumbl/helper/xml_methods.py index e848bfa4a33f8a838d8a97ed19d105dc9a60a74e..d3fb63948d8bd15db1e8bb5c266607c99e0d3204 100644 --- a/python/libmumbl/helper/xml_methods.py +++ b/python/libmumbl/helper/xml_methods.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + __author__ = "Dilawar Singh <dilawars@ncbs.res.in>" diff --git a/python/libmumbl/nml_parser/importer.py b/python/libmumbl/nml_parser/importer.py index 6beb6d1ced12e1c2eef5aab9066d43603d1be461..186f6a0a2f9dfb14eb0d673ccf2485b1a1085b45 100644 --- a/python/libmumbl/nml_parser/importer.py +++ b/python/libmumbl/nml_parser/importer.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + __author__ = "Dilawar Singh <dilawars@ncbs.res.in>" __date__ = "Mon 21 Oct 2013 11:37:01 PM IST" diff --git a/python/libmumbl/test/adaptor.py b/python/libmumbl/test/adaptor.py index 25f38feb888b49c34bf319e68a5c2290442243b9..51a55eb542754724086677f83aef2e6752dc0572 100644 --- a/python/libmumbl/test/adaptor.py +++ b/python/libmumbl/test/adaptor.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """adaptor.py: diff --git a/python/libmumbl/utility/debug.py b/python/libmumbl/utility/debug.py index 1fc31a8c47454cb41f8ed3b76d76a393578d5df8..f99de0219ba393c4cd74dc2fae5f363b3e7be1c5 100644 --- a/python/libmumbl/utility/debug.py +++ b/python/libmumbl/utility/debug.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """print_utils.py: A library with some print functions. Very useful during development. diff --git a/python/moose/methods_utils.py b/python/moose/methods_utils.py index 5eaa151940c519f6dd5829b51c8fb8dc352b29f3..91e49dccd0275c60e9133dc7457910ae12eea99e 100644 --- a/python/moose/methods_utils.py +++ b/python/moose/methods_utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """methods_utils.py: Some non-standard functions generic to moose. diff --git a/python/moose/neuroml2/generated_neuroml.py b/python/moose/neuroml2/generated_neuroml.py index e2d4c5a3dc294a7d877d1c2a7eb3d0b2c82e1584..0cbf3ffd2c854147cd5d8819fc15e37b9f3581b4 100644 --- a/python/moose/neuroml2/generated_neuroml.py +++ b/python/moose/neuroml2/generated_neuroml.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + # -*- coding: utf-8 -*- # diff --git a/python/moose/neuroml2/generated_neuromlsub.py b/python/moose/neuroml2/generated_neuromlsub.py index 3f066bdd3c82ad6b5cc8f46713147702ea289bdc..7e7957be79d98254c612e40fde43736a617f2f56 100644 --- a/python/moose/neuroml2/generated_neuromlsub.py +++ b/python/moose/neuroml2/generated_neuromlsub.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + # # Generated Sun Apr 17 15:01:32 2016 by generateDS.py version 2.22a. diff --git a/python/moose/neuroml2/test_files/Purk2M9s.nml.REMOVED.git-id b/python/moose/neuroml2/test_files/Purk2M9s.nml.REMOVED.git-id deleted file mode 100644 index 18e9dea465983b0318fe2d21ac0dce251313db97..0000000000000000000000000000000000000000 --- a/python/moose/neuroml2/test_files/Purk2M9s.nml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -511ab43e06697c5907ff335cdd26b31603cc281c \ No newline at end of file diff --git a/python/moose/plot_utils.py b/python/moose/plot_utils.py index b1438394d95c2b07464938f9cd6328ff5a63602a..b2740954dc10103f0c6e6f266ce08cb4cedeb315 100644 --- a/python/moose/plot_utils.py +++ b/python/moose/plot_utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """plot_utils.py: Some utility function for plotting data in moose. diff --git a/python/moose/sim_utils.py b/python/moose/sim_utils.py index 2e88a68c81e93a841b37f7b6796f17eb78f720f7..0fd637d7c74f56a7b8897b6d8e688275620d80bc 100644 --- a/python/moose/sim_utils.py +++ b/python/moose/sim_utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """sim_utils.py: Helper function related with simulation. diff --git a/python/moose/verification_utils.py b/python/moose/verification_utils.py index c5d52c8a50bbb334e31bda3d3d22604e3dfe9904..973c03f10fbb1643c34371fd06a1da0cef4a9334 100644 --- a/python/moose/verification_utils.py +++ b/python/moose/verification_utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python + """verification_utils.py: diff --git a/python/rdesigneur/cells/CA1.morph.xml.REMOVED.git-id b/python/rdesigneur/cells/CA1.morph.xml.REMOVED.git-id deleted file mode 100644 index b422b1923aa873b79c94dbcbfee4d8446a4cd6c0..0000000000000000000000000000000000000000 --- a/python/rdesigneur/cells/CA1.morph.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -dcae7ae96b2922a1e00f701d1ddbb26c114ae5d9 \ No newline at end of file diff --git a/python/rdesigneur/chans/CA1.morph.xml.REMOVED.git-id b/python/rdesigneur/chans/CA1.morph.xml.REMOVED.git-id deleted file mode 100644 index be0ea2fbad9b3ca316371d7290551bfc71c193ff..0000000000000000000000000000000000000000 --- a/python/rdesigneur/chans/CA1.morph.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -2a3815b394f8bcb4b6450081d9ba45d20abdf3cf \ No newline at end of file diff --git a/tests/python/neuroml/cells_channels/CA1.morph.bad.xml.REMOVED.git-id b/tests/python/neuroml/cells_channels/CA1.morph.bad.xml.REMOVED.git-id deleted file mode 100644 index 63d5e4e5efcb7a9a3f265da70a66ec6eb5ca31a1..0000000000000000000000000000000000000000 --- a/tests/python/neuroml/cells_channels/CA1.morph.bad.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -b7ea967caab7e1e55c783506429892b973da4e25 \ No newline at end of file diff --git a/tests/python/neuroml/cells_channels/CA1.morph.original.xml.REMOVED.git-id b/tests/python/neuroml/cells_channels/CA1.morph.original.xml.REMOVED.git-id deleted file mode 100644 index 6fe13999bd54341a6d5f021dfeb78b71b1cfff2d..0000000000000000000000000000000000000000 --- a/tests/python/neuroml/cells_channels/CA1.morph.original.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -68f982a3ed4e630891fd11c985fce9d7a3f44c39 \ No newline at end of file diff --git a/tests/python/neuroml/cells_channels/CA1.morph.xml.REMOVED.git-id b/tests/python/neuroml/cells_channels/CA1.morph.xml.REMOVED.git-id deleted file mode 100644 index 3e43c6549b5df684faabc501e7c4aacb26e6d756..0000000000000000000000000000000000000000 --- a/tests/python/neuroml/cells_channels/CA1.morph.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -074524a8ca7045254e3f75b817299f54beaf0096 \ No newline at end of file diff --git a/tests/python/neuroml/cells_channels/CA1_original.morph.xml.REMOVED.git-id b/tests/python/neuroml/cells_channels/CA1_original.morph.xml.REMOVED.git-id deleted file mode 100644 index 6fe13999bd54341a6d5f021dfeb78b71b1cfff2d..0000000000000000000000000000000000000000 --- a/tests/python/neuroml/cells_channels/CA1_original.morph.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -68f982a3ed4e630891fd11c985fce9d7a3f44c39 \ No newline at end of file diff --git a/tests/python/neuroml/cells_channels/CA1inhomog.morph.xml.REMOVED.git-id b/tests/python/neuroml/cells_channels/CA1inhomog.morph.xml.REMOVED.git-id deleted file mode 100644 index 07fc399ba363ea884f9d4a71d437a6c7680d1d6d..0000000000000000000000000000000000000000 --- a/tests/python/neuroml/cells_channels/CA1inhomog.morph.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -c4700d039b3549376c1ff8d7e9e938a674b05e23 \ No newline at end of file