cmake: Export cmake config for cmocka

For backwards compatibility use:

    find_package(cmocka REQUIRED)
    if (NOT TARGET cmocka)
         add_library(cmocka SHARED IMPORTED)
         set_target_properties(cmocka
                               PROPERTIES
                               IMPORTED_LOCATION "${CMOCKA_LIBRARIES}"
                               INTERFACE_INCLUDE_DIRECTORIES "${CMOCKA_INCLUDE_DIR}")
    endif()

    target_link_libraries(mylib cmocka)
This commit is contained in:
Andreas Schneider 2019-11-19 15:55:15 +01:00
parent 28ce16b299
commit e4c51ce9a4
2 changed files with 14 additions and 42 deletions

View File

@ -75,40 +75,13 @@ install(
pkgconfig
)
# cmake config files
if (WIN32)
set(CMOCKA_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX})
else()
set(CMOCKA_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmocka-build-tree-settings.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cmocka-build-tree-settings.cmake
@ONLY
)
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE INTERNAL "")
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE INTERNAL "")
configure_package_config_file(${PROJECT_NAME}-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
PATH_VARS
INCLUDE_INSTALL_DIR LIB_INSTALL_DIR
INSTALL_DESTINATION
${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME})
write_basic_package_version_file(${PROJECT_NAME}-config-version.cmake
COMPATIBILITY
AnyNewerVersion)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
DESTINATION
${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT
devel
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT devel)
# Add 'make dist' target which makes sure to invoke cmake before
add_custom_target(dist

View File

@ -26,8 +26,8 @@ target_include_directories(cmocka
${CMOCKA_PLATFORM_INCLUDE}
${cmocka_BINARY_DIR}
PUBLIC
${cmocka-header_SOURCE_DIR})
$<BUILD_INTERFACE:${cmocka-header_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>)
target_compile_options(cmocka
PRIVATE
@ -67,16 +67,15 @@ set_property(TARGET
add_library(cmocka::cmocka ALIAS cmocka)
install(TARGETS
cmocka
ARCHIVE DESTINATION
${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION
${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION
${CMAKE_INSTALL_BINDIR}
COMPONENT
${PROJECT_NAME})
install(TARGETS cmocka
EXPORT cmocka-config
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT ${PROJECT_NAME})
install(EXPORT cmocka-config
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cmocka)
if (UNIT_TESTING)
# Internal library