• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1cmake_minimum_required(VERSION 3.0)
2
3project(OpenCLHeaders
4  VERSION 2.2
5  LANGUAGES C # Ideally should be NONE, but GNUInstallDirs detects platform arch using try_compile
6  # https://stackoverflow.com/questions/43379311/why-does-project-affect-cmakes-opinion-on-cmake-sizeof-void-p
7)
8
9add_library(Headers INTERFACE)
10target_include_directories(Headers
11  SYSTEM
12  BEFORE
13  INTERFACE
14    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
15    $<INSTALL_INTERFACE:include>
16)
17
18install(
19  TARGETS Headers
20  EXPORT OpenCLHeadersTargets
21)
22
23include(GNUInstallDirs)
24
25install(
26  DIRECTORY CL
27  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
28)
29export(
30  EXPORT OpenCLHeadersTargets
31  FILE ${PROJECT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersTargets.cmake
32  NAMESPACE OpenCL::
33)
34file(
35  WRITE ${PROJECT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfig.cmake
36  "include(\"\${CMAKE_CURRENT_LIST_DIR}/OpenCLHeadersTargets.cmake\")"
37)
38
39set(config_package_location ${CMAKE_INSTALL_DATADIR}/cmake/OpenCLHeaders)
40install(
41  EXPORT OpenCLHeadersTargets
42  FILE OpenCLHeadersTargets.cmake
43  NAMESPACE OpenCL::
44  DESTINATION ${config_package_location}
45)
46install(
47  FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfig.cmake
48  DESTINATION ${config_package_location}
49)
50
51unset(CMAKE_SIZEOF_VOID_P)
52include(CMakePackageConfigHelpers)
53write_basic_package_version_file(
54  ${CMAKE_CURRENT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfigVersion.cmake
55  VERSION ${PROJECT_VERSION}
56  COMPATIBILITY AnyNewerVersion
57)
58install(
59  FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfigVersion.cmake
60  DESTINATION ${config_package_location}
61)
62
63if(BUILD_TESTING)
64  include(CTest)
65  add_subdirectory(tests)
66endif()
67