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