diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2019-10-22 07:47:05 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-10-22 08:28:24 +0200 |
commit | 0be5fb3c9c9d2d68ac3f09bef3afb007bcc4f500 (patch) | |
tree | 16d48341dbbcd894565f2bf4781deddbf27f2dd7 | |
parent | f90eb49488673b99bb9a73c41dae70886542e79e (diff) | |
download | cmocka-0be5fb3c9c9d2d68ac3f09bef3afb007bcc4f500.tar.gz cmocka-0be5fb3c9c9d2d68ac3f09bef3afb007bcc4f500.tar.xz cmocka-0be5fb3c9c9d2d68ac3f09bef3afb007bcc4f500.zip |
cmake: Create a static cmocka library for testing
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | src/CMakeLists.txt | 63 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 2 |
2 files changed, 38 insertions, 27 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b7f723d..01b6838 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,21 +3,6 @@ project(cmocka-library C) set(CMOCKA_PLATFORM_INCLUDE CACHE PATH "Path to include directory for cmocka_platform.h") mark_as_advanced(CMOCKA_PLATFORM_INCLUDE) -set(cmocka_library_name) -if (BUILD_SHARED_LIBS) - set(CMOCKA_SHARED_LIBRARY - cmocka - CACHE INTERNAL "cmocka shared library" - ) - set(cmocka_library_name ${CMOCKA_SHARED_LIBRARY}) -else (BUILD_SHARED_LIBS) - set(CMOCKA_STATIC_LIBRARY - cmocka-static - CACHE INTERNAL "cmocka static library" - ) - set(cmocka_library_name ${CMOCKA_STATIC_LIBRARY}) -endif (BUILD_SHARED_LIBS) - set(CMOCKA_LINK_LIBRARIES ${CMOCKA_REQUIRED_LIBRARIES} CACHE INTERNAL "cmocka link libraries" @@ -34,9 +19,9 @@ if (WIN32) ) endif (WIN32) -add_library(${cmocka_library_name} ${cmocka_SRCS}) +add_library(cmocka ${cmocka_SRCS}) -target_include_directories(${cmocka_library_name} +target_include_directories(cmocka PRIVATE ${CMOCKA_PLATFORM_INCLUDE} ${cmocka_BINARY_DIR} @@ -44,46 +29,46 @@ target_include_directories(${cmocka_library_name} ${cmocka-header_SOURCE_DIR}) -target_compile_options(${cmocka_library_name} +target_compile_options(cmocka PRIVATE ${DEFAULT_C_COMPILE_FLAGS} -DHAVE_CONFIG_H) if (CMOCKA_PLATFORM_INCLUDE) - target_compile_options(${cmocka_library_name} + target_compile_options(cmocka PRIVATE -DCMOCKA_PLATFORM_INCLUDE) endif() -target_link_libraries(${cmocka_library_name} ${CMOCKA_LINK_LIBRARIES}) +target_link_libraries(cmocka PRIVATE ${CMOCKA_LINK_LIBRARIES}) set_property(TARGET - ${cmocka_library_name} + cmocka PROPERTY DEFINE_SYMBOL CMOCKA_EXPORTS ) set_property(TARGET - ${cmocka_library_name} + cmocka PROPERTY VERSION ${LIBRARY_VERSION} ) set_property(TARGET - ${cmocka_library_name} + cmocka PROPERTY SOVERSION ${LIBRARY_SOVERSION}) set_property(TARGET - ${cmocka_library_name} + cmocka PROPERTY LINK_FLAGS "${DEFAULT_LINK_FLAGS}") -add_library(cmocka::cmocka ALIAS ${cmocka_library_name}) +add_library(cmocka::cmocka ALIAS cmocka) install(TARGETS - ${cmocka_library_name} + cmocka ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION @@ -93,3 +78,29 @@ install(TARGETS COMPONENT ${PROJECT_NAME}) +if (UNIT_TESTING) + # Internal library + add_library(cmocka-static STATIC ${cmocka_SRCS}) + + target_include_directories(cmocka-static + PRIVATE + ${CMOCKA_PLATFORM_INCLUDE} + ${cmocka_BINARY_DIR} + PUBLIC + ${cmocka-header_SOURCE_DIR}) + + + target_compile_options(cmocka-static + PRIVATE + ${DEFAULT_C_COMPILE_FLAGS} + -DHAVE_CONFIG_H) + if (CMOCKA_PLATFORM_INCLUDE) + target_compile_options(cmocka-static + PRIVATE + -DCMOCKA_PLATFORM_INCLUDE) + endif() + + target_link_libraries(cmocka-static PRIVATE ${CMOCKA_LINK_LIBRARIES}) + + add_library(cmocka::static ALIAS cmocka-static) +endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c4eacf2..def90d3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -39,7 +39,7 @@ foreach(_CMOCKA_TEST ${CMOCKA_TESTS}) add_cmocka_test(${_CMOCKA_TEST} SOURCES ${_CMOCKA_TEST}.c COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} - LINK_LIBRARIES cmocka::cmocka + LINK_LIBRARIES cmocka::static LINK_OPTIONS ${DEFAULT_LINK_FLAGS}) target_include_directories(${_CMOCKA_TEST} PRIVATE ${cmocka_BINARY_DIR}) |