xref: /aosp_15_r20/external/cpu_features/ndk_compat/CMakeLists.txt (revision eca53ba6d2e951e174b64682eaf56a36b8204c89)
1
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)
18target_include_directories(ndk_compat PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
19target_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(BUILD_TESTING)
58  add_executable(ndk-compat-test ndk-compat-test.c)
59  target_link_libraries(ndk-compat-test PRIVATE ndk_compat)
60endif()
61