third_party_opencl-headers/CMakeLists.txt
Nagy-Egri Máté Ferenc 006fc6797e
Comprehensive CMake Package Config support (#107)
* Add CMake Packaging + CI For Package

* Uniform formatting

* Explicit compiler detection

* Simplify exported target name

* Changed include dir to SYSTEM BEFORE

* Remove travis

* Initial Github Actions yaml

* Fix CWD

* Remove CWD from YAML

* MSVC warning flags

* Fix CWD for CTest invocations

* Relative CWD

* runner.workspace

* enable tests in build

* Move to C flags

* Enable testing in CI

* GCC warnings

* Don't meddle with compiler flags in CMake

* C2059: syntax error: 'bad suffix on number'

* C4001: nonstd ext 'single line comment' was used

* /wd4001

* /wd4001 again

* Remove Za builds of cl_icd_h.c

* Fix oeprator precedence

* Refrain from altering global state

* Add C_STANDARD to GCC build

* Add 32-bit and 64-bit matrix dims

* Change -march to -m

* Try adding host

* install gcc-multilib

* Add GCC 8 & 9 multilib

* Install GCC multilib conditionally

* Add note on Windows C versions incoming

* Add INCRMENTAL to silence notice on full link

* Experiment with disabling

* Initial MacOS config

* Add ninja to MacOS build

* Fix nproc

* nproc -> sysctl

* Xcode

* cmd -> bash

* which gcc-9

* Actual GCC invocation

* Check gcc if symlink

* follow link

* Obtain env

* Cleanup

* Re-enable Windows and Linux

* Check pkgconfig

* Syntax fix

* INSTALL_PREFIX to PREFIX_PATH

* Use CONFIG

* Added bare and SDK consumption

* Fix bare target

* Fix test for unsued variable

* Add missing semi-colons

* Rework SDK emulation

* Fix indentation

* Fix build path for SDK consumption

* Add Windows consumption test

* MacOS

* Fix indentation

* Enable MacOS

* CMAKE_INSTALL_PREFIX >> CMAKE_PREFIX_PATH

* Fix install

* Install Release on Windows

* Re-enable Linux and Windows

* Added C99 builds

* Removed pkgconfig.c duplication

* Fix out-of-sync target in readme

* Added policy to make readme sample work

* match up paths in readme samples

* Homogenize target names

* Remove all warnings from sample readme

Co-authored-by: sL1pKn07 <sl1pkn07@gmail.com>
2020-11-24 19:18:58 +01:00

67 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.0)
project(OpenCLHeaders
VERSION 2.2
LANGUAGES C # Ideally should be NONE, but GNUInstallDirs detects platform arch using try_compile
# https://stackoverflow.com/questions/43379311/why-does-project-affect-cmakes-opinion-on-cmake-sizeof-void-p
)
add_library(Headers INTERFACE)
target_include_directories(Headers
SYSTEM
BEFORE
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
install(
TARGETS Headers
EXPORT OpenCLHeadersTargets
)
include(GNUInstallDirs)
install(
DIRECTORY CL
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
export(
EXPORT OpenCLHeadersTargets
FILE ${PROJECT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersTargets.cmake
NAMESPACE OpenCL::
)
file(
WRITE ${PROJECT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfig.cmake
"include(\"\${CMAKE_CURRENT_LIST_DIR}/OpenCLHeadersTargets.cmake\")"
)
set(config_package_location ${CMAKE_INSTALL_DATADIR}/cmake/OpenCLHeaders)
install(
EXPORT OpenCLHeadersTargets
FILE OpenCLHeadersTargets.cmake
NAMESPACE OpenCL::
DESTINATION ${config_package_location}
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfig.cmake
DESTINATION ${config_package_location}
)
unset(CMAKE_SIZEOF_VOID_P)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersConfigVersion.cmake
DESTINATION ${config_package_location}
)
if(BUILD_TESTING)
include(CTest)
add_subdirectory(tests)
endif()