diff options
| author | myd7349 <myd7349@gmail.com> | 2019-05-01 17:19:12 -0500 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-05-01 15:19:12 -0700 |
| commit | f47866c4c46da60061e97d752146f8ea2c05b01f (patch) | |
| tree | 99a4056f66bd3f0204e3eef787ea8c6ba01d65ec | |
| parent | d3c18ed57e2ed58f922e556bbe1f50a88ea7c716 (diff) | |
| download | vcpkg-f47866c4c46da60061e97d752146f8ea2c05b01f.tar.gz vcpkg-f47866c4c46da60061e97d752146f8ea2c05b01f.zip | |
[cmocka] Add new port (fix #4728) (#5669)
| -rw-r--r-- | ports/cmocka/CONTROL | 3 | ||||
| -rw-r--r-- | ports/cmocka/fix-uwp.patch | 13 | ||||
| -rw-r--r-- | ports/cmocka/portfile.cmake | 48 | ||||
| -rw-r--r-- | ports/cmocka/shared-lib.patch | 22 | ||||
| -rw-r--r-- | ports/cmocka/static-lib.patch | 22 | ||||
| -rw-r--r-- | ports/cmocka/usage | 5 | ||||
| -rw-r--r-- | ports/cmocka/vcpkg-cmake-wrapper.cmake | 10 |
7 files changed, 123 insertions, 0 deletions
diff --git a/ports/cmocka/CONTROL b/ports/cmocka/CONTROL new file mode 100644 index 000000000..042cf23a7 --- /dev/null +++ b/ports/cmocka/CONTROL @@ -0,0 +1,3 @@ +Source: cmocka
+Version: 1.1.5-1
+Description: An elegant unit testing framework for C with support for mock objects
diff --git a/ports/cmocka/fix-uwp.patch b/ports/cmocka/fix-uwp.patch new file mode 100644 index 000000000..cb3828b1c --- /dev/null +++ b/ports/cmocka/fix-uwp.patch @@ -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; diff --git a/ports/cmocka/portfile.cmake b/ports/cmocka/portfile.cmake new file mode 100644 index 000000000..a448d3a70 --- /dev/null +++ b/ports/cmocka/portfile.cmake @@ -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})
diff --git a/ports/cmocka/shared-lib.patch b/ports/cmocka/shared-lib.patch new file mode 100644 index 000000000..8c2f76277 --- /dev/null +++ b/ports/cmocka/shared-lib.patch @@ -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}) + diff --git a/ports/cmocka/static-lib.patch b/ports/cmocka/static-lib.patch new file mode 100644 index 000000000..f879fe25b --- /dev/null +++ b/ports/cmocka/static-lib.patch @@ -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 "") diff --git a/ports/cmocka/usage b/ports/cmocka/usage new file mode 100644 index 000000000..59f2a5da8 --- /dev/null +++ b/ports/cmocka/usage @@ -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})
diff --git a/ports/cmocka/vcpkg-cmake-wrapper.cmake b/ports/cmocka/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..49b486ff8 --- /dev/null +++ b/ports/cmocka/vcpkg-cmake-wrapper.cmake @@ -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})
|
