[cmocka] Add new port (fix #4728) (#5669)

This commit is contained in:
myd7349 2019-05-01 17:19:12 -05:00 committed by Phil Christensen
parent d3c18ed57e
commit f47866c4c4
7 changed files with 123 additions and 0 deletions

3
ports/cmocka/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: cmocka
Version: 1.1.5-1
Description: An elegant unit testing framework for C with support for mock objects

View File

@ -0,0 +1,13 @@
diff --git a/src/cmocka.c b/src/cmocka.c
index 6bfc831..4c1c04b 100644
--- a/src/cmocka.c
+++ b/src/cmocka.c
@@ -3356,7 +3356,7 @@ int _run_tests(const UnitTest * const tests, const size_t number_of_tests) {
int _run_group_tests(const UnitTest * const tests, const size_t number_of_tests)
{
UnitTestFunction setup = NULL;
- const char *setup_name;
+ const char *setup_name = NULL;
size_t num_setups = 0;
UnitTestFunction teardown = NULL;
const char *teardown_name = NULL;

View File

@ -0,0 +1,48 @@
include(vcpkg_common_functions)
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com
OUT_SOURCE_PATH SOURCE_PATH
REPO cmocka/cmocka
REF cmocka-1.1.5
SHA512 4e305e500f448676be5503972c49089c51f38b47d8129add2205608ed73f9de8b911aee83c00da4ef52c0179a5b5ba0e3386f3bca839f18e7ab21787184d9990
HEAD_REF master
PATCHES
shared-lib.patch
static-lib.patch
fix-uwp.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIB)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DUNIT_TESTING=OFF
-DWITH_EXAMPLES=OFF
-DBUILD_STATIC_LIB=${BUILD_STATIC_LIB}
-DWITH_STATIC_LIB=${BUILD_STATIC_LIB}
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
file(COPY
${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
# Install usage
configure_file(${CMAKE_CURRENT_LIST_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage @ONLY)
# CMake integration test
#vcpkg_test_cmake(PACKAGE_NAME ${PORT})

View File

@ -0,0 +1,22 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5684685..8555169 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -30,7 +30,7 @@ if (WIN32)
cmocka.def
)
endif (WIN32)
-
+if (BUILD_SHARED_LIBS)
add_library(${CMOCKA_SHARED_LIBRARY} SHARED ${cmocka_SRCS})
target_include_directories(${CMOCKA_SHARED_LIBRARY}
@@ -82,7 +82,7 @@ install(TARGETS
${CMAKE_INSTALL_BINDIR}
COMPONENT
${PROJECT_NAME})
-
+endif (BUILD_SHARED_LIBS)
if (BUILD_STATIC_LIB)
add_library(${CMOCKA_STATIC_LIBRARY} STATIC ${cmocka_SRCS})

View File

@ -0,0 +1,22 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00e568e..6e3489a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,9 +77,17 @@ install(
# cmake config files
if (WIN32)
+ if (BUILD_SHARED_LIBS)
set(CMOCKA_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX})
+ else()
+ set(CMOCKA_LIBRARY_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}${CMOCKA_STATIC_LIBRARY}${CMAKE_IMPORT_LIBRARY_SUFFIX})
+ endif()
else()
+ if (BUILD_SHARED_LIBS)
set(CMOCKA_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else()
+ set(CMOCKA_LIBRARY_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}${CMOCKA_STATIC_LIBRARY}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
endif()
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE INTERNAL "")

5
ports/cmocka/usage Normal file
View File

@ -0,0 +1,5 @@
The package @PORT@:@TARGET_TRIPLET@ provides CMake targets:
find_package(@PORT@ CONFIG REQUIRED)
target_include_directories(main PRIVATE ${CMOCKA_INCLUDE_DIR})
target_link_libraries(main PRIVATE ${CMOCKA_LIBRARIES})

View File

@ -0,0 +1,10 @@
_find_package(${ARGS})
get_filename_component(_cmocka_lib_name ${CMOCKA_LIBRARY} NAME)
set(CMOCKA_LIBRARY
debug ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/${_cmocka_lib_name}
optimized ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/${_cmocka_lib_name}
)
set(CMOCKA_LIBRARIES ${CMOCKA_LIBRARY})