diff --git a/CMakeLists.txt b/CMakeLists.txt index de60f326..bb324f12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ PROJECT(GoTools) -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) # Set version info SET(GoTools_VERSION_MAJOR 4) diff --git a/gotools-core/CMakeLists.txt b/gotools-core/CMakeLists.txt index de421047..090e13d7 100644 --- a/gotools-core/CMakeLists.txt +++ b/gotools-core/CMakeLists.txt @@ -98,73 +98,58 @@ if (GoTools_COPY_DATA) DESTINATION ${GoToolsCore_BINARY_DIR}/examples) endif() -# 'install' target -IF(WIN32) - # Windows - # lib - INSTALL(TARGETS GoToolsCore DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/ - DESTINATION ${GoTools_INSTALL_PREFIX}/include - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) -ELSE(WIN32) - # Linux - # lib - INSTALL(TARGETS GoToolsCore DESTINATION lib COMPONENT core) - # include - INSTALL(DIRECTORY include/ - DESTINATION include - COMPONENT core-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) -ENDIF(WIN32) +# Set default installation prefix +# IF(WIN32) +# SET(GoTools_INSTALL_PREFIX "$ENV{PROGRAMFILES}/SINTEF/GoTools" CACHE PATH "Path to install GoTools") +# ENDIF() +if(NOT DEFINED GoTools_INSTALL_PREFIX) + SET(GoTools_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Path to install GoTools") +endif() # === Install Targets and Export Package === - include(CMakePackageConfigHelpers) -# Install the GoToolsCore target with export set +# Install the GoToolsCore target install(TARGETS GoToolsCore EXPORT GoToolsCoreTargets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include + ARCHIVE DESTINATION ${GoTools_INSTALL_PREFIX}/lib + LIBRARY DESTINATION ${GoTools_INSTALL_PREFIX}/lib + RUNTIME DESTINATION ${GoTools_INSTALL_PREFIX}/bin + INCLUDES DESTINATION ${GoTools_INSTALL_PREFIX}/include ) # Install headers install(DIRECTORY include/ - DESTINATION include + DESTINATION ${GoTools_INSTALL_PREFIX}/include FILES_MATCHING PATTERN "*.h" ) -# Export the targets to a file +# Export the targets install(EXPORT GoToolsCoreTargets FILE GoToolsCoreTargets.cmake - #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoToolsCore + DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore ) -# Generate and install the Config and Version files +# Generate version file write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfigVersion.cmake" VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} COMPATIBILITY SameMajorVersion ) +# Generate config file from template configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoToolsCoreConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoToolsCore + INSTALL_DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore ) +# Install the config files install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfigVersion.cmake" - DESTINATION lib/cmake/GoToolsCore + DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore ) +# Optional stripping SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoToolsCore.so) diff --git a/lrsplines2D/CMakeLists.txt b/lrsplines2D/CMakeLists.txt index 7c2b7f48..d6335c6f 100644 --- a/lrsplines2D/CMakeLists.txt +++ b/lrsplines2D/CMakeLists.txt @@ -6,10 +6,10 @@ IF(GoTools_ENABLE_OPENMP) FIND_PACKAGE(OpenMP REQUIRED) ENDIF(GoTools_ENABLE_OPENMP) #set(Boost_DEBUG ON) + FIND_PACKAGE(Boost COMPONENTS timer REQUIRED) # Include directories - INCLUDE_DIRECTORIES( ${GoLRspline2D_SOURCE_DIR}/include ${GoToolsCore_SOURCE_DIR}/include @@ -18,48 +18,28 @@ INCLUDE_DIRECTORIES( ) ADD_COMPILE_DEFINITIONS(BOOST_TIMER_SOURCE) - ADD_COMPILE_DEFINITIONS(BOOST_CHRONO_HEADER_ONLY) # Linked in libraries -# message("Boost_USE_STATIC_LIBS: ${Boost_USE_STATIC_LIBS}") SET(DEPLIBS GoToolsCore sisl - ) -# message("DEPLIBS: ${DEPLIBS}") -# Make the GoLRspline2D library +) FILE(GLOB_RECURSE GoLRspline2D_SRCS src/*.C include/*.h) if (BUILD_AS_SHARED_LIBRARY) ADD_LIBRARY(GoLRspline2D SHARED ${GoLRspline2D_SRCS}) -else (BUILD_AS_SHARED_LIBRARY) +else () ADD_LIBRARY(GoLRspline2D ${GoLRspline2D_SRCS}) -endif (BUILD_AS_SHARED_LIBRARY) +endif () TARGET_LINK_LIBRARIES(GoLRspline2D ${DEPLIBS}) -SET_PROPERTY(TARGET GoLRspline2D - PROPERTY FOLDER "GoLRspline2D/Libs") +SET_PROPERTY(TARGET GoLRspline2D PROPERTY FOLDER "GoLRspline2D/Libs") SET_TARGET_PROPERTIES(GoLRspline2D PROPERTIES SOVERSION ${GoTools_ABI_VERSION}) IF(GoTools_ENABLE_OPENMP) SET_TARGET_PROPERTIES(GoLRspline2D PROPERTIES COMPILE_FLAGS "${OpenMP_CXX_FLAGS}") SET_TARGET_PROPERTIES(GoLRspline2D PROPERTIES LINK_FLAGS "${OpenMP_CXX_FLAGS}") ENDIF(GoTools_ENABLE_OPENMP) - -#message(STATUS ${GoLRspline2D_SRCS}) - - -# # Make the LRSplinePlotUtils library - -# FILE(GLOB_RECURSE LRspline2D_SRCS src/*.C include/*.h) -# ADD_LIBRARY(GoLRspline2D ${GoLRspline2D_SRCS}) -# TARGET_LINK_LIBRARIES(GoLRspline2D ${DEPLIBS}) -# SET_PROPERTY(TARGET GoLRspline2D -# PROPERTY FOLDER "GoLRspline2D/Libs") - - -# Apps, examples, tests, ...? - # Apps and tests MACRO(ADD_APPS SUBDIR PROPERTY_FOLDER IS_TEST) FILE(GLOB_RECURSE GoLRspline2D_APPS ${SUBDIR}/*.C) @@ -67,112 +47,83 @@ MACRO(ADD_APPS SUBDIR PROPERTY_FOLDER IS_TEST) GET_FILENAME_COMPONENT(appname ${app} NAME_WE) ADD_EXECUTABLE(${appname} ${app}) TARGET_LINK_LIBRARIES(${appname} GoLRspline2D ${DEPLIBS}) - SET_TARGET_PROPERTIES(${appname} - PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SUBDIR}) - SET_PROPERTY(TARGET ${appname} - PROPERTY FOLDER "GoLRspline2D/${PROPERTY_FOLDER}") + SET_TARGET_PROPERTIES(${appname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SUBDIR}) + SET_PROPERTY(TARGET ${appname} PROPERTY FOLDER "GoLRspline2D/${PROPERTY_FOLDER}") IF(${IS_TEST}) - ADD_TEST(${appname} ${SUBDIR}/${appname} - --log_format=XML --log_level=all --log_sink=../Testing/${appname}.xml) - SET_TESTS_PROPERTIES( ${appname} PROPERTIES LABELS "${SUBDIR}" ) - ENDIF(${IS_TEST}) - ENDFOREACH(app) -ENDMACRO(ADD_APPS) + ADD_TEST(${appname} ${SUBDIR}/${appname} --log_format=XML --log_level=all --log_sink=../Testing/${appname}.xml) + SET_TESTS_PROPERTIES(${appname} PROPERTIES LABELS "${SUBDIR}") + ENDIF() + ENDFOREACH() +ENDMACRO() IF(GoTools_COMPILE_APPS) SET(DEPLIBS ${DEPLIBS} ${Boost_LIBRARIES}) FILE(GLOB_RECURSE GoLRspline2D_APPS app/*.C) FOREACH(app ${GoLRspline2D_APPS}) GET_FILENAME_COMPONENT(appname ${app} NAME_WE) - # message(STATUS ${appname}) - # message(STATUS ${app}) ADD_EXECUTABLE(${appname} ${app}) TARGET_LINK_LIBRARIES(${appname} GoLRspline2D ${DEPLIBS}) - SET_TARGET_PROPERTIES(${appname} - PROPERTIES RUNTIME_OUTPUT_DIRECTORY app) + SET_TARGET_PROPERTIES(${appname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY app) IF(GoTools_ENABLE_OPENMP) SET_TARGET_PROPERTIES(${appname} PROPERTIES COMPILE_FLAGS "${OpenMP_CXX_FLAGS}") SET_TARGET_PROPERTIES(${appname} PROPERTIES LINK_FLAGS "${OpenMP_CXX_FLAGS}") - ENDIF(GoTools_ENABLE_OPENMP) - SET_PROPERTY(TARGET ${appname} - PROPERTY FOLDER "GoLRspline2D/Apps") - ENDFOREACH(app) + ENDIF() + SET_PROPERTY(TARGET ${appname} PROPERTY FOLDER "GoLRspline2D/Apps") + ENDFOREACH() FILE(GLOB_RECURSE GoLRspline2D_EXAMPLES examples/*.C) FOREACH(app ${GoLRspline2D_EXAMPLES}) GET_FILENAME_COMPONENT(appname ${app} NAME_WE) ADD_EXECUTABLE(${appname} ${app}) TARGET_LINK_LIBRARIES(${appname} GoLRspline2D ${DEPLIBS}) - SET_TARGET_PROPERTIES(${appname} - PROPERTIES RUNTIME_OUTPUT_DIRECTORY examples) + SET_TARGET_PROPERTIES(${appname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY examples) IF(GoTools_ENABLE_OPENMP) SET_TARGET_PROPERTIES(${appname} PROPERTIES COMPILE_FLAGS "${OpenMP_CXX_FLAGS}") SET_TARGET_PROPERTIES(${appname} PROPERTIES LINK_FLAGS "${OpenMP_CXX_FLAGS}") - ENDIF(GoTools_ENABLE_OPENMP) - SET_PROPERTY(TARGET ${appname} - PROPERTY FOLDER "GoLRspline2D/Examples") - ENDFOREACH(app) -ENDIF(GoTools_COMPILE_APPS) - + ENDIF() + SET_PROPERTY(TARGET ${appname} PROPERTY FOLDER "GoLRspline2D/Examples") + ENDFOREACH() +ENDIF() IF(GoTools_COMPILE_TESTS) SET(DEPLIBS ${DEPLIBS} ${Boost_LIBRARIES}) ADD_APPS(test/unit "Unit Tests" TRUE) ADD_APPS(test/integration "Integration Tests" TRUE) ADD_APPS(test/acceptance "Acceptance Tests" TRUE) -ENDIF(GoTools_COMPILE_TESTS) +ENDIF() # Create a tmp directory. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp) # Copy data if (GoTools_COPY_DATA) - FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../gotools-data/lrsplines2D/data - DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../gotools-data/lrsplines2D/data DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) endif() -# 'install' target - -IF(WIN32) - # Windows - # lib - INSTALL(TARGETS GoLRspline2D DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/lrsplines2D - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) -ELSE(WIN32) - # Linux - # lib - INSTALL(TARGETS GoLRspline2D DESTINATION lib COMPONENT lrsplines2D) - # include - INSTALL(DIRECTORY include/GoTools/lrsplines2D - DESTINATION include/GoTools - COMPONENT lrsplines2D-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) -ENDIF(WIN32) - # === Install and Export CMake Config Package === +# if(NOT DEFINED GoTools_INSTALL_PREFIX) +# set(GoTools_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +# endif() +if(NOT DEFINED GoTools_INSTALL_PREFIX) + SET(GoTools_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Path to install GoTools") +endif() + include(CMakePackageConfigHelpers) # Install the GoLRspline2D target install(TARGETS GoLRspline2D EXPORT GoLRspline2DTargets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include + ARCHIVE DESTINATION ${GoTools_INSTALL_PREFIX}/lib + LIBRARY DESTINATION ${GoTools_INSTALL_PREFIX}/lib + RUNTIME DESTINATION ${GoTools_INSTALL_PREFIX}/bin + INCLUDES DESTINATION ${GoTools_INSTALL_PREFIX}/include ) # Export the target without namespace install(EXPORT GoLRspline2DTargets FILE GoLRsplines2DTargets.cmake - DESTINATION lib/cmake/GoLRsplines2D + DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D ) # Generate the version file for find_package() @@ -186,14 +137,14 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoLRsplines2DConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoLRsplines2D + INSTALL_DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D ) # Install the generated config files install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfigVersion.cmake" - DESTINATION lib/cmake/GoLRsplines2D + DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoLRspline2D.so) diff --git a/sisl b/sisl index f4c94502..c9405f5e 160000 --- a/sisl +++ b/sisl @@ -1 +1 @@ -Subproject commit f4c94502c13da57d78d501aad0e72a1e8257b5b3 +Subproject commit c9405f5e9a6fd591538094b07d5ba53b7a2d5f3e