From 3cb950277f23ff88a7fe076e55c41e57b772cd7b Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Fri, 1 Feb 2019 16:05:24 +0100 Subject: [PATCH] cmake/cpack root dictionary issue fixed. In order that package assembly works, the code needs to be relocatble and any hints linking it to the original source need to be absent. The changes here do exactely this. For rootcling the '-inlineInputHeader' option is needed, otherwise the dictionary wants to load the header file from the source destination which of course will fail when installing the package on a machine without the source. --- src/classes/CMakeLists.txt | 36 +++++++++++++++---- src/external/BMWtools/CMakeLists.txt | 5 +-- src/external/MagProximity/CMakeLists.txt | 5 +++ src/external/MusrRoot/CMakeLists.txt | 8 ++++- src/external/Nonlocal/CMakeLists.txt | 17 +++++---- src/external/TLemRunHeader/CMakeLists.txt | 13 +++++-- src/external/libBNMR/CMakeLists.txt | 6 ++-- .../libCalcMeanFieldsLEM/CMakeLists.txt | 8 ++--- .../libFitPofB/classes/CMakeLists.txt | 7 ++++ src/external/libGapIntegrals/CMakeLists.txt | 3 ++ src/external/libLFRelaxation/CMakeLists.txt | 3 ++ .../libPhotoMeissner/classes/CMakeLists.txt | 5 +++ .../libSpinValve/classes/CMakeLists.txt | 5 +++ src/external/libZFRelaxation/CMakeLists.txt | 3 ++ 14 files changed, 98 insertions(+), 26 deletions(-) diff --git a/src/classes/CMakeLists.txt b/src/classes/CMakeLists.txt index 7b7e0c5f..358f9c9a 100644 --- a/src/classes/CMakeLists.txt +++ b/src/classes/CMakeLists.txt @@ -2,35 +2,41 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( PFourierCanvasDict - -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PFourierCanvas.h + -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${PREFIX_INC} PFourierCanvas.h LINKDEF ${MUSRFIT_INC}/PFourierCanvasLinkDef.h + OPTIONS -inlineInputHeader MODULE PFourierCanvas ) root_generate_dictionary( PMusrCanvasDict - -I${Boost_INCLUDE_DIR} -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PMusrCanvas.h + -I${Boost_INCLUDE_DIR} -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${PREFIX_INC} PMusrCanvas.h LINKDEF ${MUSRFIT_INC}/PMusrCanvasLinkDef.h + OPTIONS -inlineInputHeader MODULE PMusrCanvas ) root_generate_dictionary( PMusrT0Dict - -I${Boost_INCLUDE_DIR} -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PMusrT0.h + -I${Boost_INCLUDE_DIR} -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${PREFIX_INC} PMusrT0.h LINKDEF ${MUSRFIT_INC}/PMusrT0LinkDef.h + OPTIONS -inlineInputHeader MODULE PMusrT0 ) root_generate_dictionary( PStartupHandlerDict - -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PStartupHandler.h + -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${PREFIX_INC} PStartupHandler.h LINKDEF ${MUSRFIT_INC}/PStartupHandlerLinkDef.h + OPTIONS -inlineInputHeader MODULE PStartupHandler ) root_generate_dictionary( PUserFcnBaseDict - -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PUserFcnBase.h + -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${PREFIX_INC} PUserFcnBase.h LINKDEF ${MUSRFIT_INC}/PUserFcnBaseLinkDef.h + OPTIONS -inlineInputHeader MODULE PUserFcnBase ) @@ -160,15 +166,31 @@ install( ) #--- install headers ---------------------------------------------------------- -#--- only install headers needed for classes with dictionary install( - FILES ${MUSRFIT_INC}/PFourierCanvas.h + FILES ${MUSRFIT_INC}/PFitterFcn.h + ${MUSRFIT_INC}/PFitter.h + ${MUSRFIT_INC}/PFourierCanvas.h ${MUSRFIT_INC}/PFourier.h + ${MUSRFIT_INC}/PFunctionGrammar.h + ${MUSRFIT_INC}/PFunction.h + ${MUSRFIT_INC}/PFunctionHandler.h + ${MUSRFIT_INC}/PMsr2Data.h + ${MUSRFIT_INC}/PMsrHandler.h ${MUSRFIT_INC}/PMusrCanvas.h ${MUSRFIT_INC}/PMusr.h ${MUSRFIT_INC}/PMusrT0.h + ${MUSRFIT_INC}/PPrepFourier.h + ${MUSRFIT_INC}/PRunAsymmetry.h + ${MUSRFIT_INC}/PRunAsymmetryRRF.h + ${MUSRFIT_INC}/PRunBase.h + ${MUSRFIT_INC}/PRunDataHandler.h ${MUSRFIT_INC}/PRunListCollection.h + ${MUSRFIT_INC}/PRunMuMinus.h + ${MUSRFIT_INC}/PRunNonMusr.h + ${MUSRFIT_INC}/PRunSingleHisto.h + ${MUSRFIT_INC}/PRunSingleHistoRRF.h ${MUSRFIT_INC}/PStartupHandler.h + ${MUSRFIT_INC}/PTheory.h ${MUSRFIT_INC}/PUserFcnBase.h DESTINATION include ) diff --git a/src/external/BMWtools/CMakeLists.txt b/src/external/BMWtools/CMakeLists.txt index 3341b698..7a189984 100644 --- a/src/external/BMWtools/CMakeLists.txt +++ b/src/external/BMWtools/CMakeLists.txt @@ -3,12 +3,13 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) set(CUBA_INC ${CMAKE_SOURCE_DIR}/src/external/libCuba/src) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( BMWStartupHandlerDict - -I${MUSRFIT_INC} - BMWStartupHandler.h + -I${MUSRFIT_INC} -I${PREFIX_INC} BMWStartupHandler.h LINKDEF BMWStartupHandlerLinkDef.h + OPTIONS -inlineInputHeader MODULE BMWStartupHandler ) diff --git a/src/external/MagProximity/CMakeLists.txt b/src/external/MagProximity/CMakeLists.txt index 1fa02e93..57d37b0d 100644 --- a/src/external/MagProximity/CMakeLists.txt +++ b/src/external/MagProximity/CMakeLists.txt @@ -2,20 +2,25 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( PMagProximityFitterDict -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} + -I${PREFIX_INC} PMagProximityFitter.h LINKDEF PMagProximityFitterLinkDef.h + OPTIONS -inlineInputHeader MODULE PMagProximityFitter ) root_generate_dictionary( PMPStartupHandlerDict -I${MUSRFIT_INC} + -I${PREFIX_INC} PMPStartupHandler.h LINKDEF PMPStartupHandlerLinkDef.h + OPTIONS -inlineInputHeader MODULE PMPStartupHandler ) diff --git a/src/external/MusrRoot/CMakeLists.txt b/src/external/MusrRoot/CMakeLists.txt index b2112b17..9914f57e 100644 --- a/src/external/MusrRoot/CMakeLists.txt +++ b/src/external/MusrRoot/CMakeLists.txt @@ -1,8 +1,14 @@ # - TMusrRunHeader library ---------------------------------------------------- #--- generate necessary dictionaries ------------------------------------------ +set(MUSRROOT_INC ${CMAKE_SOURCE_DIR}/src/external/MusrRoot) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) + root_generate_dictionary( - TMusrRunHeaderDict TMusrRunHeader.h LINKDEF TMusrRunHeaderLinkDef.h + TMusrRunHeaderDict + -I${MUSRROOT_INC} -I${PREFIX_INC} TMusrRunHeader.h + LINKDEF TMusrRunHeaderLinkDef.h + OPTIONS -inlineInputHeader MODULE TMusrRunHeader ) diff --git a/src/external/Nonlocal/CMakeLists.txt b/src/external/Nonlocal/CMakeLists.txt index 13127cc3..89786877 100644 --- a/src/external/Nonlocal/CMakeLists.txt +++ b/src/external/Nonlocal/CMakeLists.txt @@ -2,17 +2,21 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) +set(NONLOCAL_INC ${CMAKE_SOURCE_DIR}/src/external/Nonlocal) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( PNL_PippardFitterDict - -I${FFTW3_INCLUDE_DIR} - -I${MUSRFIT_INC} - PNL_PippardFitter.h + -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${NONLOCAL_INC} -I${PREFIX_INC} PNL_PippardFitter.h LINKDEF PNL_PippardFitterLinkDef.h + OPTIONS -inlineInputHeader MODULE PNL_PippardFitter ) root_generate_dictionary( - PNL_StartupHandlerDict PNL_StartupHandler.h LINKDEF PNL_StartupHandlerLinkDef.h + PNL_StartupHandlerDict + -I${NONLOCAL_INC} -I${PREFIX_INC} PNL_StartupHandler.h + LINKDEF PNL_StartupHandlerLinkDef.h + OPTIONS -inlineInputHeader MODULE PNL_StartupHandler ) @@ -38,7 +42,7 @@ target_include_directories( PNL_PippardFitter BEFORE PRIVATE $ $ - $ + $ ) #--- set target properties, e.g. version -------------------------------------- @@ -64,7 +68,8 @@ install( #--- install PNL_PippardFitter header ----------------------------------------- install( - FILES + FILES + PNonlocal.h PNL_PippardFitter.h PNL_RgeHandler.h PNL_StartupHandler.h diff --git a/src/external/TLemRunHeader/CMakeLists.txt b/src/external/TLemRunHeader/CMakeLists.txt index d361da50..4dbc8fe9 100644 --- a/src/external/TLemRunHeader/CMakeLists.txt +++ b/src/external/TLemRunHeader/CMakeLists.txt @@ -1,12 +1,21 @@ # -TLemRunHeader library ------------------------------------------------------ #--- generate necessary dictionaries ------------------------------------------ +set(TLEMRUNHEADER_INC ${CMAKE_SOURCE_DIR}/src/external/TLemRunHeader) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) + root_generate_dictionary( - TLemRunHeaderDict TLemRunHeader.h LINKDEF TLemRunHeaderLinkDef.h + TLemRunHeaderDict + -I${TLEMRUNHEADER_INC} -I${PREFIX_INC} TLemRunHeader.h + LINKDEF TLemRunHeaderLinkDef.h + OPTIONS -inlineInputHeader MODULE TLemRunHeader ) root_generate_dictionary( - TLemStatsDict TLemStats.h LINKDEF TLemStatsLinkDef.h + TLemStatsDict + -I${TLEMRUNHEADER_INC} -I${PREFIX_INC} TLemStats.h + LINKDEF TLemStatsLinkDef.h + OPTIONS -inlineInputHeader MODULE TLemStats ) diff --git a/src/external/libBNMR/CMakeLists.txt b/src/external/libBNMR/CMakeLists.txt index 356b61f5..de1596b1 100644 --- a/src/external/libBNMR/CMakeLists.txt +++ b/src/external/libBNMR/CMakeLists.txt @@ -5,13 +5,13 @@ add_subdirectory(libLineProfile) #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( TBNMRDict - -I${FFTW3_INCLUDE_DIR} - -I${MUSRFIT_INC} - TBNMR.h + -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${PREFIX_INC} TBNMR.h LINKDEF TBNMRLinkDef.h + OPTIONS -inlineInputHeader MODULE TBNMR ) diff --git a/src/external/libCalcMeanFieldsLEM/CMakeLists.txt b/src/external/libCalcMeanFieldsLEM/CMakeLists.txt index c41b573c..9300811c 100644 --- a/src/external/libCalcMeanFieldsLEM/CMakeLists.txt +++ b/src/external/libCalcMeanFieldsLEM/CMakeLists.txt @@ -4,15 +4,13 @@ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) set(BMW_TOOLS_INC ${CMAKE_SOURCE_DIR}/src/external/BMWtools) set(POFB_INC ${CMAKE_SOURCE_DIR}/src/external/libFitPofB/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( TCalcMeanFieldsLEMDict - -I${FFTW3_INCLUDE_DIR} - -I${MUSRFIT_INC} - -I${BMW_TOOLS_INC} - -I${POFB_INC} - TCalcMeanFieldsLEM.h + -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${BMW_TOOLS_INC} -I${POFB_INC} -I${PREFIX_INC} TCalcMeanFieldsLEM.h LINKDEF TCalcMeanFieldsLEMLinkDef.h + OPTIONS -inlineInputHeader MODULE TCalcMeanFieldsLEM ) diff --git a/src/external/libFitPofB/classes/CMakeLists.txt b/src/external/libFitPofB/classes/CMakeLists.txt index fab6a2c1..08f2e675 100644 --- a/src/external/libFitPofB/classes/CMakeLists.txt +++ b/src/external/libFitPofB/classes/CMakeLists.txt @@ -4,6 +4,7 @@ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) set(BMW_TOOLS_INC ${CMAKE_SOURCE_DIR}/src/external/BMWtools) set(POFB_INC ${CMAKE_SOURCE_DIR}/src/external/libFitPofB/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( TLondon1DDict @@ -12,8 +13,10 @@ root_generate_dictionary( -I${BMW_TOOLS_INC} -I${POFB_INC} -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} TLondon1D.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/TLondon1DLinkDef.h + OPTIONS -inlineInputHeader MODULE TLondon1D ) root_generate_dictionary( @@ -23,8 +26,10 @@ root_generate_dictionary( -I${BMW_TOOLS_INC} -I${POFB_INC} -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} TVortex.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/TVortexLinkDef.h + OPTIONS -inlineInputHeader MODULE TVortex ) root_generate_dictionary( @@ -34,8 +39,10 @@ root_generate_dictionary( -I${BMW_TOOLS_INC} -I${POFB_INC} -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} TSkewedGss.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/TSkewedGssLinkDef.h + OPTIONS -inlineInputHeader MODULE TSkewedGss ) diff --git a/src/external/libGapIntegrals/CMakeLists.txt b/src/external/libGapIntegrals/CMakeLists.txt index 9611de12..76d191df 100644 --- a/src/external/libGapIntegrals/CMakeLists.txt +++ b/src/external/libGapIntegrals/CMakeLists.txt @@ -3,14 +3,17 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) set(BMW_TOOLS_INC ${CMAKE_SOURCE_DIR}/src/external/BMWtools) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( TGapIntegralsDict -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${BMW_TOOLS_INC} + -I${PREFIX_INC} TGapIntegrals.h LINKDEF TGapIntegralsLinkDef.h + OPTIONS -inlineInputHeader MODULE TGapIntegrals ) diff --git a/src/external/libLFRelaxation/CMakeLists.txt b/src/external/libLFRelaxation/CMakeLists.txt index 59f8bd5f..31b66b5f 100644 --- a/src/external/libLFRelaxation/CMakeLists.txt +++ b/src/external/libLFRelaxation/CMakeLists.txt @@ -3,14 +3,17 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) set(BMW_TOOLS_INC ${CMAKE_SOURCE_DIR}/src/external/BMWtools) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( TLFRelaxationDict -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${BMW_TOOLS_INC} + -I${PREFIX_INC} TLFRelaxation.h LINKDEF TLFRelaxationLinkDef.h + OPTIONS -inlineInputHeader MODULE TLFRelaxation ) diff --git a/src/external/libPhotoMeissner/classes/CMakeLists.txt b/src/external/libPhotoMeissner/classes/CMakeLists.txt index dcf94dec..93a57b46 100644 --- a/src/external/libPhotoMeissner/classes/CMakeLists.txt +++ b/src/external/libPhotoMeissner/classes/CMakeLists.txt @@ -2,6 +2,7 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( PPhotoMeissnerDict @@ -10,16 +11,20 @@ root_generate_dictionary( -I${ROOT_INCLUDE_DIRS} -I${MUSRFIT_INC} -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} PPhotoMeissner.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PPhotoMeissnerLinkDef.h + OPTIONS -inlineInputHeader MODULE PPhotoMeissner ) root_generate_dictionary( PStartupHandler_PMDict -I${MUSRFIT_INC} -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} PStartupHandler_PM.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_PMLinkDef.h + OPTIONS -inlineInputHeader MODULE PStartupHandler_PM ) diff --git a/src/external/libSpinValve/classes/CMakeLists.txt b/src/external/libSpinValve/classes/CMakeLists.txt index 09142a42..890742d8 100644 --- a/src/external/libSpinValve/classes/CMakeLists.txt +++ b/src/external/libSpinValve/classes/CMakeLists.txt @@ -2,21 +2,26 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( PSkewedLorentzianDict -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} PSkewedLorentzian.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PSkewedLorentzianLinkDef.h + OPTIONS -inlineInputHeader MODULE PSkewedLorentzian ) root_generate_dictionary( PStartupHandler_SVDict -I${CMAKE_CURRENT_SOURCE_DIR}/../include + -I${PREFIX_INC} PStartupHandler_SV.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_SVLinkDef.h + OPTIONS -inlineInputHeader MODULE PStartupHandler_SV ) diff --git a/src/external/libZFRelaxation/CMakeLists.txt b/src/external/libZFRelaxation/CMakeLists.txt index 8beaa49e..8b32160f 100644 --- a/src/external/libZFRelaxation/CMakeLists.txt +++ b/src/external/libZFRelaxation/CMakeLists.txt @@ -3,14 +3,17 @@ #--- generate necessary dictionaries ------------------------------------------ set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include) set(BMW_TOOLS_INC ${CMAKE_SOURCE_DIR}/src/external/BMWtools) +set(PREFIX_INC ${CMAKE_INSTALL_PREFIX}/include) root_generate_dictionary( ZFRelaxationDict -I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC} -I${BMW_TOOLS_INC} + -I${PREFIX_INC} ZFRelaxation.h LINKDEF ZFRelaxationLinkDef.h + OPTIONS -inlineInputHeader MODULE ZFRelaxation )