From 83984c1ef5dad7dbddd4ebff898a932c5172d4bb Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Fri, 4 May 2018 12:51:57 +0200 Subject: [PATCH] start populating the sub-dirs with the necessary cmake files. --- CMakeLists.txt | 36 +++++++------- src/CMakeLists.txt | 27 +++++++++++ src/external/CMakeLists.txt | 28 +++++++++++ src/external/MuSR_software/CMakeLists.txt | 1 + .../Class_MuSR_PSI/CMakeLists.txt | 25 ++++++++++ src/external/MusrRoot/CMakeLists.txt | 43 +++++++++++++++++ src/external/TLemRunHeader/CMakeLists.txt | 48 +++++++++++++++++++ src/external/mud/CMakeLists.txt | 1 + src/external/mud/src/CMakeLists.txt | 33 +++++++++++++ 9 files changed, 225 insertions(+), 17 deletions(-) create mode 100644 src/CMakeLists.txt create mode 100644 src/external/CMakeLists.txt create mode 100644 src/external/MuSR_software/CMakeLists.txt create mode 100644 src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt create mode 100644 src/external/MusrRoot/CMakeLists.txt create mode 100644 src/external/TLemRunHeader/CMakeLists.txt create mode 100644 src/external/mud/CMakeLists.txt create mode 100644 src/external/mud/src/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 46c8e888..895ac15e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,24 +1,24 @@ # - musrfit cmake_minimum_required(VERSION 3.6) -project(musrfit VERSION 1.3.0 LANGUAGES CXX) +project(musrfit VERSION 1.3.0 LANGUAGES C CXX) -#--- musrfit specific options ------------------------------------------------------------------- +#--- musrfit specific options ------------------------------------------------- option(nexus "build optional NeXus support. Needed for ISIS" OFF) option(ASlibs "build optional ASlibs" OFF) option(BMWlibs "build optional BMWlibs" OFF) option(BNMRlibs "build optional beta-NMR libs" OFF) -option(qt_based_tools "try to install Qt based tools" ON) +option(qt_based_tools "try to install Qt based tools (musredit, musrWiz, musrStep, mupp)" ON) -#--- check for all the needed packages ---------------------------------------------------------- +#--- check for all the needed packages ---------------------------------------- #--- add path to my own find modules and other stuff set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -#--- check for git ------------------------------------------------------------------------------ +#--- check for git ------------------------------------------------------------ find_package(Git REQUIRED) -#--- check for ROOT ----------------------------------------------------------------------------- +#--- check for ROOT ----------------------------------------------------------- find_package(ROOT 6.06 REQUIRED COMPONENTS MathMore Minuit2 XMLParser) if (ROOT_mathmore_FOUND) execute_process(COMMAND root-config --bindir OUTPUT_VARIABLE ROOT_BINDIR) @@ -26,24 +26,26 @@ if (ROOT_mathmore_FOUND) 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) -#--- check for boost ---------------------------------------------------------------------------- +#--- check for boost ---------------------------------------------------------- find_package(Boost REQUIRED) -#--- check for gsl ------------------------------------------------------------------------------ +#--- check for gsl ------------------------------------------------------------ find_package(GSL REQUIRED) -#--- check for fftw3 ---------------------------------------------------------------------------- +#--- check for fftw3 ---------------------------------------------------------- find_package(FFTW3 REQUIRED) -#--- check for libxml2 -------------------------------------------------------------------------- +#--- check for libxml2 -------------------------------------------------------- find_package(LibXml2 REQUIRED) -#--- check for OpenMP --------------------------------------------------------------------------- +#--- check for OpenMP --------------------------------------------------------- find_package(OpenMP REQUIRED) -#--- check for Qt ------------------------------------------------------------------------------- +#--- check for Qt ------------------------------------------------------------- if (qt_based_tools) # first try Qt5 # Find the QtCore library @@ -66,7 +68,7 @@ if (qt_based_tools) endif (NOT Qt5Core_FOUND) endif (qt_based_tools) -#--- if NeXus check also for HDF4, HDF5, and MXML ----------------------------------------------- +#--- if NeXus check also for HDF4, HDF5, and MXML ----------------------------- if (nexus) find_package(HDF5 COMPONENTS CXX REQUIRED ) #//as35 - STILL NEEDED?? -> find_package(HDF4 REQUIRED) @@ -74,11 +76,11 @@ if (nexus) find_package(NeXus REQUIRED) endif (nexus) -#--- check for Cuba lib if BMWlibs are enabled -------------------------------------------------- +#--- check for Cuba lib if BMWlibs are enabled -------------------------------- +#//as35 probably always stick to the internal one ... -#[==[ +#--- propagate to the sub-directories ----------------------------------------- add_subdirectory(src) -#]==] #--- write summary of the installation message("") @@ -186,4 +188,4 @@ message("") message("-------------------------------------------------------------------------") message("") -#--- end --- +#--- end ---------------------------------------------------------------------- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 00000000..71a0ff05 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,27 @@ +#--- add further sub-directories ---------------------------------------------- +#[==[ +add_subdirectory(classes) +#]==] +add_subdirectory(external) +#[==[ +if (Qt5Core_FOUND OR Qt4_FOUND) + add_subdirectory(musredit) +endif (Qt5Core_FOUND OR Qt4_FOUND) +if (QT_FOUND) + add_subdirectory(musrgui) +endif (QT_FOUND) +#]==] + +#--- 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) +if (nexus) + set(MUSRFIT_LIBS ${MUSRFIT_LIBS} ${LIBNEXUS_LIBRARY}) + set(MUSRFIT_LIBS ${MUSRFIT_LIBS} PNeXus) +endif (nexus) +set(MUSRFIT_LIBS ${MUSRFIT_LIBS} PMusr) +#]==] + diff --git a/src/external/CMakeLists.txt b/src/external/CMakeLists.txt new file mode 100644 index 00000000..c2e7379b --- /dev/null +++ b/src/external/CMakeLists.txt @@ -0,0 +1,28 @@ +#[==[ +if (ASlibs) + add_subdirectory(Nonlocal) + add_subdirectory(MagProximity) + add_subdirectory(libPhotoMeissner) + add_subdirectory(libSpinValve) +endif (ASlibs) + +if (BMWlibs) + add_subdirectory(libCuba) + add_subdirectory(BMWtools) + add_subdirectory(libCalcMeanFieldsLEM) + add_subdirectory(libFitPofB) + add_subdirectory(libGapIntegrals) + add_subdirectory(libLFRelaxation) + add_subdirectory(libZFRelaxation) +endif (BMWlibs) +#]==] + +add_subdirectory(mud) +add_subdirectory(MusrRoot) +add_subdirectory(TLemRunHeader) +add_subdirectory(MuSR_software) + +if (nexus) + add_subdirectory(nexus) +endif (nexus) + diff --git a/src/external/MuSR_software/CMakeLists.txt b/src/external/MuSR_software/CMakeLists.txt new file mode 100644 index 00000000..a89f84df --- /dev/null +++ b/src/external/MuSR_software/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(Class_MuSR_PSI) diff --git a/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt b/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt new file mode 100644 index 00000000..122feb9b --- /dev/null +++ b/src/external/MuSR_software/Class_MuSR_PSI/CMakeLists.txt @@ -0,0 +1,25 @@ +# - Class_MuSR_PSI library ---------------------------------------------------- + +#--- create pkg-config info --------------------------------------------------- +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "\$\{prefix\}") +set(libdir "\$\{exec_prefix\}/lib") +set(includedir "\$\{prefix\}/include") +set(PSIBIN_VERSION "0.1.0") +set(PSIBIN_LIBRARY_NAME "Class_MuSR_PSI") +configure_file("Class_MuSR_PSI.pc.in" "Class_MuSR_PSI.pc" @ONLY) + +#--- lib creation ------------------------------------------------------------- +add_library(Class_MuSR_PSI SHARED MuSR_td_PSI_bin.cpp) + +#--- install Class_MuSR_PSI solib --------------------------------------------- +install(TARGETS Class_MuSR_PSI DESTINATION lib) + +#--- install MuSR_td_PSI_bin header ------------------------------------------- +install(FILES MuSR_td_PSI_bin.h DESTINATION include) + +#--- install pkg-config info -------------------------------------------------- +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/Class_MuSR_PSI.pc + DESTINATION lib/pkgconfig +) diff --git a/src/external/MusrRoot/CMakeLists.txt b/src/external/MusrRoot/CMakeLists.txt new file mode 100644 index 00000000..250786fe --- /dev/null +++ b/src/external/MusrRoot/CMakeLists.txt @@ -0,0 +1,43 @@ +# - TMusrRunHeader library ---------------------------------------------------- + +#--- generate necessary dictionaries ------------------------------------------ +root_generate_dictionary( + TMusrRunHeaderDict TMusrRunHeader.h LINKDEF TMusrRunHeaderLinkDef.h +) + +#--- create pkg-config info --------------------------------------------------- +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "\$\{prefix\}") +set(libdir "\$\{exec_prefix\}/lib") +set(includedir "\$\{prefix\}/include") +set(MUSR_ROOT_VERSION "1.0.0") +set(MUSR_ROOT_LIBRARY_NAME "TMusrRunHeader") +configure_file("TMusrRunHeader.pc.in" "TMusrRunHeader.pc" @ONLY) + +#--- lib creation ------------------------------------------------------------- +add_library(TMusrRunHeader SHARED + TMusrRunHeader.cpp + TMusrRunHeaderDict.cxx +) + +#--- add library dependencies ------------------------------------------------- +target_link_libraries(TMusrRunHeader ${ROOT_LIBRARIES}) + +#--- install TMusrRunHeader solib --------------------------------------------- +install(TARGETS TMusrRunHeader DESTINATION lib) + +#--- install root pcm's and rootmaps ------------------------------------------ +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeaderDict_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeaderDict.rootmap + DESTINATION lib +) + +#--- install TMusrRunHeader header -------------------------------------------- +install(FILES TMusrRunHeader.h DESTINATION include) + +#--- install pkg-config info -------------------------------------------------- +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/TMusrRunHeader.pc + DESTINATION lib/pkgconfig +) diff --git a/src/external/TLemRunHeader/CMakeLists.txt b/src/external/TLemRunHeader/CMakeLists.txt new file mode 100644 index 00000000..afd47f93 --- /dev/null +++ b/src/external/TLemRunHeader/CMakeLists.txt @@ -0,0 +1,48 @@ +# -TLemRunHeader library ------------------------------------------------------ + +#--- generate necessary dictionaries ------------------------------------------ +root_generate_dictionary( + TLemRunHeaderDict TLemRunHeader.h LINKDEF TLemRunHeaderLinkDef.h +) +root_generate_dictionary( + TLemStatsDict TLemStats.h LINKDEF TLemStatsLinkDef.h +) + +#--- create pkg-config info --------------------------------------------------- +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "\$\{prefix\}") +set(libdir "\$\{exec_prefix\}/lib") +set(includedir "\$\{prefix\}/include") +set(LEM_VERSION "1.5.0") +set(LEM_LIBRARY_NAME "TLemRunHeader") +configure_file("TLemRunHeader.pc.in" "TLemRunHeader.pc" @ONLY) + +#--- lib creation ------------------------------------------------------------- +add_library(TLemRunHeader SHARED + TLemRunHeader.cxx + TLemRunHeaderDict.cxx + TLemStats.cxx + TLemStatsDict.cxx +) + +#--- add library dependencies ------------------------------------------------- +target_link_libraries(TLemRunHeader ${ROOT_LIBRARIES}) + +#--- install TLemRunHeader solib ---------------------------------------------- +install(TARGETS TLemRunHeader DESTINATION lib) + +#--- install root pcm's and rootmaps ------------------------------------------ +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeaderDict_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeaderDict.rootmap + DESTINATION lib +) + +#--- install headers ---------------------------------------------------------- +install(FILES TLemRunHeader.h TLemStats.h DESTINATION include) + +#--- install pkg-config info -------------------------------------------------- +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/TLemRunHeader.pc + DESTINATION lib/pkgconfig +) diff --git a/src/external/mud/CMakeLists.txt b/src/external/mud/CMakeLists.txt new file mode 100644 index 00000000..febd4f0a --- /dev/null +++ b/src/external/mud/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(src) diff --git a/src/external/mud/src/CMakeLists.txt b/src/external/mud/src/CMakeLists.txt new file mode 100644 index 00000000..572c6754 --- /dev/null +++ b/src/external/mud/src/CMakeLists.txt @@ -0,0 +1,33 @@ +# - mud library --------------------------------------------------------------- + +#--- create pkg-config info --------------------------------------------------- +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "\$\{prefix\}") +set(libdir "\$\{exec_prefix\}/lib") +set(includedir "\$\{prefix\}/include") +set(MUD_VERSION "1.0.0") +set(MUD_LIBRARY_NAME "mud") +configure_file("mud.pc.in" "mud.pc" @ONLY) + +#--- lib creation ------------------------------------------------------------- +add_library(mud SHARED + mud_all.c + mud.c + mud_encode.c + mud_friendly.c + mud_gen.c + mud_new.c + mud_tri_ti.c +) + +#--- install mud solib -------------------------------------------------------- +install(TARGETS mud DESTINATION lib) + +#--- install mud header ------------------------------------------------------- +install(FILES mud.h DESTINATION include) + +#--- install pkg-config info -------------------------------------------------- +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/mud.pc + DESTINATION lib/pkgconfig +)