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