cmake: more work on dks6
This commit is contained in:
parent
78de97f498
commit
923b3c493f
@ -203,7 +203,7 @@ set(HAVE_CONFIG_H 1 CACHE INTERNAL "config.h is available")
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||
|
||||
#--- propagate to the sub-directories -----------------------------------------
|
||||
## as35 add_subdirectory(src)
|
||||
add_subdirectory(src)
|
||||
|
||||
#--- write summary of the installation
|
||||
message("")
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
find_path(DKS_INCLUDE_DIR DKSBaseMuSR.h
|
||||
HINTS "/usr/include" "/opt/local/include" "$ENV{HOME}/Apps/DKS/exec/include"
|
||||
"$ENV{HOME}/Applications/DKS/exec/include"
|
||||
)
|
||||
|
||||
# find position of DKSBaseMuSR.h from the end
|
||||
@ -21,6 +22,7 @@ unset(substr)
|
||||
|
||||
find_library(DKS_LIBRARY dksshared
|
||||
HINTS "/usr/lib" "/usr/lib64" "/opt/local/lib" "$ENV{HOME}/Apps/DKS/exec/lib"
|
||||
"$ENV{HOME}/Applications/DKS/exec/lib"
|
||||
)
|
||||
|
||||
# as35 set here the DKS version explicitly. This is VERY ugly and should be fixed
|
||||
|
179
src/CMakeLists.txt
Normal file
179
src/CMakeLists.txt
Normal file
@ -0,0 +1,179 @@
|
||||
#--- add further sub-directories ----------------------------------------------
|
||||
add_subdirectory(classes)
|
||||
#[==[
|
||||
add_subdirectory(external)
|
||||
if (Qt5Core_FOUND)
|
||||
add_subdirectory(musredit_qt5)
|
||||
elseif (Qt4_FOUND)
|
||||
add_subdirectory(musredit)
|
||||
elseif (QT_FOUND)
|
||||
add_subdirectory(musrgui)
|
||||
endif (Qt5Core_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} ${NEXUS_LIBRARY})
|
||||
set(MUSRFIT_LIBS ${MUSRFIT_LIBS} PNeXus)
|
||||
endif (nexus)
|
||||
set(MUSRFIT_LIBS ${MUSRFIT_LIBS} PMusr)
|
||||
|
||||
#--- start create git-revision.h ----------------------------------------------
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/cmake/configure_musrfit_version_file.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/configure_musrfit_version_file.cmake
|
||||
@ONLY
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/git-revision.h
|
||||
COMMAND ${CMAKE_COMMAND} -P
|
||||
${CMAKE_CURRENT_BINARY_DIR}/configure_musrfit_version_file.cmake
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/configure_musrfit_version_file.cmake
|
||||
${CMAKE_SOURCE_DIR}/cmake/git-revision.h.in
|
||||
COMMENT "Configuring git-revision.h"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
configure_musrfit_version ALL
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/git-revision.h
|
||||
)
|
||||
#--- end create git-revision.h ------------------------------------------------
|
||||
|
||||
#--- add all executables ------------------------------------------------------
|
||||
add_executable(any2many git-revision.h any2many.cpp)
|
||||
target_compile_options(any2many BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(any2many
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
)
|
||||
target_link_libraries(any2many ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(dump_header git-revision.h dump_header.cpp)
|
||||
target_compile_options(dump_header BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(dump_header
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${NEXUS_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/MusrRoot>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/TLemRunHeader>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/MuSR_software/Class_MuSR_PSI/>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/mud/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/nexus>
|
||||
)
|
||||
target_link_libraries(dump_header ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(msr2data git-revision.h msr2data.cpp)
|
||||
target_compile_options(msr2data BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(msr2data
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
)
|
||||
target_link_libraries(msr2data ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(msr2msr msr2msr.cpp)
|
||||
target_link_libraries(msr2msr ${ROOT_LIBRARIES})
|
||||
|
||||
add_executable(musrfit git-revision.h musrfit.cpp)
|
||||
target_compile_options(musrfit BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(musrfit
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${DKS_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
)
|
||||
target_link_libraries(musrfit ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(musrFT git-revision.h musrFT.cpp)
|
||||
target_compile_options(musrFT BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(musrFT
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
)
|
||||
target_link_libraries(musrFT ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(musrRootValidation git-revision.h musrRootValidation.cpp)
|
||||
target_compile_options(musrRootValidation BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(musrRootValidation
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
$<BUILD_INTERFACE:${LIBXML2_INCLUDE_DIR}>
|
||||
)
|
||||
target_link_libraries(musrRootValidation ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} ${LIBXML2_LIBRARIES})
|
||||
|
||||
add_executable(musrt0 git-revision.h musrt0.cpp)
|
||||
target_compile_options(musrt0 BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(musrt0
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
)
|
||||
target_link_libraries(musrt0 ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(musrview git-revision.h musrview.cpp)
|
||||
target_compile_options(musrview BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(musrview
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
)
|
||||
target_link_libraries(musrview ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} ${MUSRFIT_LIBS})
|
||||
|
||||
add_executable(write_musrRoot_runHeader git-revision.h write_musrRoot_runHeader.cpp)
|
||||
target_compile_options(write_musrRoot_runHeader BEFORE PRIVATE "-DHAVE_CONFIG_H")
|
||||
target_include_directories(write_musrRoot_runHeader
|
||||
BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/include>
|
||||
$<BUILD_INTERFACE:${LIBXML2_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/MusrRoot>
|
||||
)
|
||||
target_link_libraries(write_musrRoot_runHeader ${ROOT_LIBRARIES} ${MUSRFIT_LIBS} ${LIBXML2_LIBRARIES})
|
||||
|
||||
#--- installation info --------------------------------------------------------
|
||||
install(
|
||||
TARGETS
|
||||
any2many
|
||||
dump_header
|
||||
msr2data
|
||||
msr2msr
|
||||
musrfit
|
||||
musrFT
|
||||
musrRootValidation
|
||||
musrt0
|
||||
musrview
|
||||
write_musrRoot_runHeader
|
||||
RUNTIME DESTINATION
|
||||
bin
|
||||
)
|
||||
|
||||
|
176
src/classes/CMakeLists.txt
Normal file
176
src/classes/CMakeLists.txt
Normal file
@ -0,0 +1,176 @@
|
||||
#--- build the PMusr and PUserFcnBase libs ------------------------------------
|
||||
|
||||
#--- generate necessary dictionaries ------------------------------------------
|
||||
set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include)
|
||||
|
||||
root_generate_dictionary(
|
||||
PFourierCanvasDict
|
||||
-I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PFourierCanvas.h
|
||||
LINKDEF ${MUSRFIT_INC}/PFourierCanvasLinkDef.h
|
||||
)
|
||||
root_generate_dictionary(
|
||||
PMusrCanvasDict
|
||||
-I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PMusrCanvas.h
|
||||
LINKDEF ${MUSRFIT_INC}/PMusrCanvasLinkDef.h
|
||||
)
|
||||
root_generate_dictionary(
|
||||
PMusrT0Dict
|
||||
-I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PMusrT0.h
|
||||
LINKDEF ${MUSRFIT_INC}/PMusrT0LinkDef.h
|
||||
)
|
||||
root_generate_dictionary(
|
||||
PStartupHandlerDict
|
||||
-I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PStartupHandler.h
|
||||
LINKDEF ${MUSRFIT_INC}/PStartupHandlerLinkDef.h
|
||||
)
|
||||
root_generate_dictionary(
|
||||
PUserFcnBaseDict
|
||||
-I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PUserFcnBase.h
|
||||
LINKDEF ${MUSRFIT_INC}/PUserFcnBaseLinkDef.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_VERSION "1.2.0")
|
||||
set(MUSR_LIBRARY_NAME "PMusr")
|
||||
configure_file("PMusr.pc.in" "PMusr.pc" @ONLY)
|
||||
set(USERFCN_LIBRARY_NAME "PUserFcnBase")
|
||||
configure_file("PUserFcnBase.pc.in" "PUserFcnBase.pc" @ONLY)
|
||||
|
||||
#--- lib creation -------------------------------------------------------------
|
||||
add_library(PMusr SHARED
|
||||
PFitter.cpp
|
||||
PFitterFcn.cpp
|
||||
PFitterFcnDKS.cpp
|
||||
PFourier.cpp
|
||||
PFourierCanvas.cpp
|
||||
PFourierCanvasDict.cxx
|
||||
PMusrCanvas.cpp
|
||||
PMusrCanvasDict.cxx
|
||||
PFunction.cpp
|
||||
PFunctionHandler.cpp
|
||||
PMsr2Data.cpp
|
||||
PMsrHandler.cpp
|
||||
PMusrCanvas.cpp
|
||||
PMusrCanvasDict.cxx
|
||||
PMusr.cpp
|
||||
PMusrT0.cpp
|
||||
PMusrT0Dict.cxx
|
||||
PPrepFourier.cpp
|
||||
PRunAsymmetry.cpp
|
||||
PRunAsymmetryRRF.cpp
|
||||
PRunBase.cpp
|
||||
PRunDataHandler.cpp
|
||||
PRunListCollection.cpp
|
||||
PRunMuMinus.cpp
|
||||
PRunNonMusr.cpp
|
||||
PRunSingleHisto.cpp
|
||||
PRunSingleHistoRRF.cpp
|
||||
PStartupHandler.cpp
|
||||
PStartupHandlerDict.cxx
|
||||
PTheory.cpp
|
||||
)
|
||||
#--- make sure that the include directory is found ----------------------------
|
||||
target_include_directories(
|
||||
PMusr BEFORE PRIVATE
|
||||
$<BUILD_INTERFACE:${DKS_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${FFTW3_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${NEXUS_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${MUSRFIT_INC}>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/MusrRoot>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/TLemRunHeader>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/MuSR_software/Class_MuSR_PSI>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/mud/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/external/nexus>
|
||||
)
|
||||
|
||||
add_library(PUserFcnBase SHARED
|
||||
PUserFcnBase.cpp
|
||||
PUserFcnBaseDict.cxx
|
||||
)
|
||||
#--- make sure that the include directory is found ----------------------------
|
||||
target_include_directories(
|
||||
PUserFcnBase BEFORE PRIVATE $<BUILD_INTERFACE:${MUSRFIT_INC}>
|
||||
)
|
||||
#--- add OpenMP compile options if needed -------------------------------------
|
||||
if (OpenMP_FOUND)
|
||||
target_compile_options(PMusr PUBLIC ${OpenMP_CXX_FLAGS})
|
||||
endif (OpenMP_FOUND)
|
||||
|
||||
#--- add library dependencies -------------------------------------------------
|
||||
set(DependOnLibs ${ROOT_LIBARIES})
|
||||
set(DependOnLibs ${DependOnLibs} ${FFTW3_LIBRARY})
|
||||
set(DependOnLibs ${DependOnLibs} PUserFcnBase)
|
||||
set(DependOnLibs ${DependOnLibs} mud)
|
||||
set(DependOnLibs ${DependOnLibs} TMusrRunHeader)
|
||||
set(DependOnLibs ${DependOnLibs} TLemRunHeader)
|
||||
set(DependOnLibs ${DependOnLibs} Class_MuSR_PSI)
|
||||
if (nexus)
|
||||
set(DependOnLibs ${DependOnLibs} ${LIBNEXUS_LIBRARY})
|
||||
set(DependOnLibs ${DependOnLibs} PNeXus)
|
||||
endif (nexus)
|
||||
if (OpenMP_FOUND)
|
||||
if (OpenMP_CXX_LIBRARIES)
|
||||
set(DependOnLibs ${DependOnLibs} ${OpenMP_CXX_LIBRARIES})
|
||||
else (OpenMP_CXX_LIBRARIES)
|
||||
set(DependOnLibs ${DependOnLibs} ${OpenMP_CXX_FLAGS}) # for older cmake OpenMP_CXX_LIBRARIES is not defined
|
||||
endif (OpenMP_CXX_LIBRARIES)
|
||||
endif (OpenMP_FOUND)
|
||||
if (DKS_FOUND)
|
||||
if (CUDA_FOUND)
|
||||
set(DependOnLibs ${DependOnLibs} ${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES})
|
||||
endif (CUDA_FOUND)
|
||||
if (NOT CUDA_FOUND AND OpenCL_FOUND)
|
||||
set(DependOnLibs ${DependOnLibs} ${OpenCL_LIBRARIES})
|
||||
endif (NOT CUDA_FOUND AND OpenCL_FOUND)
|
||||
set(DependOnLibs ${DependOnLibs} ${DKS_LIBRARY})
|
||||
endif (DKS_FOUND)
|
||||
|
||||
target_link_libraries(PUserFcnBase ${ROOT_LIBRARIES})
|
||||
target_link_libraries(PMusr ${DependOnLibs})
|
||||
|
||||
#--- install PUserFcnBase solib -----------------------------------------------
|
||||
install(TARGETS PUserFcnBase DESTINATION lib)
|
||||
|
||||
#--- install PMusr solib ------------------------------------------------------
|
||||
install(TARGETS PMusr DESTINATION lib)
|
||||
|
||||
#--- install root pcm's and rootmaps ------------------------------------------
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/libPFourierCanvasDict_rdict.pcm
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPFourierCanvasDict.rootmap
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvasDict_rdict.pcm
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvasDict.rootmap
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0Dict_rdict.pcm
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0Dict.rootmap
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandlerDict_rdict.pcm
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandlerDict.rootmap
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBaseDict_rdict.pcm
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBaseDict.rootmap
|
||||
DESTINATION lib
|
||||
)
|
||||
|
||||
#--- install headers ----------------------------------------------------------
|
||||
#--- only install headers needed for classes with dictionary
|
||||
install(
|
||||
FILES ${MUSRFIT_INC}/PFourierCanvas.h
|
||||
${MUSRFIT_INC}/PFourier.h
|
||||
${MUSRFIT_INC}/PMusrCanvas.h
|
||||
${MUSRFIT_INC}/PMusr.h
|
||||
${MUSRFIT_INC}/PMusrT0.h
|
||||
${MUSRFIT_INC}/PRunListCollection.h
|
||||
${MUSRFIT_INC}/PStartupHandler.h
|
||||
${MUSRFIT_INC}/PUserFcnBase.h
|
||||
DESTINATION include
|
||||
)
|
||||
|
||||
#--- install pkg-config info --------------------------------------------------
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/PUserFcnBase.pc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/PMusr.pc
|
||||
DESTINATION lib/pkgconfig
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user