From 9178b5ef0ef59c8a6dd5ca114a13d11e473edb69 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Wed, 15 Apr 2026 20:29:55 +0200 Subject: [PATCH] work on cleaner cmake. --- CMakeLists.txt | 49 ++++---- cmake/FindFFTW3.cmake | 4 +- src/CMakeLists.txt | 25 ++-- src/classes/CMakeLists.txt | 30 +++-- src/external/BMWtools/CMakeLists.txt | 16 +-- src/external/DepthProfile/src/CMakeLists.txt | 24 ++-- src/external/DummyUserFcn/src/CMakeLists.txt | 16 +-- src/external/MagProximity/CMakeLists.txt | 24 ++-- .../Class_MuSR_PSI/CMakeLists.txt | 24 ++-- src/external/MusrRoot/CMakeLists.txt | 15 ++- src/external/Nonlocal/CMakeLists.txt | 24 ++-- src/external/Nonlocal/prog/CMakeLists.txt | 11 +- src/external/TLemRunHeader/CMakeLists.txt | 15 ++- src/external/libBNMR/CMakeLists.txt | 14 +-- .../libBNMR/libLineProfile/CMakeLists.txt | 14 +-- .../libCalcMeanFieldsLEM/CMakeLists.txt | 16 +-- src/external/libCuba/src/CMakeLists.txt | 12 +- .../libFitPofB/classes/CMakeLists.txt | 8 +- src/external/libGapIntegrals/CMakeLists.txt | 20 ++-- src/external/libGbGLF/CMakeLists.txt | 18 +-- src/external/libLFRelaxation/CMakeLists.txt | 12 +- .../libPhotoMeissner/classes/CMakeLists.txt | 28 +++-- .../libSpinValve/classes/CMakeLists.txt | 24 ++-- src/external/libZFRelaxation/CMakeLists.txt | 16 +-- src/external/mud/src/CMakeLists.txt | 6 +- src/external/nexus/CMakeLists.txt | 6 +- src/musredit_qt5/mupp/CMakeLists.txt | 4 +- src/musredit_qt5/mupp/plotter/CMakeLists.txt | 8 +- src/musredit_qt5/musrStep/CMakeLists.txt | 4 +- src/musredit_qt5/musrWiz/CMakeLists.txt | 4 +- src/musredit_qt5/musredit/CMakeLists.txt | 10 +- src/musredit_qt6/mupp/CMakeLists.txt | 4 +- src/musredit_qt6/mupp/plotter/CMakeLists.txt | 8 +- src/musredit_qt6/musrStep/CMakeLists.txt | 4 +- src/musredit_qt6/musrWiz/CMakeLists.txt | 4 +- src/musredit_qt6/musredit/CMakeLists.txt | 10 +- src/tests/nonlocal/CMakeLists.txt | 112 +++++++++--------- src/tests/vortex-film/CMakeLists.txt | 94 +++++++++++++++ 38 files changed, 426 insertions(+), 311 deletions(-) create mode 100644 src/tests/vortex-film/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index af5db7f33..76d3e0143 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,12 @@ endif () project(musrfit VERSION 1.10.0 LANGUAGES C CXX) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +include(GNUInstallDirs) + #--- musrfit specific options ------------------------------------------------- option(dks "build musrfit with DKS (GPU/MIC) support" ON) option(nexus "build optional NeXus support. Needed for ISIS" OFF) @@ -79,11 +85,6 @@ find_package(Git REQUIRED) #--- check for ROOT ----------------------------------------------------------- find_package(ROOT 6.16 REQUIRED COMPONENTS Gui MathMore Minuit2 XMLParser) if (ROOT_mathmore_FOUND) - execute_process(COMMAND root-config --bindir OUTPUT_VARIABLE ROOT_BINDIR) - string(STRIP ${ROOT_BINDIR} ROOT_BINDIR) - execute_process(COMMAND root-config --version OUTPUT_VARIABLE ROOT_VERSION) - string(STRIP ${ROOT_VERSION} ROOT_VERSION) - message("-- Found ROOT: ${ROOT_BINDIR} (found version: ${ROOT_VERSION})") #---Define useful ROOT functions and macros (e.g. ROOT_GENERATE_DICTIONARY) include(${ROOT_USE_FILE}) endif (ROOT_mathmore_FOUND) @@ -100,16 +101,11 @@ set(ROOT_GRTEQ_24 ${ROOT_GRTEQ_24} CACHE INTERNAL "ROOT Version check") #--- check for boost ---------------------------------------------------------- find_package(Boost QUIET) if (Boost_VERSION VERSION_GREATER_EQUAL "1.89") - find_package(Boost REQUIRED - COMPONENTS - filesystem - ) + find_package(Boost REQUIRED COMPONENTS filesystem) + set(BOOST_LINK_LIBS Boost::filesystem) else (Boost_VERSION VERSION_GREATER_EQUAL "1.89") - find_package(Boost REQUIRED - COMPONENTS - system - filesystem - ) + find_package(Boost REQUIRED COMPONENTS system filesystem) + set(BOOST_LINK_LIBS Boost::filesystem Boost::system) endif (Boost_VERSION VERSION_GREATER_EQUAL "1.89") message(STATUS "Boost libs: ${Boost_LIBRARIES}") @@ -126,7 +122,7 @@ find_package(LibXml2 REQUIRED) if (try_OpenMP) find_package(OpenMP) if (OpenMP_CXX_FOUND) - add_definitions(-DHAVE_GOMP) + add_compile_definitions(HAVE_GOMP) set(HAVE_GOMP 1 CACHE INTERNAL "Have GOMP") endif (OpenMP_CXX_FOUND) endif (try_OpenMP) @@ -256,18 +252,15 @@ if (nexus) # Find HDF4 manually (pkg-config often doesn't have hdf4) find_path(HDF4_INCLUDE_DIR NAMES mfhdf.h - PATHS /usr/include /usr/include/hdf /usr/local/include PATH_SUFFIXES hdf ) find_library(HDF4_DF_LIBRARY NAMES df libdf - PATHS /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib ) find_library(HDF4_MFHDF_LIBRARY NAMES mfhdf libmfhdf - PATHS /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib ) if (HDF4_INCLUDE_DIR AND HDF4_DF_LIBRARY AND HDF4_MFHDF_LIBRARY) @@ -280,9 +273,9 @@ if (nexus) message(FATAL_ERROR "HDF4 library not found. Please install libhdf4-dev or hdf-devel") endif() - add_definitions(-DHAVE_HDF4) - endif (HAVE_HDF4) - add_definitions(-DPNEXUS_ENABLED) + add_compile_definitions(HAVE_HDF4) + endif (HAVE_HDF4) + add_compile_definitions(PNEXUS_ENABLED) endif (nexus) #--- check for Cuba lib if BMWlibs are enabled -------------------------------- @@ -335,9 +328,11 @@ list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" if("${isSystemDir}" STREQUAL "-1") set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") endif("${isSystemDir}" STREQUAL "-1") -set(rpath ${CMAKE_INSTALL_RPATH}) -string(APPEND rpath ";/usr/local/lib") -set(CMAKE_INSTALL_RPATH "${rpath}") +if (UNIX) + set(rpath ${CMAKE_INSTALL_RPATH}) + string(APPEND rpath ";/usr/local/lib") + set(CMAKE_INSTALL_RPATH "${rpath}") +endif () #--- propagate to the sub-directories ----------------------------------------- add_subdirectory(src) @@ -507,7 +502,7 @@ include(CMakePackageConfigHelpers) configure_package_config_file( ${CMAKE_SOURCE_DIR}/cmake/musrfitConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/musrfitConfig.cmake - INSTALL_DESTINATION lib/cmake/musrfit + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/musrfit ) write_basic_package_version_file( @@ -520,14 +515,14 @@ install( EXPORT musrfitTargets FILE musrfitTargets.cmake NAMESPACE musrfit:: - DESTINATION lib/cmake/musrfit + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/musrfit ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/musrfitConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/musrfitConfigVersion.cmake - DESTINATION lib/cmake/musrfit + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/musrfit ) #--- cpack specific info ...................................................... diff --git a/cmake/FindFFTW3.cmake b/cmake/FindFFTW3.cmake index e617af27c..ef9f1594b 100644 --- a/cmake/FindFFTW3.cmake +++ b/cmake/FindFFTW3.cmake @@ -74,9 +74,7 @@ endfunction() #as35 return() #as35 endif() -find_path(FFTW3_INCLUDE NAMES fftw3.h - HINTS "/usr/include" "/opt/local/include" "/app/include" -) +find_path(FFTW3_INCLUDE NAMES fftw3.h) find_library(FFTW3_LIBRARY fftw3) find_library(FFTW3_OMP_LIBRARY fftw3_omp) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 69ba03e24..6ac26ca72 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,15 +12,16 @@ elseif (QT_FOUND) endif () #--- define the musrfit libs -------------------------------------------------- -set(MUSRFIT_LIBS ${MUSRFIT_LIBS} mud) -set(MUSRFIT_LIBS ${MUSRFIT_LIBS} TMusrRunHeader) -set(MUSRFIT_LIBS ${MUSRFIT_LIBS} TLemRunHeader) -set(MUSRFIT_LIBS ${MUSRFIT_LIBS} Class_MuSR_PSI) +set(MUSRFIT_LIBS + mud + TMusrRunHeader + TLemRunHeader + Class_MuSR_PSI + PMusr +) if (nexus) - set(MUSRFIT_LIBS ${MUSRFIT_LIBS} ${NEXUS_LIBRARY}) - set(MUSRFIT_LIBS ${MUSRFIT_LIBS} PNeXus) + list(APPEND MUSRFIT_LIBS ${NEXUS_LIBRARY} PNeXus) endif (nexus) -set(MUSRFIT_LIBS ${MUSRFIT_LIBS} PMusr) #--- add all executables ------------------------------------------------------ add_executable(addRun addRun.cpp) @@ -32,7 +33,7 @@ target_include_directories(addRun $ $ ) -target_link_libraries(addRun ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} ${Boost_LIBRARIES}) +target_link_libraries(addRun ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} ${BOOST_LINK_LIBS}) add_executable(any2many any2many.cpp) target_compile_options(any2many BEFORE PRIVATE "-DHAVE_CONFIG_H" "${HAVE_GIT_REV_H}") @@ -115,7 +116,7 @@ target_include_directories(musrRootValidation $ $ ) -target_link_libraries(musrRootValidation ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} ${LIBXML2_LIBRARIES}) +target_link_libraries(musrRootValidation ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} LibXml2::LibXml2) add_executable(musrt0 musrt0.cpp) target_compile_options(musrt0 BEFORE PRIVATE "-DHAVE_CONFIG_H" "${HAVE_GIT_REV_H}") @@ -151,7 +152,7 @@ target_include_directories(write_musrRoot_runHeader $ $ ) -target_link_libraries(write_musrRoot_runHeader ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} ${LIBXML2_LIBRARIES}) +target_link_libraries(write_musrRoot_runHeader ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} LibXml2::LibXml2) #--- ensure git-revision.h is regenerated before compiling -------------------- if (IS_GIT_REPO) @@ -181,8 +182,8 @@ install( musrt0 musrview write_musrRoot_runHeader - RUNTIME DESTINATION - bin + RUNTIME DESTINATION + ${CMAKE_INSTALL_BINDIR} ) diff --git a/src/classes/CMakeLists.txt b/src/classes/CMakeLists.txt index decafc101..a162c1e37 100644 --- a/src/classes/CMakeLists.txt +++ b/src/classes/CMakeLists.txt @@ -132,7 +132,7 @@ target_include_directories( PMusr BEFORE PRIVATE $ $ - $ + $ $ $ $ @@ -142,6 +142,8 @@ target_include_directories( $ $ $ + PUBLIC + $ ) add_library(PUserFcnBase SHARED @@ -171,14 +173,18 @@ set_target_properties(PRgeHandler #--- make sure that the include directory is found ---------------------------- target_include_directories( - PUserFcnBase BEFORE PRIVATE + PUserFcnBase BEFORE PRIVATE $ + PUBLIC + $ ) target_include_directories( - PRgeHandler BEFORE PRIVATE + PRgeHandler BEFORE PRIVATE $ $ + PUBLIC + $ ) #--- add ROOT Version >= 6.24 compile options if needed ----------------------- @@ -195,7 +201,7 @@ if (DKS_FOUND) endif (DKS_FOUND) #--- add library dependencies ------------------------------------------------- -set(DependOnLibs ${ROOT_LIBARIES}) +set(DependOnLibs ${ROOT_LIBRARIES}) #set(DependOnLibs ${DependOnLibs} ${FFTW3_LIBRARY}) set(DependOnLibs ${DependOnLibs} FFTW3::FFTW3) set(DependOnLibs ${DependOnLibs} PUserFcnBase) @@ -220,17 +226,17 @@ if (DKS_FOUND) endif (DKS_FOUND) target_link_libraries(PUserFcnBase PRIVATE ${ROOT_LIBRARIES}) -target_link_libraries(PRgeHandler PRIVATE ${Boost_LIBRARIES} ${ROOT_LIBRARIES}) -target_link_libraries(PMusr PRIVATE ${Boost_LIBRARIES} ${DependOnLibs}) +target_link_libraries(PRgeHandler PRIVATE ${BOOST_LINK_LIBS} ${ROOT_LIBRARIES}) +target_link_libraries(PMusr PRIVATE ${BOOST_LINK_LIBS} ${DependOnLibs}) #--- install PUserFcnBase solib ----------------------------------------------- -install(TARGETS PUserFcnBase EXPORT musrfitTargets DESTINATION lib) +install(TARGETS PUserFcnBase EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install PRgeHandler solib ----------------------------------------------- -install(TARGETS PRgeHandler EXPORT musrfitTargets DESTINATION lib) +install(TARGETS PRgeHandler EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install PMusr solib ------------------------------------------------------ -install(TARGETS PMusr EXPORT musrfitTargets DESTINATION lib) +install(TARGETS PMusr EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( @@ -248,7 +254,7 @@ install( ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler.rootmap ${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBase_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBase.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install headers ---------------------------------------------------------- @@ -283,7 +289,7 @@ install( ${MUSRFIT_INC}/PStartupHandler.h ${MUSRFIT_INC}/PTheory.h ${MUSRFIT_INC}/PUserFcnBase.h - DESTINATION include + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- @@ -291,6 +297,6 @@ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PUserFcnBase.pc ${CMAKE_CURRENT_BINARY_DIR}/PRgeHandler.pc ${CMAKE_CURRENT_BINARY_DIR}/PMusr.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/BMWtools/CMakeLists.txt b/src/external/BMWtools/CMakeLists.txt index 7ae757986..7ae2830f2 100644 --- a/src/external/BMWtools/CMakeLists.txt +++ b/src/external/BMWtools/CMakeLists.txt @@ -46,33 +46,35 @@ set_target_properties(BMWtools #--- make sure that the include directory is found ---------------------------- target_include_directories( - BMWtools BEFORE PRIVATE + BMWtools BEFORE PRIVATE $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- target_link_libraries(BMWtools ${ROOT_LIBRARIES} cuba) #--- install BMWtools solib --------------------------------------------------- -install(TARGETS BMWtools DESTINATION lib) +install(TARGETS BMWtools EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandler_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandler_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandler.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install BMWtools header -------------------------------------------------- install( - FILES + FILES BMWStartupHandler.h TTrimSPDataHandler.h BMWIntegrator.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/DepthProfile/src/CMakeLists.txt b/src/external/DepthProfile/src/CMakeLists.txt index acb37fbbd..8af74b9a0 100644 --- a/src/external/DepthProfile/src/CMakeLists.txt +++ b/src/external/DepthProfile/src/CMakeLists.txt @@ -44,36 +44,38 @@ set_target_properties(PDepthProfile #--- make sure that the include directory is found ---------------------------- target_include_directories( - PDepthProfile BEFORE PRIVATE - $ + PDepthProfile BEFORE PRIVATE + $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- -target_link_libraries(PDepthProfile ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase) +target_link_libraries(PDepthProfile FFTW3::FFTW3 ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase) #--- install PDepthProfile solib ---------------------------------------------- -install(TARGETS PDepthProfile DESTINATION lib) +install(TARGETS PDepthProfile EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPDepthProfile_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPDepthProfile_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPDepthProfile.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install DepthProfile header ---------------------------------------------- install( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/../inc/PDepthProfile.h - DESTINATION - include + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../inc/PDepthProfile.h + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PDepthProfile.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/DummyUserFcn/src/CMakeLists.txt b/src/external/DummyUserFcn/src/CMakeLists.txt index ec8d7bc73..dc7f82a2b 100644 --- a/src/external/DummyUserFcn/src/CMakeLists.txt +++ b/src/external/DummyUserFcn/src/CMakeLists.txt @@ -51,26 +51,26 @@ target_include_directories( target_link_libraries(PDummyUserFcn ${ROOT_LIBRARIES} PUserFcnBase) #--- install PDummyUserFcn solib ------------------------------------------------- -install(TARGETS PDummyUserFcn DESTINATION lib) +install(TARGETS PDummyUserFcn EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPDummyUserFcn_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPDummyUserFcn_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPDummyUserFcn.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install PDummyUserFcn header ------------------------------------------------ install( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/../inc/PDummyUserFcn.h - DESTINATION - include + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../inc/PDummyUserFcn.h + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PDummyUserFcn.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/MagProximity/CMakeLists.txt b/src/external/MagProximity/CMakeLists.txt index 54b79a3a9..ee4fafc2d 100644 --- a/src/external/MagProximity/CMakeLists.txt +++ b/src/external/MagProximity/CMakeLists.txt @@ -43,10 +43,12 @@ add_library(PMagProximityFitter SHARED ) #--- make sure that the include directory is found ---------------------------- target_include_directories( - PMagProximityFitter BEFORE PRIVATE - $ + PMagProximityFitter BEFORE PRIVATE + $ $ $ + PUBLIC + $ ) #--- set target properties, e.g. version -------------------------------------- @@ -59,31 +61,31 @@ set_target_properties(PMagProximityFitter target_link_libraries(PMagProximityFitter FFTW3::FFTW3 ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase) #--- install PMagProximityFitter solib ---------------------------------------- -install(TARGETS PMagProximityFitter DESTINATION lib) +install(TARGETS PMagProximityFitter EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitter_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitter_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitter.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandler_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandler_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandler.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install PMagProximityFitter header --------------------------------------- install( FILES - PMagProximity.h - PMagProximityFitter.h + PMagProximity.h + PMagProximityFitter.h PMPStartupHandler.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PMagProximityFitter.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt b/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt index e55201551..60a8e28e5 100644 --- a/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt +++ b/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt @@ -9,18 +9,18 @@ set(PSIBIN_VERSION "0.2.0") set(PSIBIN_LIBRARY_NAME "Class_MuSR_PSI") configure_file("Class_MuSR_PSI.pc.in" "Class_MuSR_PSI.pc" @ONLY) -#--- OS dependent pre-compiler settings for PSI-BIN --------------------------- -if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - add_definitions(-D__linux__) -elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") - add_definitions(-D_Darwin_) -elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - add_definitions(-D_WIN32) -endif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - #--- lib creation ------------------------------------------------------------- add_library(Class_MuSR_PSI SHARED MuSR_td_PSI_bin.cpp) +#--- OS dependent pre-compiler settings for PSI-BIN --------------------------- +if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + target_compile_definitions(Class_MuSR_PSI PRIVATE __linux__) +elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + target_compile_definitions(Class_MuSR_PSI PRIVATE _Darwin_) +elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + target_compile_definitions(Class_MuSR_PSI PRIVATE _WIN32) +endif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + #--- set target properties, e.g. version -------------------------------------- set_target_properties(Class_MuSR_PSI PROPERTIES @@ -28,13 +28,13 @@ set_target_properties(Class_MuSR_PSI ) #--- install Class_MuSR_PSI solib --------------------------------------------- -install(TARGETS Class_MuSR_PSI EXPORT musrfitTargets DESTINATION lib) +install(TARGETS Class_MuSR_PSI EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install MuSR_td_PSI_bin header ------------------------------------------- -install(FILES MuSR_td_PSI_bin.h DESTINATION include) +install(FILES MuSR_td_PSI_bin.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/Class_MuSR_PSI.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/MusrRoot/CMakeLists.txt b/src/external/MusrRoot/CMakeLists.txt index e772b9bb8..83b1b56dd 100644 --- a/src/external/MusrRoot/CMakeLists.txt +++ b/src/external/MusrRoot/CMakeLists.txt @@ -33,7 +33,10 @@ add_library(TMusrRunHeader SHARED ) #--- make sure that the include directory is found ---------------------------- target_include_directories( - TMusrRunHeader BEFORE PRIVATE $ + TMusrRunHeader BEFORE PRIVATE + $ + PUBLIC + $ ) #--- set target properties, e.g. version -------------------------------------- @@ -46,20 +49,20 @@ set_target_properties(TMusrRunHeader target_link_libraries(TMusrRunHeader ${ROOT_LIBRARIES}) #--- install TMusrRunHeader solib --------------------------------------------- -install(TARGETS TMusrRunHeader EXPORT musrfitTargets DESTINATION lib) +install(TARGETS TMusrRunHeader EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeader_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeader_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeader.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install TMusrRunHeader header -------------------------------------------- -install(FILES TMusrRunHeader.h DESTINATION include) +install(FILES TMusrRunHeader.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/TMusrRunHeader.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/Nonlocal/CMakeLists.txt b/src/external/Nonlocal/CMakeLists.txt index dd2410675..7d158a2e8 100644 --- a/src/external/Nonlocal/CMakeLists.txt +++ b/src/external/Nonlocal/CMakeLists.txt @@ -51,11 +51,13 @@ add_library(PNL_PippardFitter SHARED ) #--- make sure that the include directory is found ---------------------------- target_include_directories( - PNL_PippardFitter BEFORE PRIVATE - $ + PNL_PippardFitter BEFORE PRIVATE + $ $ $ $ + PUBLIC + $ ) #--- set target properties, e.g. version -------------------------------------- @@ -65,31 +67,31 @@ set_target_properties(PNL_PippardFitter ) #--- add library dependencies ------------------------------------------------- -target_link_libraries(PNL_PippardFitter ${Boost_LIBRARIES} FFTW3::FFTW3 ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase) +target_link_libraries(PNL_PippardFitter ${BOOST_LINK_LIBS} FFTW3::FFTW3 ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase) #--- install PNL_PippardFitter solib ------------------------------------------ -install(TARGETS PNL_PippardFitter DESTINATION lib) +install(TARGETS PNL_PippardFitter EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install PNL_PippardFitter header ----------------------------------------- install( FILES - PNL_PippardFitter.h + PNL_PippardFitter.h PNL_StartupHandler.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PNL_PippardFitter.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/Nonlocal/prog/CMakeLists.txt b/src/external/Nonlocal/prog/CMakeLists.txt index c80a35df6..446c8fdb2 100644 --- a/src/external/Nonlocal/prog/CMakeLists.txt +++ b/src/external/Nonlocal/prog/CMakeLists.txt @@ -1,6 +1,6 @@ #--- dump_nonlocal_field ------------------------------------------------------ -cmake_minimum_required(VERSION 3.15) +cmake_minimum_required(VERSION 3.17) # cmake: use BoostConfig.cmake instead of FindBoost if (CMAKE_VERSION GREATER_EQUAL "3.3") @@ -15,13 +15,6 @@ find_package(Git REQUIRED) #--- check for ROOT ----------------------------------------------------------- find_package(ROOT 6.18 REQUIRED COMPONENTS Gui MathMore Minuit2 XMLParser) if (ROOT_mathmore_FOUND) - execute_process(COMMAND root-config --bindir OUTPUT_VARIABLE ROOT_BINDIR) - string(STRIP ${ROOT_BINDIR} ROOT_BINDIR) - execute_process(COMMAND root-config --version OUTPUT_VARIABLE ROOT_VERSION_USED) - string(STRIP ${ROOT_VERSION_USED} ROOT_VERSION_USED) - execute_process(COMMAND root-config --incdir OUTPUT_VARIABLE ROOT_INC) - string(STRIP ${ROOT_INC} ROOT_INC) - message("-- Found ROOT: ${ROOT_BINDIR} (found version: ${ROOT_VERSION})") #---Define useful ROOT functions and macros (e.g. ROOT_GENERATE_DICTIONARY) include(${ROOT_USE_FILE}) endif (ROOT_mathmore_FOUND) @@ -71,7 +64,7 @@ target_compile_options(dump_nonlocal_field BEFORE PRIVATE "-DHAVE_CONFIG_H" "-DH target_include_directories(dump_nonlocal_field BEFORE PRIVATE $ - $ + $ $ $ $ diff --git a/src/external/TLemRunHeader/CMakeLists.txt b/src/external/TLemRunHeader/CMakeLists.txt index fd5f7130c..ef8653141 100644 --- a/src/external/TLemRunHeader/CMakeLists.txt +++ b/src/external/TLemRunHeader/CMakeLists.txt @@ -50,29 +50,32 @@ set_target_properties(TLemRunHeader #--- make sure that the include directory is found ---------------------------- target_include_directories( - TLemRunHeader BEFORE PRIVATE $ + TLemRunHeader BEFORE PRIVATE + $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- target_link_libraries(TLemRunHeader ${ROOT_LIBRARIES}) #--- install TLemRunHeader solib ---------------------------------------------- -install(TARGETS TLemRunHeader EXPORT musrfitTargets DESTINATION lib) +install(TARGETS TLemRunHeader EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeader_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeader_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeader.rootmap ${CMAKE_CURRENT_BINARY_DIR}/libTLemStats_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTLemStats.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install headers ---------------------------------------------------------- -install(FILES TLemRunHeader.h TLemStats.h DESTINATION include) +install(FILES TLemRunHeader.h TLemStats.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/TLemRunHeader.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/libBNMR/CMakeLists.txt b/src/external/libBNMR/CMakeLists.txt index eae19c82d..984e76b8f 100644 --- a/src/external/libBNMR/CMakeLists.txt +++ b/src/external/libBNMR/CMakeLists.txt @@ -43,20 +43,20 @@ set_target_properties(BNMR target_link_libraries(BNMR ${ROOT_LIBRARIES} PUserFcnBase) #--- install libBNMR solib ---------------------------------------------------- -install(TARGETS BNMR DESTINATION lib) +install(TARGETS BNMR EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTBNMR_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTBNMR_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTBNMR.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install libBNMR header --------------------------------------------------- -install( - FILES +install( + FILES TBNMR.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/src/external/libBNMR/libLineProfile/CMakeLists.txt b/src/external/libBNMR/libLineProfile/CMakeLists.txt index b9702400a..c4f698738 100644 --- a/src/external/libBNMR/libLineProfile/CMakeLists.txt +++ b/src/external/libBNMR/libLineProfile/CMakeLists.txt @@ -41,20 +41,20 @@ set_target_properties(LineProfile target_link_libraries(LineProfile ${ROOT_LIBRARIES} PUserFcnBase) #--- install libLineProfile solib ---------------------------------------------------- -install(TARGETS LineProfile DESTINATION lib) +install(TARGETS LineProfile EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libLineProfile_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libLineProfile_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libLineProfile.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install libLineProfile header --------------------------------------------------- -install( - FILES +install( + FILES LineProfile.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/src/external/libCalcMeanFieldsLEM/CMakeLists.txt b/src/external/libCalcMeanFieldsLEM/CMakeLists.txt index 5757d047a..7bb171f3e 100644 --- a/src/external/libCalcMeanFieldsLEM/CMakeLists.txt +++ b/src/external/libCalcMeanFieldsLEM/CMakeLists.txt @@ -47,12 +47,14 @@ set_target_properties(CalcMeanFieldsLEM #--- make sure that the include directory is found ---------------------------- target_include_directories( - CalcMeanFieldsLEM BEFORE PRIVATE - $ + CalcMeanFieldsLEM BEFORE PRIVATE + $ $ $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- @@ -61,21 +63,21 @@ target_link_libraries(CalcMeanFieldsLEM ) #--- install CalcMeanFieldsLEM solib ------------------------------------------ -install(TARGETS CalcMeanFieldsLEM DESTINATION lib) +install(TARGETS CalcMeanFieldsLEM EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libTCalcMeanFieldsLEM_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTCalcMeanFieldsLEM.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install CalcMeanFieldsLEM header ----------------------------------------- install( - FILES + FILES TCalcMeanFieldsLEM.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/libCuba/src/CMakeLists.txt b/src/external/libCuba/src/CMakeLists.txt index 0e9fe0687..b5ff84121 100644 --- a/src/external/libCuba/src/CMakeLists.txt +++ b/src/external/libCuba/src/CMakeLists.txt @@ -31,18 +31,18 @@ set_target_properties(cuba ) #--- install cuba solib ------------------------------------------------------- -install(TARGETS cuba DESTINATION lib) +install(TARGETS cuba EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install cuba header ------------------------------------------------------ install( - FILES - cuba.h - DESTINATION - include + FILES + cuba.h + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/cuba.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/libFitPofB/classes/CMakeLists.txt b/src/external/libFitPofB/classes/CMakeLists.txt index dbf7ae6c5..323f0d4a8 100644 --- a/src/external/libFitPofB/classes/CMakeLists.txt +++ b/src/external/libFitPofB/classes/CMakeLists.txt @@ -88,6 +88,8 @@ target_include_directories( $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- @@ -102,7 +104,7 @@ target_link_libraries(FitPofB ) #--- install FitPofB solib ---------------------------------------------------- -install(TARGETS FitPofB DESTINATION lib) +install(TARGETS FitPofB EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( @@ -112,7 +114,7 @@ install( ${CMAKE_CURRENT_BINARY_DIR}/libTVortex.rootmap ${CMAKE_CURRENT_BINARY_DIR}/libTSkewedGss_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTSkewedGss.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install FitPofB header --------------------------------------------------- @@ -127,7 +129,7 @@ install( ${CMAKE_CURRENT_SOURCE_DIR}/../include/TSkewedGss.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/TVortex.h DESTINATION - include + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/libGapIntegrals/CMakeLists.txt b/src/external/libGapIntegrals/CMakeLists.txt index 7c7e4719e..7f211f1f8 100644 --- a/src/external/libGapIntegrals/CMakeLists.txt +++ b/src/external/libGapIntegrals/CMakeLists.txt @@ -46,35 +46,37 @@ set_target_properties(GapIntegrals #--- make sure that the include directory is found ---------------------------- target_include_directories( - GapIntegrals BEFORE PRIVATE - $ + GapIntegrals BEFORE PRIVATE + $ $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- -target_link_libraries(GapIntegrals - ${GSL_LIBRARIES} FFTW3::FFTW3F ${ROOT_LIBRARIES} +target_link_libraries(GapIntegrals + GSL::gsl GSL::gslcblas FFTW3::FFTW3F ${ROOT_LIBRARIES} PUserFcnBase cuba BMWtools ) #--- install LFRelaxation solib ----------------------------------------------- -install(TARGETS GapIntegrals DESTINATION lib) +install(TARGETS GapIntegrals EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libTGapIntegrals_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTGapIntegrals.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install GapIntegrals header ---------------------------------------------- install( - FILES + FILES TGapIntegrals.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/libGbGLF/CMakeLists.txt b/src/external/libGbGLF/CMakeLists.txt index d0c4d6339..c90756823 100644 --- a/src/external/libGbGLF/CMakeLists.txt +++ b/src/external/libGbGLF/CMakeLists.txt @@ -30,10 +30,12 @@ add_library(PGbGLF SHARED ) #--- make sure that the include directory is found ---------------------------- target_include_directories( - PGbGLF BEFORE PRIVATE - $ + PGbGLF BEFORE PRIVATE + $ $ $ + PUBLIC + $ ) #--- set target properties, e.g. version -------------------------------------- @@ -46,21 +48,21 @@ set_target_properties(PGbGLF target_link_libraries(PGbGLF FFTW3::FFTW3 ${ROOT_LIBRARIES} PUserFcnBase) #--- install PGbGLF solib ----------------------------------------------------- -install(TARGETS PGbGLF DESTINATION lib) +install(TARGETS PGbGLF EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPGbGLF_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPGbGLF_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPGbGLF.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install PGbGLF header ---------------------------------------------------- install( FILES - PGbGLF.h - DESTINATION - include + PGbGLF.h + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/libLFRelaxation/CMakeLists.txt b/src/external/libLFRelaxation/CMakeLists.txt index 2e2efd19c..3e329d7e2 100644 --- a/src/external/libLFRelaxation/CMakeLists.txt +++ b/src/external/libLFRelaxation/CMakeLists.txt @@ -50,6 +50,8 @@ target_include_directories( $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- @@ -57,20 +59,20 @@ set(gomp "") if (OpenMP_FOUND) set(gomp OpenMP::OpenMP_CXX) endif (OpenMP_FOUND) -target_link_libraries(LFRelaxation +target_link_libraries(LFRelaxation ${gomp} - ${GSL_LIBRARIES} FFTW3::FFTW3F + GSL::gsl GSL::gslcblas FFTW3::FFTW3F ${ROOT_LIBRARIES} PUserFcnBase cuba BMWtools ) #--- install LFRelaxation solib ----------------------------------------------- -install(TARGETS LFRelaxation DESTINATION lib) +install(TARGETS LFRelaxation EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLFRelaxation_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libTLFRelaxation.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install TLFRelaxation header --------------------------------------------- @@ -78,7 +80,7 @@ install( FILES TLFRelaxation.h DESTINATION - include + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/libPhotoMeissner/classes/CMakeLists.txt b/src/external/libPhotoMeissner/classes/CMakeLists.txt index aea77f534..cbe5bab09 100644 --- a/src/external/libPhotoMeissner/classes/CMakeLists.txt +++ b/src/external/libPhotoMeissner/classes/CMakeLists.txt @@ -46,38 +46,40 @@ set_target_properties(PPhotoMeissner #--- make sure that the include directory is found ---------------------------- target_include_directories( PPhotoMeissner BEFORE PRIVATE - $ - $ - $ + $ + $ + $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- -target_link_libraries(PPhotoMeissner - FFTW3::FFTW3 ${GSL_LIBRARY} ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase +target_link_libraries(PPhotoMeissner + FFTW3::FFTW3 GSL::gsl GSL::gslcblas ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase ) #--- install PPhotoMeissner solib --------------------------------------------- -install(TARGETS PPhotoMeissner DESTINATION lib) +install(TARGETS PPhotoMeissner EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissner_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissner_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissner.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install PPhotoMeissner header -------------------------------------------- install( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/../include/PPhotoMeissner.h - DESTINATION - include + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../include/PPhotoMeissner.h + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PPhotoMeissner.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/libSpinValve/classes/CMakeLists.txt b/src/external/libSpinValve/classes/CMakeLists.txt index 104dd11d1..8b04340b2 100644 --- a/src/external/libSpinValve/classes/CMakeLists.txt +++ b/src/external/libSpinValve/classes/CMakeLists.txt @@ -54,39 +54,41 @@ set_target_properties(PSpinValve #--- make sure that the include directory is found ---------------------------- target_include_directories( - PSpinValve BEFORE PRIVATE - $ + PSpinValve BEFORE PRIVATE + $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- target_link_libraries(PSpinValve FFTW3::FFTW3 ${ROOT_LIBRARIES} PUserFcnBase) #--- install PSpinValve solib ------------------------------------------------- -install(TARGETS PSpinValve DESTINATION lib) +install(TARGETS PSpinValve EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzian_rdict.pcm + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzian_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzian.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SV_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SV_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SV.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install PSpinValve header ------------------------------------------------ install( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/../include/PSkewedLorentzian.h + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../include/PSkewedLorentzian.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_SV.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PSpinValve.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/libZFRelaxation/CMakeLists.txt b/src/external/libZFRelaxation/CMakeLists.txt index 71a7c3015..11e8ceb45 100644 --- a/src/external/libZFRelaxation/CMakeLists.txt +++ b/src/external/libZFRelaxation/CMakeLists.txt @@ -45,11 +45,13 @@ set_target_properties(ZFRelaxation #--- make sure that the include directory is found ---------------------------- target_include_directories( - ZFRelaxation BEFORE PRIVATE - $ + ZFRelaxation BEFORE PRIVATE + $ $ $ $ + PUBLIC + $ ) #--- add library dependencies ------------------------------------------------- @@ -62,21 +64,21 @@ target_link_libraries(ZFRelaxation ) #--- install ZFRelaxation solib ----------------------------------------------- -install(TARGETS ZFRelaxation DESTINATION lib) +install(TARGETS ZFRelaxation EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install root pcm's and rootmaps ------------------------------------------ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libZFRelaxation_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libZFRelaxation.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install ZFRelaxation header ---------------------------------------------- install( - FILES + FILES ZFRelaxation.h - DESTINATION - include + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) #--- install pkg-config info -------------------------------------------------- diff --git a/src/external/mud/src/CMakeLists.txt b/src/external/mud/src/CMakeLists.txt index 267fcba78..c49febd30 100644 --- a/src/external/mud/src/CMakeLists.txt +++ b/src/external/mud/src/CMakeLists.txt @@ -27,13 +27,13 @@ set_target_properties(mud ) #--- install mud solib -------------------------------------------------------- -install(TARGETS mud EXPORT musrfitTargets DESTINATION lib) +install(TARGETS mud EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install mud header ------------------------------------------------------- -install(FILES mud.h DESTINATION include) +install(FILES mud.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/mud.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/external/nexus/CMakeLists.txt b/src/external/nexus/CMakeLists.txt index eb495c19d..83d39ed27 100644 --- a/src/external/nexus/CMakeLists.txt +++ b/src/external/nexus/CMakeLists.txt @@ -37,13 +37,13 @@ endif (HAVE_HDF4) target_link_libraries(PNeXus PRIVATE ${HDF_LIBS} ${ROOT_LIBRARIES}) #--- install PNeXus solib ----------------------------------------------------- -install(TARGETS PNeXus EXPORT musrfitTargets DESTINATION lib) +install(TARGETS PNeXus EXPORT musrfitTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) #--- install PNeXus header ---------------------------------------------------- -install(FILES PNeXus.h DESTINATION include) +install(FILES PNeXus.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) #--- install pkg-config info -------------------------------------------------- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/PNeXus.pc - DESTINATION lib/pkgconfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/src/musredit_qt5/mupp/CMakeLists.txt b/src/musredit_qt5/mupp/CMakeLists.txt index 2b988f786..d7e37c0d9 100644 --- a/src/musredit_qt5/mupp/CMakeLists.txt +++ b/src/musredit_qt5/mupp/CMakeLists.txt @@ -114,7 +114,7 @@ endif (APPLE) #--- install ------------------------------------------------------------------ if (APPLE) - install(TARGETS mupp BUNDLE DESTINATION /Applications) + install(TARGETS mupp BUNDLE DESTINATION Applications) else (APPLE) - install(TARGETS mupp DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + install(TARGETS mupp DESTINATION ${CMAKE_INSTALL_BINDIR}) endif (APPLE) diff --git a/src/musredit_qt5/mupp/plotter/CMakeLists.txt b/src/musredit_qt5/mupp/plotter/CMakeLists.txt index 8b08dc92f..9561e4eb1 100644 --- a/src/musredit_qt5/mupp/plotter/CMakeLists.txt +++ b/src/musredit_qt5/mupp/plotter/CMakeLists.txt @@ -75,9 +75,9 @@ target_link_libraries(mupp_plot ${ROOT_LIBRARIES}) #--- install ------------------------------------------------------------------ if (APPLE) - install(TARGETS mupp_plot DESTINATION /Applications/mupp.app/Contents/MacOS) + install(TARGETS mupp_plot DESTINATION Applications/mupp.app/Contents/MacOS) else (APPLE) - install(TARGETS mupp_plot DESTINATION bin) + install(TARGETS mupp_plot DESTINATION ${CMAKE_INSTALL_BINDIR}) endif (APPLE) #--- install root pcm's and rootmaps ------------------------------------------ @@ -86,7 +86,7 @@ install( ${CMAKE_CURRENT_BINARY_DIR}/libPMuppCanvas.rootmap ${CMAKE_CURRENT_BINARY_DIR}/libPMuppStartupHandler_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPMuppStartupHandler.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install headers ---------------------------------------------------------- @@ -95,6 +95,6 @@ install( ${CMAKE_CURRENT_SOURCE_DIR}/mupp_plot.h ${CMAKE_CURRENT_SOURCE_DIR}/PMuppCanvas.h ${CMAKE_CURRENT_SOURCE_DIR}/PMuppStartupHandler.h - DESTINATION include + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/src/musredit_qt5/musrStep/CMakeLists.txt b/src/musredit_qt5/musrStep/CMakeLists.txt index 24219df3e..e46114397 100644 --- a/src/musredit_qt5/musrStep/CMakeLists.txt +++ b/src/musredit_qt5/musrStep/CMakeLists.txt @@ -71,11 +71,11 @@ endif (APPLE) if (APPLE) install( TARGETS musrStep - BUNDLE DESTINATION /Applications + BUNDLE DESTINATION Applications ) else (APPLE) install( TARGETS musrStep - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif (APPLE) diff --git a/src/musredit_qt5/musrWiz/CMakeLists.txt b/src/musredit_qt5/musrWiz/CMakeLists.txt index 1b4b9776e..776434b24 100644 --- a/src/musredit_qt5/musrWiz/CMakeLists.txt +++ b/src/musredit_qt5/musrWiz/CMakeLists.txt @@ -75,10 +75,10 @@ endif (APPLE) if (APPLE) install( TARGETS musrWiz - BUNDLE DESTINATION /Applications + BUNDLE DESTINATION Applications ) else (APPLE) install( TARGETS musrWiz - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif (APPLE) diff --git a/src/musredit_qt5/musredit/CMakeLists.txt b/src/musredit_qt5/musredit/CMakeLists.txt index 3e7191cad..87e19da76 100644 --- a/src/musredit_qt5/musredit/CMakeLists.txt +++ b/src/musredit_qt5/musredit/CMakeLists.txt @@ -125,11 +125,11 @@ endif (APPLE) if (APPLE) install( TARGETS musredit - BUNDLE DESTINATION /Applications + BUNDLE DESTINATION Applications ) else (APPLE) install( TARGETS musredit - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif (APPLE) @@ -139,13 +139,13 @@ if (UNIX AND NOT APPLE) FILES ${CMAKE_SOURCE_DIR}/cmake/musredit.desktop DESTINATION - share/applications + ${CMAKE_INSTALL_DATADIR}/applications ) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/musredit.png DESTINATION - share/icons/hicolor/48x48/apps + ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps ) endif (UNIX AND NOT APPLE) @@ -156,6 +156,6 @@ install( ${CMAKE_SOURCE_DIR}/doc/html ${CMAKE_SOURCE_DIR}/doc/memos DESTINATION - ${CMAKE_INSTALL_PREFIX}/share/doc/musrfit + ${CMAKE_INSTALL_DATADIR}/doc/musrfit MESSAGE_NEVER ) diff --git a/src/musredit_qt6/mupp/CMakeLists.txt b/src/musredit_qt6/mupp/CMakeLists.txt index f8d4e2d95..035402d4d 100644 --- a/src/musredit_qt6/mupp/CMakeLists.txt +++ b/src/musredit_qt6/mupp/CMakeLists.txt @@ -115,7 +115,7 @@ endif (APPLE) #--- install ------------------------------------------------------------------ if (APPLE) - install(TARGETS mupp BUNDLE DESTINATION /Applications) + install(TARGETS mupp BUNDLE DESTINATION Applications) else (APPLE) - install(TARGETS mupp DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + install(TARGETS mupp DESTINATION ${CMAKE_INSTALL_BINDIR}) endif (APPLE) diff --git a/src/musredit_qt6/mupp/plotter/CMakeLists.txt b/src/musredit_qt6/mupp/plotter/CMakeLists.txt index c0b830355..0cc7385c0 100644 --- a/src/musredit_qt6/mupp/plotter/CMakeLists.txt +++ b/src/musredit_qt6/mupp/plotter/CMakeLists.txt @@ -75,9 +75,9 @@ target_link_libraries(mupp_plot ${ROOT_LIBRARIES}) #--- install ------------------------------------------------------------------ if (APPLE) - install(TARGETS mupp_plot DESTINATION /Applications/mupp.app/Contents/MacOS) + install(TARGETS mupp_plot DESTINATION Applications/mupp.app/Contents/MacOS) else (APPLE) - install(TARGETS mupp_plot DESTINATION bin) + install(TARGETS mupp_plot DESTINATION ${CMAKE_INSTALL_BINDIR}) endif (APPLE) #--- install root pcm's and rootmaps ------------------------------------------ @@ -86,7 +86,7 @@ install( ${CMAKE_CURRENT_BINARY_DIR}/libPMuppCanvas.rootmap ${CMAKE_CURRENT_BINARY_DIR}/libPMuppStartupHandler_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libPMuppStartupHandler.rootmap - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) #--- install headers ---------------------------------------------------------- @@ -95,5 +95,5 @@ install( ${CMAKE_CURRENT_SOURCE_DIR}/mupp_plot.h ${CMAKE_CURRENT_SOURCE_DIR}/PMuppCanvas.h ${CMAKE_CURRENT_SOURCE_DIR}/PMuppStartupHandler.h - DESTINATION include + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/src/musredit_qt6/musrStep/CMakeLists.txt b/src/musredit_qt6/musrStep/CMakeLists.txt index f611c3a2c..439ebf55d 100644 --- a/src/musredit_qt6/musrStep/CMakeLists.txt +++ b/src/musredit_qt6/musrStep/CMakeLists.txt @@ -72,10 +72,10 @@ endif (APPLE) if (APPLE) install( TARGETS musrStep - BUNDLE DESTINATION /Applications + BUNDLE DESTINATION Applications ) else (APPLE) install( TARGETS musrStep - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif (APPLE) diff --git a/src/musredit_qt6/musrWiz/CMakeLists.txt b/src/musredit_qt6/musrWiz/CMakeLists.txt index fc3c3da1e..95a46e2b5 100644 --- a/src/musredit_qt6/musrWiz/CMakeLists.txt +++ b/src/musredit_qt6/musrWiz/CMakeLists.txt @@ -76,10 +76,10 @@ endif (APPLE) if (APPLE) install( TARGETS musrWiz - BUNDLE DESTINATION /Applications + BUNDLE DESTINATION Applications ) else (APPLE) install( TARGETS musrWiz - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif (APPLE) diff --git a/src/musredit_qt6/musredit/CMakeLists.txt b/src/musredit_qt6/musredit/CMakeLists.txt index a3b186d15..b3a016812 100644 --- a/src/musredit_qt6/musredit/CMakeLists.txt +++ b/src/musredit_qt6/musredit/CMakeLists.txt @@ -125,11 +125,11 @@ endif (APPLE) if (APPLE) install( TARGETS musredit - BUNDLE DESTINATION /Applications + BUNDLE DESTINATION Applications ) else (APPLE) install( TARGETS musredit - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif (APPLE) @@ -139,13 +139,13 @@ if (UNIX AND NOT APPLE) FILES ${CMAKE_SOURCE_DIR}/cmake/musredit.desktop DESTINATION - share/applications + ${CMAKE_INSTALL_DATADIR}/applications ) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/musredit.png DESTINATION - share/icons/hicolor/48x48/apps + ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps ) endif (UNIX AND NOT APPLE) @@ -156,6 +156,6 @@ install( ${CMAKE_SOURCE_DIR}/doc/html ${CMAKE_SOURCE_DIR}/doc/memos DESTINATION - ${CMAKE_INSTALL_PREFIX}/share/doc/musrfit + ${CMAKE_INSTALL_DATADIR}/doc/musrfit MESSAGE_NEVER ) diff --git a/src/tests/nonlocal/CMakeLists.txt b/src/tests/nonlocal/CMakeLists.txt index e9e99d105..60b378c45 100644 --- a/src/tests/nonlocal/CMakeLists.txt +++ b/src/tests/nonlocal/CMakeLists.txt @@ -1,81 +1,79 @@ # main cmake file for nonlocal # -# $Id$ # author: Andreas Suter, andreas.suter@psi.ch -cmake_minimum_required (VERSION 2.8) -project (nonlocal) +cmake_minimum_required(VERSION 3.17) +project(nonlocal) # set version number -set (nonlocal_VERSION_MAJOR 0) -set (nonlocal_VERSION_MINOR 1) +set(nonlocal_VERSION_MAJOR 0) +set(nonlocal_VERSION_MINOR 1) -# configure a header file to pass some of the CMake settings -# to the source code -configure_file ( +# configure a header file to pass some of the CMake settings to the source code +configure_file( "${PROJECT_SOURCE_DIR}/nonlocalConfig.h.in" "${PROJECT_BINARY_DIR}/nonlocalConfig.h" - ) - -# add the binary tree to the search path for include files -# so that we will find TutorialConfig.h -include_directories("${PROJECT_BINARY_DIR}") +) -# CERN/ROOT related stuff ---------------------------------------------- -# Load some basic macros which are needed later on -include(FindROOT.cmake) +include(GNUInstallDirs) -# includes for ROOT -include_directories(${ROOT_INCLUDE_DIR}) -link_directories(${ROOT_LIBRARY_DIR}) -message("-- CERN/ROOT include directory " ${ROOT_INCLUDE_DIR}) -message("-- CERN/ROOT library directory " ${ROOT_LIBRARY_DIR}) -message("-- CERN/ROOT libraries: " ${ROOT_LIBRARIES}) +# CERN/ROOT related stuff +find_package(ROOT 6.18 REQUIRED COMPONENTS MathMore) +include(${ROOT_USE_FILE}) -# GSL related stuff ---------------------------------------------------- -# includes for GSL -set(GSL_INCLUDE_DIR /usr/include/gsl) -set(GSL_LIBRARY_DIR /usr/lib64) -set(GSL_LIBS -lgsl\ -lgslcblas) -include_directories(${GSL_INCLUDE_DIR}) -link_directories(${GSL_LIBRARY_DIR}) -message("-- GSL include directory " ${GSL_INCLUDE_DIR}) -message("-- GSL library directory " ${GSL_LIBRARY_DIR}) -message("-- GSL libraries: " ${GSL_LIBS}) +# GSL related stuff +find_package(GSL REQUIRED) -# Eigen related stuff -------------------------------------------------- -# includes for Eigen -set(EIGEN_INCLUDE_DIR /opt/eigen) -include_directories(${EIGEN_INCLUDE_DIR}) -message("-- Eigen include directory " ${EIGEN_INCLUDE_DIR}) +# Eigen related stuff +find_path(EIGEN_INCLUDE_DIR + NAMES Eigen/Dense + PATHS /opt/eigen /usr/include/eigen3 /usr/local/include/eigen3 +) +if(NOT EIGEN_INCLUDE_DIR) + message(WARNING "Eigen headers not found; build may fail if Eigen is required.") +endif() -# FFTW3 related stuff --------------------------------------------------- -# includes for FFTW -set(FFTW3_INCLUDE_DIR /usr/include) -set(FFTW3_LIBRARY_DIR /usr/lib64) -set(FFTW3_LIBS -lfftw3) -include_directories(${FFTW3_INCLUDE_DIR}) -link_directories(${FFTW3_LIBRARY_DIR}) -message("-- FFTW3 include directory " ${FFTW3_INCLUDE_DIR}) -message("-- FFTW3 library directory " ${FFTW3_LIBRARY_DIR}) -message("-- FFTW3 library " ${FFTW3_LIBS}) +# FFTW3 related stuff +find_package(PkgConfig REQUIRED) +pkg_check_modules(FFTW3 REQUIRED fftw3) add_library(pippard PPippard.cpp PPippard.h) +target_include_directories(pippard + PRIVATE + "${PROJECT_BINARY_DIR}" + ${ROOT_INCLUDE_DIRS} + ${GSL_INCLUDE_DIRS} + ${EIGEN_INCLUDE_DIR} + ${FFTW3_INCLUDE_DIRS} +) add_executable(nonlocal nonlocal.cpp) +target_include_directories(nonlocal + PRIVATE + "${PROJECT_BINARY_DIR}" + ${ROOT_INCLUDE_DIRS} + ${GSL_INCLUDE_DIRS} + ${EIGEN_INCLUDE_DIR} + ${FFTW3_INCLUDE_DIRS} +) +target_link_libraries(nonlocal + PRIVATE + pippard + GSL::gsl + GSL::gslcblas + ${ROOT_LIBRARIES} + ${FFTW3_LIBRARIES} +) -target_link_libraries(nonlocal pippard ${GSL_LIBS} ${ROOT_LIBRARIES} ${FFTW3_LIBS}) - -# install stuff ------------------------------------------------------ +# install stuff set(CMAKE_INSTALL_PREFIX $ENV{HOME}) -message("-- will install nonlocal in " ${CMAKE_INSTALL_PREFIX}/bin) -install_targets(/bin nonlocal) +install(TARGETS nonlocal RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -# uninstall target --------------------------------------------------- +# uninstall target configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) diff --git a/src/tests/vortex-film/CMakeLists.txt b/src/tests/vortex-film/CMakeLists.txt new file mode 100644 index 000000000..3d5544806 --- /dev/null +++ b/src/tests/vortex-film/CMakeLists.txt @@ -0,0 +1,94 @@ +# - musrfit +cmake_minimum_required(VERSION 3.9) + +if (CMAKE_VERSION GREATER_EQUAL 3.12) + cmake_policy(SET CMP0075 NEW) +endif (CMAKE_VERSION GREATER_EQUAL 3.12) + +project(vortex-film VERSION 1.0.0 LANGUAGES C CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +#--- set a default build type if none was specified --------------------------- +set(default_build_type "Debug") + +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to '${default_build_type}' as none was specified.") + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE + STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +#--- perform some checks and generate the config.h ---------------------------- + +#--- the next two lines are needed that the math functions are found ---------- +set(CMAKE_REQUIRED_INCLUDES math.h) +set(CMAKE_REQUIRED_LIBRARIES m) + +include(CheckTypeSize) +include(CheckIncludeFiles) +include(CheckFunctionExists) +check_include_files(alloca.h HAVE_ALLOCA_H) +check_include_files("sys/ipc.h;sys/shm.h" HAVE_SHMGET) +check_include_files(dlfcn.h HAVE_DLFCN_H) +check_function_exists(erf HAVE_ERF) +check_function_exists(getloadavg HAVE_GETLOADAVG) +check_include_files(inttypes.h HAVE_INTTYPES_H) +check_include_files(memory.h HAVE_MEMORY_H) +check_function_exists(powl HAVE_POWL) +check_include_files(memory.h HAVE_MEMORY_H) +check_include_files(stdint.h HAVE_STDINT_H) +check_include_files(stdlib.h HAVE_STDLIB_H) +check_include_files(string.h HAVE_STRING_H) +check_include_files(strings.h HAVE_STRINGS_H) +check_include_files(sys/stat.h HAVE_SYS_STAT_H) +check_include_files(sys/types.h HAVE_SYS_TYPES_H) +check_include_files(sys/unistd.h HAVE_UNISTD_H) +check_type_size("long double" LONG_DOUBLE) +check_type_size("double" DOUBLE) +if (${LONG_DOUBLE} GREATER ${DOUBLE}) + set(HAVE_LONG_DOUBLE 1) + set(HAVE_LONG_DOUBLE_WIDER 1) +endif (${LONG_DOUBLE} GREATER ${DOUBLE}) + +#--- check for all the needed packages ---------------------------------------- + +#--- check for git ------------------------------------------------------------ +find_package(Git REQUIRED) + +#--- check for ROOT ----------------------------------------------------------- +find_package(ROOT 6.18 REQUIRED COMPONENTS Gui MathMore Minuit2 XMLParser) +if (ROOT_mathmore_FOUND) + execute_process(COMMAND root-config --bindir OUTPUT_VARIABLE ROOT_BINDIR) + string(STRIP ${ROOT_BINDIR} ROOT_BINDIR) + execute_process(COMMAND root-config --version OUTPUT_VARIABLE ROOT_VERSION) + string(STRIP ${ROOT_VERSION} ROOT_VERSION) + message("-- Found ROOT: ${ROOT_BINDIR} (found version: ${ROOT_VERSION})") + #---Define useful ROOT functions and macros (e.g. ROOT_GENERATE_DICTIONARY) + include(${ROOT_USE_FILE}) +endif (ROOT_mathmore_FOUND) + +#--- define the BMWlibs ------------------------------------------------------- +set(BMWlibs + BMWtools + FitPofB +) + +#--- add all executables ------------------------------------------------------ +add_executable(vortex_film + vortex_film.cpp +) +target_include_directories(vortex_film + BEFORE PRIVATE + $ +) +target_link_directories(vortex_film + BEFORE PRIVATE + $ENV{ROOTSYS}/lib +) +target_link_libraries(vortex_film ${ROOT_LIBRARIES} ${BMWlibs}) + +#--- end ----------------------------------------------------------------------