blob: 186708a3fb0232c0da940bdacf589a11874a7ff8 [file] [log] [blame]
Guillaume Chatelet20fa92a2019-01-23 12:59:46 +01001
2#
3# library : NDK compat
4#
5find_package(Threads REQUIRED)
6set (NDK_COMPAT_HDRS cpu-features.h)
7set (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.
15add_cpu_features_headers_and_sources(NDK_COMPAT_SRCS NDK_COMPAT_SRCS)
16add_library(ndk_compat ${NDK_COMPAT_HDRS} ${NDK_COMPAT_SRCS})
17setup_include_and_definitions(ndk_compat)
Mizux91f525c2020-09-21 13:42:21 +020018target_include_directories(ndk_compat PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
Guillaume Chatelet20fa92a2019-01-23 12:59:46 +010019target_link_libraries(ndk_compat PUBLIC ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
20set_target_properties(ndk_compat PROPERTIES PUBLIC_HEADER "${NDK_COMPAT_HDRS}")
21
22include(GNUInstallDirs)
23install(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)
30install(EXPORT CpuFeaturesNdkCompatTargets
31 NAMESPACE CpuFeatures::
32 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeaturesNdkCompat
33 COMPONENT Devel
34)
35include(CMakePackageConfigHelpers)
36configure_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)
42write_basic_package_version_file(
43 "${PROJECT_BINARY_DIR}/CpuFeaturesNdkCompatConfigVersion.cmake"
44 COMPATIBILITY SameMajorVersion
45)
46install(
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#
57if(ENABLE_TESTING)
58 add_executable(ndk-compat-test ndk-compat-test.c)
59 target_link_libraries(ndk-compat-test PRIVATE ndk_compat)
60endif()