Skip to content
Snippets Groups Projects
Commit 05b1e119 authored by Thomas Purcell's avatar Thomas Purcell
Browse files

Update cmake files to see if it will fix some of the pytest issues

parent 7c7ec853
Branches
No related tags found
No related merge requests found
......@@ -17,7 +17,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# compiler options
option(EXTERNAL_BOOST "Use an external boost library" OFF)
option(EXTERNAL_BOOST "Use an external boost library" ON)
option(USE_PYTHON "Whether to compile with python binding support" OFF)
if(USE_PYTHON)
......@@ -135,7 +135,7 @@ else(EXTERNAL_BOOST)
set(Boost_SHA1 "18863a7cae4d58ae85eb63d400f774f60a383411")
set(Boost_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/boost)
set(Boost_INCLUDE_DIRS ${Boost_INSTALL_DIR}/include)
set(Boost_LIBARY_DIRS ${Boost_INSTALL_DIR}/lib)
set(Boost_LIBRARY_DIRS ${Boost_INSTALL_DIR}/lib)
string(COMPARE EQUAL ${CMAKE_CXX_COMPILER_ID} "Absoft" ABSOFT_COMP)
string(COMPARE EQUAL ${CMAKE_CXX_COMPILER_ID} "ADSP" ADSP_COMP)
......@@ -223,44 +223,44 @@ else(EXTERNAL_BOOST)
set( Boost_LIBRARY_PREFIX lib )
add_library( boost::mpi SHARED IMPORTED )
set_property( TARGET boost::mpi PROPERTY IMPORTED_LOCATION ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_mpi${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::mpi PROPERTY IMPORTED_LOCATION ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_mpi${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::mpi PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS} )
add_dependencies( boost::mpi external_boost )
add_library( boost::serialization SHARED IMPORTED )
set_property( TARGET boost::serialization PROPERTY IMPORTED_LOCATION ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_serialization${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::serialization PROPERTY IMPORTED_LOCATION ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_serialization${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::serialization PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS} )
add_dependencies( boost::serialization external_boost )
add_library( boost::system SHARED IMPORTED )
set_property( TARGET boost::system PROPERTY IMPORTED_LOCATION ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_system${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::system PROPERTY IMPORTED_LOCATION ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_system${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::system PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS} )
add_dependencies( boost::system external_boost )
add_library( boost::filesystem SHARED IMPORTED )
set_property( TARGET boost::filesystem PROPERTY IMPORTED_LOCATION ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_filesystem${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::filesystem PROPERTY IMPORTED_LOCATION ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_filesystem${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::filesystem PROPERTY INTERFACE_LINK_LIBRARIES boost::system )
set_property( TARGET boost::filesystem PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS} )
add_dependencies( boost::filesystem external_boost )
set(Boost_LIBS ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_mpi${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_serialization${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_system${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_filesystem${Boost_LIBRARY_SUFFIX})
set(Boost_LIBS ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_mpi${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_serialization${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_system${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_filesystem${Boost_LIBRARY_SUFFIX})
if(USE_PYTHON)
add_library( boost::python${BOOST_PYTHON_VERSION} SHARED IMPORTED )
set_property( TARGET boost::python${BOOST_PYTHON_VERSION} PROPERTY IMPORTED_LOCATION ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_python${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::python${BOOST_PYTHON_VERSION} PROPERTY IMPORTED_LOCATION ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_python${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::python${BOOST_PYTHON_VERSION} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS} )
add_dependencies( boost::python${BOOST_PYTHON_VERSION} external_boost )
add_library( boost::numpy${BOOST_PYTHON_VERSION} SHARED IMPORTED )
set_property( TARGET boost::numpy${BOOST_PYTHON_VERSION} PROPERTY IMPORTED_LOCATION ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_numpy${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::numpy${BOOST_PYTHON_VERSION} PROPERTY IMPORTED_LOCATION ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_numpy${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX} )
set_property( TARGET boost::numpy${BOOST_PYTHON_VERSION} PROPERTY INTERFACE_LINK_LIBRARIES boost::system )
set_property( TARGET boost::numpy${BOOST_PYTHON_VERSION} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS} )
add_dependencies( boost::numpy${BOOST_PYTHON_VERSION} external_boost )
list(APPEND Boost_LIBS ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_python${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_numpy${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_python${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX})
list(APPEND Boost_LIBS ${Boost_LIBRARY_DIRS}/${Boost_LIBRARY_PREFIX}boost_numpy${BOOST_PYTHON_VERSION}${Boost_LIBRARY_SUFFIX})
endif()
endif()
......@@ -271,11 +271,20 @@ if(NOT LAPACK_FOUND)
set(BLA_VENDOR All)
find_package(LAPACK REQUIRED)
endif()
message(STATUS "LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}")
list(GET LAPACK_LIBRARIES 0 LAPACK_LIBRARY)
get_filename_component(LAPACK_DIR ${LAPACK_LIBRARY} DIRECTORY)
message(STATUS "LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}")
if(USE_PYTHON)
foreach(LIB ${LAPACK_LIBRARIES})
get_filename_component(LAPACK_FILE ${LIB} NAME)
list(APPEND PYTHON_LAPACK_LIBRARIES ${LAPACK_FILE})
endforeach()
endif()
# Check MPI
find_package(MPI REQUIRED)
include_directories(${MPI_CXX_INCLUDE_DIRS})
......@@ -283,9 +292,9 @@ set(MPI_LIBRARIES, ${MPI_CXX_LIBRARIES})
list(GET MPI_CXX_LIBRARIES 0 MPI_LIBRARY)
get_filename_component(MPI_DIR ${MPI_LIBRARY} DIRECTORY)
# Set CMAKE_INSTALL_RPATH
set(CMAKE_INSTALL_RPATH ${Boost_LIBARY_DIRS};${LAPACK_DIR};${PYTHON_LIBDIR};${MPI_DIR})
# set(CMAKE_INSTALL_RPATH ${Boost_LIBRARY_DIRS};${LAPACK_DIR};${PYTHON_LIBDIR};${MPI_DIR})
include_directories(${CMAKE_CURRENT_LIST_DIR}/src)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/src)
......@@ -4,3 +4,4 @@
set(CMAKE_CXX_COMPILER g++ CACHE STRING "")
set(CMAKE_CXX_FLAGS "-O2" CACHE STRING "")
set(USE_PYTHON ON CACHE BOOL "")
#set(EXTERNAL_BOOST ON CACHE BOOL "")
......@@ -12,6 +12,9 @@ include_directories(${CMAKE_CURRENT_LIST_DIR}/mpi_interface/)
include_directories(${CMAKE_CURRENT_LIST_DIR}/python/)
include_directories(${CMAKE_CURRENT_LIST_DIR}/utils/)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
set(CMAKE_INSTALL_RPATH ${Boost_LIBRARY_DIRS};${LAPACK_DIR};${MPI_DIR})
# set(INSTALL_RPATH ${Boost_LIB_DIR})
file(GLOB_RECURSE SISSOPP_SOURCES *.cpp)
file(GLOB_RECURSE NOT_SISSOPP_SOURCES python/*.cpp)
......@@ -27,11 +30,12 @@ set_target_properties(sisso++
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
target_link_libraries(sisso++ ${LAPACK_LIBRARIES} ${MPI_LIBRARIES} ${PYTHON_LIBRARIES} -Wl,--rpath=${Boost_LIB_DIR} ${Boost_LIBS})
target_link_libraries(sisso++ ${LAPACK_LIBRARIES} ${MPI_LIBRARIES} -Wl,--rpath=${Boost_LIB_DIR} -Wl,--rpath=${LAPACK_DIR} ${Boost_LIBS})
install(TARGETS sisso++ DESTINATION ${CMAKE_CURRENT_LIST_DIR}/../bin/)
if(USE_PYTHON)
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/TransferDocStrings.cmake)
set(CMAKE_INSTALL_RPATH "${Boost_LIBRARY_DIRS};${PYTHON_LIBDIR};${MPI_DIR}")
file(GLOB_RECURSE SISSOLIB_SOURCES *.cpp)
list(REMOVE_ITEM SISSOLIB_SOURCES ${CMAKE_CURRENT_LIST_DIR}/main.cpp)
list(REMOVE_ITEM SISSOLIB_SOURCES ${CMAKE_CURRENT_LIST_DIR}/python/bindings_docstring_keyed.cpp)
......@@ -40,7 +44,7 @@ if(USE_PYTHON)
transfer_doc_string(${CMAKE_CURRENT_LIST_DIR}/python/bindings_docstring_keyed.cpp ${CMAKE_CURRENT_LIST_DIR}/python/bindings.cpp)
transfer_doc_string(${CMAKE_CURRENT_LIST_DIR}/python/bindings_docstring_keyed.hpp ${CMAKE_CURRENT_LIST_DIR}/python/bindings.hpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPY_BINDINGS")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPY_BINDINGS")
add_library(_sisso SHARED ${SISSOLIB_SOURCES})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/python/__init__.py ${CMAKE_CURRENT_LIST_DIR}/python/__init__.py COPYONLY)
......@@ -50,10 +54,11 @@ if(USE_PYTHON)
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
COMPILE_DEFINITIONS "PY_BINDINGS"
PREFIX ""
SUFFIX ".so"
)
target_link_libraries(_sisso ${LAPACK_LIBRARIES} ${MPI_LIBRARIES} ${PYTHON_LIBRARIES} -Wl,--rpath=${Boost_LIB_DIR} ${Boost_LIBS})
target_link_libraries(_sisso ${MPI_LIBRARIES} ${PYTHON_LAPACK_LIBRARIES} ${PYTHON_LIBRARIES} -Wl,--rpath=${Boost_LIB_DIR} ${Boost_LIBS})
install(TARGETS _sisso DESTINATION "${PYTHON_INSTDIR}/sisso")
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/python/ DESTINATION ${PYTHON_INSTDIR}/sisso
FILES_MATCHING PATTERN "*.py"
......
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment