Skip to content
Merged
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
62 changes: 35 additions & 27 deletions external_libraries/vexcl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
cmake_minimum_required(VERSION 3.1)

if(${CMAKE_VERSION} VERSION_LESS 3.12)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
else()
cmake_policy(VERSION 3.12)
endif()
cmake_minimum_required(VERSION 3.12...4.0)

if (NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type selected, default to RelWithDebInfo")
Expand Down Expand Up @@ -125,9 +119,6 @@ target_compile_definitions(Common INTERFACE
#----------------------------------------------------------------------------
find_package(OpenCL)

# Ensure all targets are available
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/VexCLOpenCLTarget.cmake")

if(OpenCL_FOUND)
set(CL_HPP_TARGET_OPENCL_VERSION 120 CACHE STRING "Target OpenCL version")
set(CL_HPP_MINIMUM_OPENCL_VERSION 120 CACHE STRING "Minimum OpenCL version")
Expand Down Expand Up @@ -164,16 +155,40 @@ if(OpenCL_FOUND)
endif()
endif()

find_package(CUDA)
if(CUDA_FOUND)
add_library(CUDA INTERFACE)
add_library(VexCL::CUDA ALIAS CUDA)

target_include_directories(CUDA INTERFACE "${CUDA_INCLUDE_DIRS}")
target_link_libraries(CUDA INTERFACE Common "${CUDA_CUDA_LIBRARY}")
target_compile_definitions(CUDA INTERFACE VEXCL_BACKEND_CUDA)

message(STATUS "Found VexCL::CUDA")
# find_package(CUDA) has been deprecated since CMake 3.10,
# but checking for CUDA availability without enabling language
# support for it (using FindCUDAToolkit) was only added in
# CMake 3.17. To use the deprecated method in versions < 3.17,
# CMP0146 must be set.
if (${CMAKE_VERSION} VERSION_LESS 3.17)
# Use the deprecated find_package(CUDA) to check for
# CUDA availability.
cmake_policy(SET CMP0146 NEW)
find_package(CUDA)
if (CUDA_FOUND)
add_library(CUDA INTERFACE)
add_library(VexCL::CUDA ALIAS CUDA)

target_include_directories(CUDA INTERFACE "${CUDA_INCLUDE_DIRS}")
target_link_libraries(CUDA INTERFACE Common "${CUDA_CUDA_LIBRARY}")
target_compile_definitions(CUDA INTERFACE VEXCL_BACKEND_CUDA)

message(STATUS "Found VexCL::CUDA")
endif()
else()
# Check for CUDA availability using FindCUDAToolkit and add
# support for the CUDA language if it is successful.
find_package(CUDAToolkit)
if (CUDAToolkit_FOUND)
enable_language(CUDA)
add_library(CUDA INTERFACE)
add_library(VexCL::CUDA ALIAS CUDA)

target_link_libraries(CUDA INTERFACE Common CUDA::toolkit CUDA::cuda_driver)
target_compile_definitions(CUDA INTERFACE VEXCL_BACKEND_CUDA)

message(STATUS "Found VexCL::CUDA")
endif()
endif()

find_path(Boost_DLL NAMES boost/dll PATHS ${Boost_INCLUDE_DIRS})
Expand Down Expand Up @@ -343,12 +358,6 @@ if (VEXCL_MASTER_PROJECT)
COPYONLY
)

configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/VexCLOpenCLTarget.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cmake/VexCLOpenCLTarget.cmake"
COPYONLY
)

configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/VexCLBoostTargets.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cmake/VexCLBoostTargets.cmake"
Expand All @@ -372,7 +381,6 @@ if (VEXCL_MASTER_PROJECT)
FILES
${CMAKE_CURRENT_BINARY_DIR}/cmake/VexCLConfig.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/VexCLTools.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/VexCLOpenCLTarget.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/VexCLBoostTargets.cmake
DESTINATION
share/vexcl/cmake
Expand Down
5 changes: 0 additions & 5 deletions external_libraries/vexcl/cmake/VexCLConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ if(@OpenCL_FOUND@)
set(OpenCL_INCLUDE_DIR "@OpenCL_INCLUDE_DIR@")
set(OpenCL_LIBRARY "@OpenCL_LIBRARY@")
find_package(OpenCL)

# Support for CMake < 3.7
include("${CMAKE_CURRENT_LIST_DIR}/VexCLOpenCLTarget.cmake")
endif()


Expand All @@ -54,8 +51,6 @@ find_package(Boost REQUIRED COMPONENTS

include("${CMAKE_CURRENT_LIST_DIR}/VexCLBoostTargets.cmake")

include("${CMAKE_CURRENT_LIST_DIR}/VexCLTargets.cmake")

if(TARGET VexCL::OpenCL)
message(STATUS "Found VexCL::OpenCL")
endif()
Expand Down
16 changes: 0 additions & 16 deletions external_libraries/vexcl/cmake/VexCLOpenCLTarget.cmake

This file was deleted.

2 changes: 1 addition & 1 deletion external_libraries/vexcl/docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.12...4.0)
project(docs)

find_package(Doxygen QUIET)
Expand Down
2 changes: 1 addition & 1 deletion external_libraries/vexcl/docs/cmake.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ a couple of lines in your ``CmakeLists.txt``:

.. code-block:: cmake

cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.12...4.0)
project(example)

find_package(VexCL)
Expand Down
2 changes: 1 addition & 1 deletion external_libraries/vexcl/examples/simple/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.12...4.0)
project(hello)

find_package(VexCL)
Expand Down
Loading