diff --git a/LbDevTools/data/cmake/GaudiProjectConfig.cmake b/LbDevTools/data/cmake/GaudiProjectConfig.cmake index 97e961faa989c1b9fbd5412e35c41bdfd7da5e7e..ee1a77db720f082206a6c1a44be15cd8d3dd7d15 100644 --- a/LbDevTools/data/cmake/GaudiProjectConfig.cmake +++ b/LbDevTools/data/cmake/GaudiProjectConfig.cmake @@ -262,12 +262,10 @@ list(PREPEND CMAKE_MODULE_PATH \${PROJECT_SOURCE_DIR}/cmake ) -# Public dependencies +# Dependencies +set(WITH_${project}_PRIVATE_DEPENDENCIES TRUE) include(${project}Dependencies) -# Private dependencies -# ... - ") file(WRITE "${MIGRATION_DIR}/lhcbproject.yml" "---\nname: ${project}\nlicense: GPL-3.0-only\ndependencies:\n") @@ -285,7 +283,7 @@ include(${project}Dependencies) endif() endif() -# -- public dependencies +# -- Public dependencies ") # Initialize the headers db file @@ -709,6 +707,8 @@ main()") # -MIGRATION- file(APPEND "${MIGRATION_DIR}/CMakeLists.txt" "# -- Subdirectories\nlhcb_add_subdirectories(\n") set_property(GLOBAL PROPERTY MIGRATION_PROJECT_WITH_LIBRARIES FALSE) + file(APPEND "${MIGRATION_DEPS}" + "\n# -- Private dependencies\nif(WITH_${project}_PRIVATE_DEPENDENCIES)\n # ...\nendif()\n") file(WRITE ${CMAKE_BINARY_DIR}/subdirs_deps.dot "digraph subdirs_deps {\n") # Add all subdirectories to the project build. @@ -745,9 +745,9 @@ main()") file(APPEND "${MIGRATION_DIR}/CMakeLists.txt" ")\n\nlhcb_finalize_configuration(") get_property(MIGRATION_PROJECT_WITH_LIBRARIES GLOBAL PROPERTY MIGRATION_PROJECT_WITH_LIBRARIES) if(NOT MIGRATION_PROJECT_WITH_LIBRARIES) - file(APPEND "NO_EXPORT") + file(APPEND "${MIGRATION_DIR}/CMakeLists.txt" "NO_EXPORT") endif() - file(APPEND ")\n") + file(APPEND "${MIGRATION_DIR}/CMakeLists.txt" ")\n") #--- Special global targets for merging files. gaudi_merge_files(ConfDB lib ${CMAKE_PROJECT_NAME}.confdb) @@ -2422,7 +2422,7 @@ function(gaudi_add_library library) " # ${_s}\n") endforeach() file(APPEND "${MIGRATION_DIR}/${_subdir_name}/CMakeLists.txt" - ")\n") + " PRIVATE\n # ...\n)\n") set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY MIGRATION_DIR_WITH_LIBRARY ${library}) set_property(GLOBAL PROPERTY MIGRATION_PROJECT_WITH_LIBRARIES TRUE) diff --git a/LbDevTools/data/cmake/modules/FindFastJet.cmake b/LbDevTools/data/cmake/modules/FindFastJet.cmake index 33bf7e7311acf0622185fa072097402552afa46d..0356add121e3b8b7170a7e79d0cf939f623dc325 100644 --- a/LbDevTools/data/cmake/modules/FindFastJet.cmake +++ b/LbDevTools/data/cmake/modules/FindFastJet.cmake @@ -1,3 +1,13 @@ +############################################################################### +# (c) Copyright 2000-2021 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### # - Locate FastJet library # Defines: # @@ -7,6 +17,10 @@ # FASTJET_LIBRARY # FASTJET_LIBRARIES (not cached) # FASTJET_LIBRARY_DIRS (not cached) +# +# Imports: +# +# FastJet::FastJet find_path(FASTJET_INCLUDE_DIR fastjet/version.hh HINTS $ENV{FASTJET_ROOT_DIR}/include ${FASTJET_ROOT_DIR}/include) @@ -24,3 +38,12 @@ mark_as_advanced(FASTJET_FOUND FASTJET_INCLUDE_DIR FASTJET_LIBRARY) set(FASTJET_INCLUDE_DIRS ${FASTJET_INCLUDE_DIR}) set(FASTJET_LIBRARIES ${FASTJET_LIBRARY}) get_filename_component(FASTJET_LIBRARY_DIRS ${FASTJET_LIBRARY} PATH) + +if(TARGET FastJet::FastJet) + return() +endif() +if(FastJet_FOUND) + add_library(FastJet::FastJet IMPORTED INTERFACE) + target_include_directories(FastJet::FastJet SYSTEM INTERFACE ${FastJet_INCLUDE_DIRS}) + target_link_libraries(FastJet::FastJet INTERFACE ${FastJet_LIBRARY}) +endif() diff --git a/LbDevTools/templates/lb-dev/CMakeLists.txt b/LbDevTools/templates/lb-dev/CMakeLists.txt index 81fe5b15724d7b909af38c3d5df700e2bb45c317..1a7944fde67b7945b078e0fc1e004050347a4f44 100644 --- a/LbDevTools/templates/lb-dev/CMakeLists.txt +++ b/LbDevTools/templates/lb-dev/CMakeLists.txt @@ -10,6 +10,19 @@ include(CTest) # Load "lhcb_find_package" function include(${datadir}/cmake/LHCbFindPackage.cmake) +# Get the list of projects we are working on +execute_process( + COMMAND git remote + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE enabled_projects + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +# (this is a trick to split a atring into a list of words) +string(REGEX MATCHALL "[a-zA-Z0-9]+" enabled_projects "${enabled_projects}") +# Set flags to inherit private dependencies of the projects we work on +foreach(p IN LISTS enabled_projects) + set(WITH_${p}_PRIVATE_DEPENDENCIES TRUE) +endforeach() + include($${CMAKE_CURRENT_LIST_DIR}/cmake/${local_project}Dependencies.cmake) set(GAUDI_PREFER_LOCAL_TARGETS TRUE)