aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2019-10-22 07:47:05 +0200
committerAndreas Schneider <asn@cryptomilk.org>2019-10-22 08:28:24 +0200
commit0be5fb3c9c9d2d68ac3f09bef3afb007bcc4f500 (patch)
tree16d48341dbbcd894565f2bf4781deddbf27f2dd7
parentf90eb49488673b99bb9a73c41dae70886542e79e (diff)
downloadcmocka-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.txt63
-rw-r--r--tests/CMakeLists.txt2
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})