Guillaume Chatelet | 20fa92a | 2019-01-23 12:59:46 +0100 | [diff] [blame] | 1 | |
| 2 | # |
| 3 | # library : NDK compat |
| 4 | # |
| 5 | find_package(Threads REQUIRED) |
| 6 | set (NDK_COMPAT_HDRS cpu-features.h) |
| 7 | set (NDK_COMPAT_SRCS |
| 8 | cpu-features.c |
| 9 | $<TARGET_OBJECTS:utils> |
| 10 | $<TARGET_OBJECTS:unix_based_hardware_detection> |
| 11 | ) |
| 12 | # Note that following `add_cpu_features_headers_and_sources` will use |
| 13 | # NDK_COMPAT_SRCS in lieu of NDK_COMPAT_HDRS because we don't want cpu_features |
| 14 | # headers to be installed alongside ndk_compat. |
| 15 | add_cpu_features_headers_and_sources(NDK_COMPAT_SRCS NDK_COMPAT_SRCS) |
| 16 | add_library(ndk_compat ${NDK_COMPAT_HDRS} ${NDK_COMPAT_SRCS}) |
| 17 | setup_include_and_definitions(ndk_compat) |
Mizux | 91f525c | 2020-09-21 13:42:21 +0200 | [diff] [blame] | 18 | target_include_directories(ndk_compat PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) |
Guillaume Chatelet | 20fa92a | 2019-01-23 12:59:46 +0100 | [diff] [blame] | 19 | target_link_libraries(ndk_compat PUBLIC ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) |
| 20 | set_target_properties(ndk_compat PROPERTIES PUBLIC_HEADER "${NDK_COMPAT_HDRS}") |
| 21 | |
| 22 | include(GNUInstallDirs) |
| 23 | install(TARGETS ndk_compat |
| 24 | EXPORT CpuFeaturesNdkCompatTargets |
| 25 | PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ndk_compat |
| 26 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 27 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 28 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 29 | ) |
| 30 | install(EXPORT CpuFeaturesNdkCompatTargets |
| 31 | NAMESPACE CpuFeatures:: |
| 32 | DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeaturesNdkCompat |
| 33 | COMPONENT Devel |
| 34 | ) |
| 35 | include(CMakePackageConfigHelpers) |
| 36 | configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/CpuFeaturesNdkCompatConfig.cmake.in |
| 37 | "${PROJECT_BINARY_DIR}/CpuFeaturesNdkCompatConfig.cmake" |
| 38 | INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeaturesNdkCompat" |
| 39 | NO_SET_AND_CHECK_MACRO |
| 40 | NO_CHECK_REQUIRED_COMPONENTS_MACRO |
| 41 | ) |
| 42 | write_basic_package_version_file( |
| 43 | "${PROJECT_BINARY_DIR}/CpuFeaturesNdkCompatConfigVersion.cmake" |
| 44 | COMPATIBILITY SameMajorVersion |
| 45 | ) |
| 46 | install( |
| 47 | FILES |
| 48 | "${PROJECT_BINARY_DIR}/CpuFeaturesNdkCompatConfig.cmake" |
| 49 | "${PROJECT_BINARY_DIR}/CpuFeaturesNdkCompatConfigVersion.cmake" |
| 50 | DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeaturesNdkCompat" |
| 51 | COMPONENT Devel |
| 52 | ) |
| 53 | |
| 54 | # |
| 55 | # program : NDK compat test program |
| 56 | # |
| 57 | if(ENABLE_TESTING) |
| 58 | add_executable(ndk-compat-test ndk-compat-test.c) |
| 59 | target_link_libraries(ndk-compat-test PRIVATE ndk_compat) |
| 60 | endif() |