https://gitlab.com/fastjet/fastjet/-/merge_requests/28 https://bugs.gentoo.org/962836 diff --git c/CMakeLists.txt w/CMakeLists.txt index 4b4bb6fe..bc9d3f9f 100644 --- c/CMakeLists.txt +++ w/CMakeLists.txt @@ -150,10 +150,11 @@ option(FASTJET_ENABLE_PLUGIN_D0RUNIICONE "Enable the D0RunIICone plugin [de option(FASTJET_ENABLE_PLUGIN_PXCONE "Enable the PxCone plugin [default=OFF]" OFF) option(FASTJET_ENABLE_PLUGIN_TRACKJET "Enable the TrackJet plugin [default=OFF]" OFF) -option(FASTJET_ENABLE_ALLCXXPLUGINS "Enable all the C++ plugins [default=OFF]" OFF) -option(FASTJET_ENABLE_ALLPLUGINS "Enable all the plugins [default=OFF]" OFF) +option(FASTJET_ENABLE_ALLCXXPLUGINS "Enable all the C++ plugins [default=unset]" "") +option(FASTJET_ENABLE_ALLPLUGINS "Enable all the plugins [default=unset]" "") -if (FASTJET_ENABLE_ALLCXXPLUGINS OR FASTJET_ENABLE_ALLPLUGINS) +if(NOT FASTJET_ENABLE_ALLCXXPLUGINS STREQUAL "") +if (FASTJET_ENABLE_ALLCXXPLUGINS) set(FASTJET_ENABLE_PLUGIN_ATLASCONE ON) set(FASTJET_ENABLE_PLUGIN_CDFCONES ON) set(FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE ON) @@ -165,10 +166,49 @@ if (FASTJET_ENABLE_ALLCXXPLUGINS OR FASTJET_ENABLE_ALLPLUGINS) set(FASTJET_ENABLE_PLUGIN_NESTEDDEFS ON) set(FASTJET_ENABLE_PLUGIN_SISCONE ON) set(FASTJET_ENABLE_PLUGIN_TRACKJET ON) +else() + set(FASTJET_ENABLE_PLUGIN_ATLASCONE OFF) + set(FASTJET_ENABLE_PLUGIN_CDFCONES OFF) + set(FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE OFF) + set(FASTJET_ENABLE_PLUGIN_D0RUNICONE OFF) + set(FASTJET_ENABLE_PLUGIN_D0RUNIICONE OFF) + set(FASTJET_ENABLE_PLUGIN_EECAMBRIDGE OFF) + set(FASTJET_ENABLE_PLUGIN_GRIDJET OFF) + set(FASTJET_ENABLE_PLUGIN_JADE OFF) + set(FASTJET_ENABLE_PLUGIN_NESTEDDEFS OFF) + set(FASTJET_ENABLE_PLUGIN_SISCONE OFF) + set(FASTJET_ENABLE_PLUGIN_TRACKJET OFF) +endif() endif() +if(NOT FASTJET_ENABLE_ALLPLUGINS STREQUAL "") if (FASTJET_ENABLE_ALLPLUGINS) set(FASTJET_ENABLE_PLUGIN_PXCONE ON) + set(FASTJET_ENABLE_PLUGIN_ATLASCONE ON) + set(FASTJET_ENABLE_PLUGIN_CDFCONES ON) + set(FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE ON) + set(FASTJET_ENABLE_PLUGIN_D0RUNICONE ON) + set(FASTJET_ENABLE_PLUGIN_D0RUNIICONE ON) + set(FASTJET_ENABLE_PLUGIN_EECAMBRIDGE ON) + set(FASTJET_ENABLE_PLUGIN_GRIDJET ON) + set(FASTJET_ENABLE_PLUGIN_JADE ON) + set(FASTJET_ENABLE_PLUGIN_NESTEDDEFS ON) + set(FASTJET_ENABLE_PLUGIN_SISCONE ON) + set(FASTJET_ENABLE_PLUGIN_TRACKJET ON) +else() + set(FASTJET_ENABLE_PLUGIN_PXCONE OFF) + set(FASTJET_ENABLE_PLUGIN_ATLASCONE OFF) + set(FASTJET_ENABLE_PLUGIN_CDFCONES OFF) + set(FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE OFF) + set(FASTJET_ENABLE_PLUGIN_D0RUNICONE OFF) + set(FASTJET_ENABLE_PLUGIN_D0RUNIICONE OFF) + set(FASTJET_ENABLE_PLUGIN_EECAMBRIDGE OFF) + set(FASTJET_ENABLE_PLUGIN_GRIDJET OFF) + set(FASTJET_ENABLE_PLUGIN_JADE OFF) + set(FASTJET_ENABLE_PLUGIN_NESTEDDEFS OFF) + set(FASTJET_ENABLE_PLUGIN_SISCONE OFF) + set(FASTJET_ENABLE_PLUGIN_TRACKJET OFF) +endif() endif() # compile-time debugging info diff --git c/plugins/CMakeLists.txt w/plugins/CMakeLists.txt index a44294c3..5dcbd51b 100644 --- c/plugins/CMakeLists.txt +++ w/plugins/CMakeLists.txt @@ -71,43 +71,47 @@ endif() # make sure the parent gets access to the list of plugins set(LIST_ALL_PLUGINS "${LIST_ALL_PLUGINS}" PARENT_SCOPE) -# build a local library -add_library(fastjetplugins SHARED ${combined_objects}) -target_link_libraries(fastjetplugins PUBLIC fastjet) +# if no plugins were selected, we should not try to build an empty library +list(LENGTH combined_objects num_objects) +if (num_objects GREATER 0) + # build a local library + add_library(fastjetplugins SHARED ${combined_objects}) + target_link_libraries(fastjetplugins PUBLIC fastjet) -target_include_directories(fastjetplugins PUBLIC - $ - $ - ) + target_include_directories(fastjetplugins PUBLIC + $ + $ + ) -add_library(fastjet::fastjetplugins ALIAS fastjetplugins) + add_library(fastjet::fastjetplugins ALIAS fastjetplugins) -# NB this is specifically for building scikit-hep/fastjet wheels -if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set_target_properties(fastjetplugins PROPERTIES INSTALL_RPATH "@loader_path") -else() - set_target_properties(fastjetplugins PROPERTIES INSTALL_RPATH "$ORIGIN") -endif() + # NB this is specifically for building scikit-hep/fastjet wheels + if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set_target_properties(fastjetplugins PROPERTIES INSTALL_RPATH "@loader_path") + else() + set_target_properties(fastjetplugins PROPERTIES INSTALL_RPATH "$ORIGIN") + endif() -# make sure the SISCone libraries are included if necessary -if (FASTJET_ENABLE_PLUGIN_SISCONE) - target_link_libraries(fastjetplugins PUBLIC siscone::siscone siscone::siscone_spherical) -endif() + # make sure the SISCone libraries are included if necessary + if (FASTJET_ENABLE_PLUGIN_SISCONE) + target_link_libraries(fastjetplugins PUBLIC siscone::siscone siscone::siscone_spherical) + endif() -# here we specify that runtime library components (e.g. .dlls, but not .so or .dylib) -# go into the binary directory (e.g. /bin, rather than the library directory e.g /lib) -# this is typical organization on windows installs -install(TARGETS - fastjetplugins - EXPORT - FastjetTargets - RUNTIME - COMPONENT Runtime - DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY - COMPONENT Runtime - DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE - COMPONENT Development - DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) + # here we specify that runtime library components (e.g. .dlls, but not .so or .dylib) + # go into the binary directory (e.g. /bin, rather than the library directory e.g /lib) + # this is typical organization on windows installs + install(TARGETS + fastjetplugins + EXPORT + FastjetTargets + RUNTIME + COMPONENT Runtime + DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY + COMPONENT Runtime + DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE + COMPONENT Development + DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) +endif() \ No newline at end of file