diff --git a/src/external/CMakeLists.txt b/src/external/CMakeLists.txt index 488b674d..7f0a5f06 100644 --- a/src/external/CMakeLists.txt +++ b/src/external/CMakeLists.txt @@ -2,9 +2,7 @@ if (ASlibs) add_subdirectory(Nonlocal) add_subdirectory(MagProximity) add_subdirectory(libPhotoMeissner) -#[==[ add_subdirectory(libSpinValve) -#]==] endif (ASlibs) #[==[ diff --git a/src/external/libSpinValve/CMakeLists.txt b/src/external/libSpinValve/CMakeLists.txt new file mode 100644 index 00000000..1d3d9719 --- /dev/null +++ b/src/external/libSpinValve/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(classes) diff --git a/src/external/libSpinValve/classes/CMakeLists.txt b/src/external/libSpinValve/classes/CMakeLists.txt new file mode 100644 index 00000000..39161b82 --- /dev/null +++ b/src/external/libSpinValve/classes/CMakeLists.txt @@ -0,0 +1,74 @@ +# - Spin Valve library -------------------------------------------------------- + +#--- generate necessary dictionaries ------------------------------------------ +set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) + +root_generate_dictionary( + PSkewedLorentzianDict + -I${FFTW3_INCLUDE_DIR} + -I${MUSRFIT_INC} + -I${CMAKE_CURRENT_SOURCE_DIR}/../include + PSkewedLorentzian.h + LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PSkewedLorentzianLinkDef.h +) +root_generate_dictionary( + PStartupHandler_SVDict + -I${CMAKE_CURRENT_SOURCE_DIR}/../include + PStartupHandler_SV.h + LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_SVLinkDef.h +) + +#--- create pkg-config info --------------------------------------------------- +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "\$\{prefix\}") +set(libdir "\$\{exec_prefix\}/lib") +set(includedir "\$\{prefix\}/include") +set(P_SPIN_VALVE_VERSION "1.0.0") +set(P_SPIN_VALVE_LIBRARY_NAME "PSpinValve") +configure_file("PSpinValve.pc.in" "PSpinValve.pc" @ONLY) + +#--- lib creation ------------------------------------------------------------- +add_library(PSpinValve SHARED + PSkewedLorentzian.cpp + PSkewedLorentzianDict.cxx + PStartupHandler_SV.cpp + PStartupHandler_SVDict.cxx +) +#--- make sure that the include directory is found ---------------------------- +target_include_directories( + PSpinValve BEFORE PRIVATE + $ + $ + $ +) + +#--- add library dependencies ------------------------------------------------- +target_link_libraries(PSpinValve ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} PUserFcnBase) + +#--- install PSpinValve solib ------------------------------------------------- +install(TARGETS PSpinValve DESTINATION lib) + +#--- install root pcm's and rootmaps ------------------------------------------ +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzianDict_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzianDict.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SVDict_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SVDict.rootmap + DESTINATION lib +) + +#--- install PSpinValve header ------------------------------------------------ +install( + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../include/PSkewedLorentzian.h + ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_SV.h + DESTINATION + include +) + +#--- install pkg-config info -------------------------------------------------- +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/PSpinValve.pc + DESTINATION lib/pkgconfig +) + diff --git a/src/external/libSpinValve/classes/PSpinValve.pc.in b/src/external/libSpinValve/classes/PSpinValve.pc.in new file mode 100644 index 00000000..05d75377 --- /dev/null +++ b/src/external/libSpinValve/classes/PSpinValve.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: PSpinValve +Description: C++ shared library providing the spin valve fitter class +Version: @P_SPIN_VALVE_VERSION@ +Libs: -L${libdir} -l@P_SPIN_VALVE_LIBRARY_NAME@ +Cflags: -I${includedir}