diff --git a/CMakeLists.txt b/CMakeLists.txt index e0d87f8..ae08c37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) INCLUDE(GNUInstallDirs) # ---[ Project -PROJECT(FP16 C CXX) +PROJECT(fp16 C CXX) # ---[ Options. OPTION(FP16_BUILD_TESTS "Build FP16 unit tests" ON) @@ -33,7 +33,10 @@ SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps CACHE PATH "Confu-style dependencies binary directory") -IF(NOT DEFINED PSIMD_SOURCE_DIR) +find_package(unofficial-psimd CONFIG REQUIRED) +add_library(psimd ALIAS unofficial::psimd::psimd) + +IF(FALSE) MESSAGE(STATUS "Downloading PSimd to ${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd (define PSIMD_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/psimd-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -77,7 +80,7 @@ ENDIF() TARGET_INCLUDE_DIRECTORIES(fp16 INTERFACE $ $) - +TARGET_LINK_LIBRARIES(fp16 INTERFACE psimd) INSTALL(FILES include/fp16.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) INSTALL(FILES @@ -89,6 +92,23 @@ INSTALL(FILES include/fp16/avx2.py DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fp16) + +INSTALL(TARGETS fp16 + EXPORT unofficial-fp16-config-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + INSTALL(EXPORT unofficial-fp16-config-targets NAMESPACE unofficial::fp16:: + FILE unofficial-fp16-config-targets.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fp16) # share/fp16 + +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-fp16-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fp16) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-fp16-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fp16) + + + # ---[ Configure psimd IF(NOT TARGET psimd) ADD_SUBDIRECTORY( diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..4523150 --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(unofficial-psimd) + + +include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-fp16-config-targets.cmake" )