Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.16...3.30)
cmake_minimum_required(VERSION 3.16...4.1)

include(cmake/RecordCmdLine.cmake)

Expand Down
13 changes: 8 additions & 5 deletions cmake/VecCoreConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,11 @@ list(APPEND CMAKE_MODULE_PATH "${VecCore_CMAKE_DIR}")
include(CMakeFindDependencyMacro)

if (VecCore_FIND_COMPONENTS MATCHES "CUDA")
include(CheckLanguage)
check_language(CUDA)
if(CMAKE_CUDA_COMPILER)
enable_language(CUDA)
find_dependency(CUDAToolkit)
if(CUDAToolkit_FOUND)
set(VecCore_CUDA_FOUND True)
set(VecCore_CUDA_DEFINITIONS -DVECCORE_ENABLE_CUDA)
set(VecCore_CUDA_INCLUDE_DIR ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
set(VecCore_CUDA_INCLUDE_DIR ${CUDAToolkit_INCLUDE_DIRS})
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please explain the motivation for this change? The current way of doing things follows advice from CMake policy CMP0146, which suggests projects should use CMake's first class support for cuda via check_language(CUDA)/enable_language(CUDA). The addition of -DVECCORE_ENABLE_CUDA does require that the CUDA language be enabled if you are compiling CUDA code, because that will enable host/device macros, etc. If you want to handle that yourself, you can always find_package(VecCore) without specifying the CUDA component, then add_definitions(VECCORE_ENABLE_CUDA) yourself, without having to change this logic.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, this was last modified in this commit 743566f.

endif()
endif()

Expand Down Expand Up @@ -80,3 +78,8 @@ if (VecCore_FOUND AND NOT TARGET VecCore::VecCore)
INTERFACE_LINK_LIBRARIES "${VecCore_LIBRARIES}")
endif()
endif()

# Print a pretty message if the caller doesn't have a FindVecGeom.cmake
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/VecGeom/VecCore/

include(FindPackageHandleStandardArgs)
set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG "${CMAKE_CURRENT_LIST_FILE}")
find_package_handle_standard_args(@PROJECT_NAME@ CONFIG_MODE HANDLE_COMPONENTS)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably better to hard-code VecCore in these lines, to ensure things still work when VecCore is used inside another project with add_subdirectory(). However, with ROOT deprecating VecCore, if this is fine for VecGeom/Celeritas, it can stay like this.

Loading