diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/launch-darkly-server | |
Diffstat (limited to 'vcpkg/ports/launch-darkly-server')
7 files changed, 196 insertions, 0 deletions
diff --git a/vcpkg/ports/launch-darkly-server/FixStrictPrototypes.patch b/vcpkg/ports/launch-darkly-server/FixStrictPrototypes.patch new file mode 100644 index 0000000..870a847 --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/FixStrictPrototypes.patch @@ -0,0 +1,26 @@ +diff --git a/c-sdk-common/src/ldvalue.c b/c-sdk-common/src/ldvalue.c +index c3fbce9..53f0515 100644 +--- a/c-sdk-common/src/ldvalue.c ++++ b/c-sdk-common/src/ldvalue.c +@@ -166,7 +166,7 @@ unsigned int LDValue_Count(struct LDValue *value) { + return cJSON_GetArraySize(AS_CJSON(value)); + } + +-struct LDObject *LDObject_New() { ++struct LDObject *LDObject_New(void) { + return AS_LDOBJECT(cJSON_CreateObject()); + } + +diff --git a/src/integrations/test_data.c b/src/integrations/test_data.c +index 24146c9..4a2587f 100644 +--- a/src/integrations/test_data.c ++++ b/src/integrations/test_data.c +@@ -96,7 +96,7 @@ LDBoolean LDi_isBooleanFlag(struct LDFlagBuilder *flagBuilder) { + } + + struct LDTestData * +-LDTestDataInit() { ++LDTestDataInit(void) { + struct LDTestData *res; + struct LDJSON *currentFlags; + if(!ALLOCATE(struct LDTestData, res)) { diff --git a/vcpkg/ports/launch-darkly-server/findPCRE.patch b/vcpkg/ports/launch-darkly-server/findPCRE.patch new file mode 100644 index 0000000..50633fd --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/findPCRE.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake +index dbbd60a..68042fe 100644 +--- a/cmake/FindPCRE.cmake ++++ b/cmake/FindPCRE.cmake +@@ -19,7 +19,11 @@ + FIND_PATH(PCRE_INCLUDE_DIR NAMES pcre.h) + + # Look for the library. +-FIND_LIBRARY(PCRE_LIBRARY NAMES pcre) ++SET(pcre_DEBUG_NAME "") ++IF(CMAKE_BUILD_TYPE MATCHES "Debug") ++ SET(pcre_DEBUG_NAME pcred) ++ENDIF() ++FIND_LIBRARY(PCRE_LIBRARY NAMES ${pcre_DEBUG_NAME} pcre) + + # Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE. + INCLUDE(FindPackageHandleStandardArgs) diff --git a/vcpkg/ports/launch-darkly-server/launch-darkly-server-config.cmake b/vcpkg/ports/launch-darkly-server/launch-darkly-server-config.cmake new file mode 100644 index 0000000..d3cbd3e --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/launch-darkly-server-config.cmake @@ -0,0 +1,2 @@ +include(${CMAKE_CURRENT_LIST_DIR}/ldserverapi-targets.cmake) + diff --git a/vcpkg/ports/launch-darkly-server/portfile.cmake b/vcpkg/ports/launch-darkly-server/portfile.cmake new file mode 100644 index 0000000..ca8b508 --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/portfile.cmake @@ -0,0 +1,94 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO launchdarkly/c-server-sdk
+ REF 66c24c874d623338636083f81ed258bc5101f504 # 2.9.3
+ SHA512 38dd411da0cae016f781efc467a9c230236160e3db737550809f5c7b799c2946deec191d6abcf2f677d6452ad0c273c864e9a78674f6c547d1fd8a88d9d73bcc
+ HEAD_REF master
+ PATCHES
+ findPCRE.patch
+ FixStrictPrototypes.patch # required with clang-15
+ removeWarningAsError.patch
+)
+
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH HEXIFY_SOURCE_DIR
+ REPO pepaslabs/hexify.c
+ REF f823bd619f73584a75829cc1e44a532f5e09336e
+ SHA512 fdfd3877874cb5b3e506d791c08840b156ba6905cee520adc225755f7ca768e54a2efa4d05cbef72d275ca2596e1a4d8e4fbb254f9cc4188c31a41b9904479bc
+ HEAD_REF master
+ PATCHES
+ ${SOURCE_PATH}/patches/hexify.patch
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SEMVER_SOURCE_DIR
+ REPO h2non/semver.c
+ REF bd1db234a68f305ed10268bd023df1ad672061d7
+ SHA512 29c7ab45e6550977bb6c74ebddfff440559a6e6494b701fc69a815912e6d683e5f4b4dfe17c98a892e8a82766f33c83edbe11e973579bd1d2175384cbaadd731
+ HEAD_REF master
+ PATCHES
+ ${SOURCE_PATH}/patches/semver.patch
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SHA1_SOURCE_DIR
+ REPO clibs/sha1
+ REF fa1d96ec293d2968791603548125e3274bd6b472
+ SHA512 fd7dfbed4ac10e2c482da1cd460dabf0a53965e6fa17fab97156becb8214e435ee3605b2748705141380e254de7c32ab42da5e42cd6e4494f7ecaafb3b9e19f0
+ HEAD_REF master
+ PATCHES
+ ${SOURCE_PATH}/patches/sha1.patch
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH TIMESTAMP_SOURCE_DIR
+ REPO chansen/c-timestamp
+ REF b205c407ae6680d23d74359ac00444b80989792f
+ SHA512 497a1766b58e6e1c5ff2edf4fd6ff5f1065c4bdac60767988a5da03f93b0724ef582240aa015f3ab724200c249fe98072c67efbfc90e54d986a42212b43030ea
+ HEAD_REF master
+ PATCHES
+ ${SOURCE_PATH}/patches/timestamp.patch
+)
+
+vcpkg_download_distfile(UTHASH_COMPRESSED_FILE
+ URLS https://github.com/troydhanson/uthash/archive/v2.3.0.tar.gz
+ FILENAME uthash-archive-v2.3.0.tar.gz
+ SHA512 3b01f1074790fb242900411cb16eb82c1a9afcf58e3196a0f4611d9d7ef94690ad38c0a500e7783d3efa20328aa8d6ab14f246be63b3b3d385502ba2b6b2a294
+)
+vcpkg_extract_source_archive(UTHASH_SOURCE_DIR
+ ARCHIVE ${UTHASH_COMPRESSED_FILE}
+)
+
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_TESTING=OFF
+ -DFETCHCONTENT_SOURCE_DIR_HEXIFY=${HEXIFY_SOURCE_DIR}
+ -DFETCHCONTENT_SOURCE_DIR_SEMVER=${SEMVER_SOURCE_DIR}
+ -DFETCHCONTENT_SOURCE_DIR_SHA1=${SHA1_SOURCE_DIR}
+ -DFETCHCONTENT_SOURCE_DIR_TIMESTAMP=${TIMESTAMP_SOURCE_DIR}
+ -DFETCHCONTENT_SOURCE_DIR_UTHASH=${UTHASH_SOURCE_DIR}
+ -DSKIP_DATABASE_TESTS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(
+ CONFIG_PATH lib/cmake/ldserverapi
+)
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+)
+
+vcpkg_copy_pdbs()
+
+set(shareDir "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/launch-darkly-server-config.cmake DESTINATION ${shareDir})
+file(RENAME ${shareDir}/ldserverapiTargets.cmake ${shareDir}/ldserverapi-targets.cmake)
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
diff --git a/vcpkg/ports/launch-darkly-server/removeWarningAsError.patch b/vcpkg/ports/launch-darkly-server/removeWarningAsError.patch new file mode 100644 index 0000000..8174ed4 --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/removeWarningAsError.patch @@ -0,0 +1,32 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9acff7d..12904e6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -184,7 +184,6 @@ else() + -pedantic + -Wall + -Wextra +- -Werror + -Wstrict-prototypes + -Wmissing-prototypes + -Wmissing-declarations +diff --git a/c-sdk-common/CMakeLists.txt b/c-sdk-common/CMakeLists.txt +index 15340f7..091e46d 100644 +--- a/c-sdk-common/CMakeLists.txt ++++ b/c-sdk-common/CMakeLists.txt +@@ -87,7 +87,6 @@ else() + -pedantic + -Wall + -Wextra +- -Werror + -Wstrict-prototypes + -Wmissing-prototypes + -Wmissing-declarations +@@ -123,7 +122,6 @@ else() + PRIVATE -fno-omit-frame-pointer + -Wall + -Wextra +- -Werror + -Wstrict-prototypes + -Wmissing-prototypes + -Wmissing-declarations diff --git a/vcpkg/ports/launch-darkly-server/usage b/vcpkg/ports/launch-darkly-server/usage new file mode 100644 index 0000000..92e9b6b --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/usage @@ -0,0 +1,5 @@ +The package launchdarklyserver provides CMake targets: + + find_package(launch-darkly-server CONFIG REQUIRED) + target_link_libraries(main PRIVATE ldserverapi::ldserverapi) + diff --git a/vcpkg/ports/launch-darkly-server/vcpkg.json b/vcpkg/ports/launch-darkly-server/vcpkg.json new file mode 100644 index 0000000..7dae80e --- /dev/null +++ b/vcpkg/ports/launch-darkly-server/vcpkg.json @@ -0,0 +1,20 @@ +{ + "name": "launch-darkly-server", + "version": "2.9.3", + "description": "LaunchDarkly server-side SDK for C/C++", + "homepage": "https://github.com/launchdarkly/c-server-sdk", + "license": "Apache-2.0", + "supports": "!uwp", + "dependencies": [ + "curl", + "pcre", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |