aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/azure-c-shared-utility
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/azure-c-shared-utility
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/azure-c-shared-utility')
-rw-r--r--vcpkg/ports/azure-c-shared-utility/disable-error.patch26
-rw-r--r--vcpkg/ports/azure-c-shared-utility/fix-install-location.patch13
-rw-r--r--vcpkg/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch256
-rw-r--r--vcpkg/ports/azure-c-shared-utility/improve-dependencies.patch63
-rw-r--r--vcpkg/ports/azure-c-shared-utility/modify-POSIX-c-version.patch13
-rw-r--r--vcpkg/ports/azure-c-shared-utility/portfile.cmake38
-rw-r--r--vcpkg/ports/azure-c-shared-utility/vcpkg.json28
7 files changed, 437 insertions, 0 deletions
diff --git a/vcpkg/ports/azure-c-shared-utility/disable-error.patch b/vcpkg/ports/azure-c-shared-utility/disable-error.patch
new file mode 100644
index 0000000..33592d7
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/disable-error.patch
@@ -0,0 +1,26 @@
+diff --git a/configs/azure_iot_build_rules.cmake b/configs/azure_iot_build_rules.cmake
+index 655b7f01..2f7e4ae4 100644
+--- a/configs/azure_iot_build_rules.cmake
++++ b/configs/azure_iot_build_rules.cmake
+@@ -71,8 +71,6 @@ if(MSVC)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
+ elseif(UNIX) #LINUX OR APPLE
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
+ if(NOT (IN_OPENWRT OR APPLE))
+ # _XOPEN_SOURCE=500 is required for glibc to expose random and srandom.
+ set (CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 ${CMAKE_C_FLAGS}")
+@@ -208,12 +206,6 @@ endmacro(generate_cppunittest_wrapper)
+ IF((WIN32) AND (NOT(MINGW)))
+ #windows needs this define
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+- # Make warning as error
+- add_definitions(/WX)
+-ELSE()
+- # Make warning as error
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
+ ENDIF()
+
+
diff --git a/vcpkg/ports/azure-c-shared-utility/fix-install-location.patch b/vcpkg/ports/azure-c-shared-utility/fix-install-location.patch
new file mode 100644
index 0000000..56d5b36
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/fix-install-location.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index deeaae7d..c0c84275 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -689,7 +689,7 @@ install (TARGETS ${targets} EXPORT aziotsharedutilTargets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot
+ )
+-install (FILES ${source_h_files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azure_c_shared_utility)
++install (FILES ${source_h_files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot/azure_c_shared_utility)
+ install (FILES ${micromock_h_files_full_path} ${INSTALL_H_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot)
+
+
diff --git a/vcpkg/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch b/vcpkg/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch
new file mode 100644
index 0000000..7b60af9
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch
@@ -0,0 +1,256 @@
+diff --git a/configs/azure_c_shared_utilityFunctions.cmake b/configs/azure_c_shared_utilityFunctions.cmake
+index 6c2f415..e6133af 100644
+--- a/configs/azure_c_shared_utilityFunctions.cmake
++++ b/configs/azure_c_shared_utilityFunctions.cmake
+@@ -2,11 +2,11 @@
+ #Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+ function(target_link_libraries_with_arg_prefix arg_prefix whatIsBuilding lib)
+- if(${arg_prefix} STREQUAL "debug")
++ if(arg_prefix STREQUAL "debug")
+ target_link_libraries(${whatIsBuilding} debug ${lib})
+- elseif(${arg_prefix} STREQUAL "optimized")
++ elseif(arg_prefix STREQUAL "optimized")
+ target_link_libraries(${whatIsBuilding} optimized ${lib})
+- elseif(${arg_prefix} STREQUAL "general")
++ elseif(arg_prefix STREQUAL "general")
+ target_link_libraries(${whatIsBuilding} general ${lib})
+ else()
+ target_link_libraries(${whatIsBuilding} ${lib})
+@@ -43,13 +43,13 @@ function(windows_unittests_add_dll whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -57,7 +57,7 @@ function(windows_unittests_add_dll whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f})
+@@ -90,13 +90,13 @@ function(windows_unittests_add_exe whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -104,7 +104,7 @@ function(windows_unittests_add_exe whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -150,14 +150,14 @@ function(linux_unittests_add_exe whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ set(skip_to_next TRUE)
+ #also unset all the other states
+
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -165,7 +165,7 @@ function(linux_unittests_add_exe whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -184,7 +184,7 @@ function(linux_unittests_add_exe whatIsBuilding)
+
+ if(${run_valgrind})
+ find_program(VALGRIND_FOUND NAMES valgrind)
+- if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND)
++ if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND)
+ message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind")
+ else()
+ add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $<TARGET_FILE:${whatIsBuilding}_exe>)
+@@ -307,13 +307,13 @@ function(c_windows_unittests_add_dll whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -321,7 +321,7 @@ function(c_windows_unittests_add_dll whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f})
+@@ -369,13 +369,13 @@ function(c_windows_unittests_add_exe whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -383,7 +383,7 @@ function(c_windows_unittests_add_exe whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -429,13 +429,13 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -443,7 +443,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -462,7 +462,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+
+ if(${run_valgrind})
+ find_program(VALGRIND_FOUND NAMES valgrind)
+- if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND)
++ if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND)
+ message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind")
+ else()
+ add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --gen-suppressions=all --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $<TARGET_FILE:${whatIsBuilding}_exe>)
+@@ -546,29 +546,29 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat)
+ (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests})
+ )
+ if (${use_cppunittest})
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_dll)
+ compileTargetAsC99(${whatIsBuilding}_testsonly_lib)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_dll)
+ compileTargetAsC11(${whatIsBuilding}_testsonly_lib)
+ endif()
+ endif()
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ else()
+ if(
+ (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${nuget_e2e_tests})
+ )
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ else()
+@@ -581,10 +581,10 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat)
+ (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${run_e2e_tests}) OR
+ (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests})
+ )
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ endif()
+@@ -641,15 +641,15 @@ function(set_platform_files c_shared_dir)
+ set(CONDITION_C_FILE ${c_shared_dir}/adapters/condition_win32.c PARENT_SCOPE)
+ endif()
+
+- if(${use_etw} STREQUAL "OFF")
++ if(use_etw STREQUAL "OFF")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/xlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE)
+ set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/consolelogger.h PARENT_SCOPE)
+- elseif(${use_etw} STREQUAL "TRACELOGGING")
++ elseif(use_etw STREQUAL "TRACELOGGING")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c PARENT_SCOPE)
+ set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/etwlogger_driver.h PARENT_SCOPE)
+- elseif(${use_etw} STREQUAL "TRACELOGGING_WITH_CONSOLE")
++ elseif(use_etw STREQUAL "TRACELOGGING_WITH_CONSOLE")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE)
+ set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/etwlogger_driver.h ${c_shared_dir}/inc/azure_c_shared_utility/consolelogger.h PARENT_SCOPE)
diff --git a/vcpkg/ports/azure-c-shared-utility/improve-dependencies.patch b/vcpkg/ports/azure-c-shared-utility/improve-dependencies.patch
new file mode 100644
index 0000000..987cc67
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/improve-dependencies.patch
@@ -0,0 +1,63 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6eb607f0..5b0f60f6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -553,8 +553,7 @@ if(${use_http})
+ set(CURL_FIND_REQUIRED 1)
+ find_package_handle_standard_args(CURL DEFAULT_MSG CURL_LIBRARIES)
+
+- include_directories(${CURL_INCLUDE_DIRS})
+- set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${CURL_LIBRARIES})
++ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} CURL::libcurl)
+ endif(NOT use_builtin_httpapi)
+ endif()
+ endif(${use_http})
+@@ -593,7 +592,7 @@ if(${use_bearssl})
+ endif()
+
+ if(${use_openssl})
+- set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${OPENSSL_LIBRARIES})
++ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} OpenSSL::SSL)
+ if (WIN32)
+ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} crypt32 ws2_32 secur32)
+ endif()
+@@ -743,7 +742,7 @@ write_basic_package_version_file(
+
+ configure_file("configs/${PROJECT_NAME}Config.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
+- COPYONLY
++ @ONLY
+ )
+
+ install(EXPORT aziotsharedutilTargets
+@@ -755,7 +754,7 @@ install(EXPORT aziotsharedutilTargets
+
+ install(
+ FILES
+- "configs/${PROJECT_NAME}Config.cmake"
++ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
+ "configs/${PROJECT_NAME}Functions.cmake"
+ "configs/azure_iot_build_rules.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
+diff --git a/configs/azure_c_shared_utilityConfig.cmake b/configs/azure_c_shared_utilityConfig.cmake
+index 2d7c733e..0e1e4d41 100644
+--- a/configs/azure_c_shared_utilityConfig.cmake
++++ b/configs/azure_c_shared_utilityConfig.cmake
+@@ -1,11 +1,12 @@
+ #Copyright (c) Microsoft. All rights reserved.
+ #Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+-if(UNIX)
+- if(${use_http})
+- include(CMakeFindDependencyMacro)
+- find_dependency(CURL)
+- endif()
++include(CMakeFindDependencyMacro)
++if("@use_openssl@")
++ find_dependency(OpenSSL)
++endif()
++if(UNIX AND NOT "@use_builtin_httpapi@")
++ find_dependency(CURL)
+ endif()
+
+ include("${CMAKE_CURRENT_LIST_DIR}/azure_c_shared_utilityTargets.cmake")
diff --git a/vcpkg/ports/azure-c-shared-utility/modify-POSIX-c-version.patch b/vcpkg/ports/azure-c-shared-utility/modify-POSIX-c-version.patch
new file mode 100644
index 0000000..f9f34cc
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/modify-POSIX-c-version.patch
@@ -0,0 +1,13 @@
+diff --git a/configs/azure_iot_build_rules.cmake b/configs/azure_iot_build_rules.cmake
+index 2f7e4ae..00c94c7 100644
+--- a/configs/azure_iot_build_rules.cmake
++++ b/configs/azure_iot_build_rules.cmake
+@@ -73,7 +73,7 @@ if(MSVC)
+ elseif(UNIX) #LINUX OR APPLE
+ if(NOT (IN_OPENWRT OR APPLE))
+ # _XOPEN_SOURCE=500 is required for glibc to expose random and srandom.
+- set (CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 ${CMAKE_C_FLAGS}")
++ set (CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 ${CMAKE_C_FLAGS}")
+ endif()
+ endif()
+
diff --git a/vcpkg/ports/azure-c-shared-utility/portfile.cmake b/vcpkg/ports/azure-c-shared-utility/portfile.cmake
new file mode 100644
index 0000000..aeb6fa0
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/portfile.cmake
@@ -0,0 +1,38 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-c-shared-utility
+ REF 772a4f8bc338140b4a0f404cf9c344283c5c937f
+ SHA512 cd81698e58ad14b17ca87ce2ff80fd48f5bf4b6dded9d311f9ce0822b90f0f874d99210a019e00aa9a2e1c48914a4c2934f4d935638af68d2f88c5bdb26669dd
+ HEAD_REF master
+ PATCHES
+ fix-install-location.patch
+ fix-utilityFunctions-conditions.patch
+ disable-error.patch
+ improve-dependencies.patch
+ modify-POSIX-c-version.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Duse_default_uuid=ON
+ -Dbuild_as_dynamic=OFF
+ MAYBE_UNUSED_VARIABLES
+ build_as_dynamic
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(PACKAGE_NAME azure_c_shared_utility CONFIG_PATH lib/cmake/azure_c_shared_utility)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(COPY "${SOURCE_PATH}/configs/azure_iot_build_rules.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
+
+vcpkg_copy_pdbs()
diff --git a/vcpkg/ports/azure-c-shared-utility/vcpkg.json b/vcpkg/ports/azure-c-shared-utility/vcpkg.json
new file mode 100644
index 0000000..4db3315
--- /dev/null
+++ b/vcpkg/ports/azure-c-shared-utility/vcpkg.json
@@ -0,0 +1,28 @@
+{
+ "name": "azure-c-shared-utility",
+ "version-date": "2025-03-31",
+ "description": "Azure C SDKs common code",
+ "homepage": "https://github.com/Azure/azure-c-shared-utility",
+ "license": "MIT",
+ "supports": "!uwp",
+ "dependencies": [
+ "azure-macro-utils-c",
+ {
+ "name": "curl",
+ "platform": "!windows"
+ },
+ {
+ "name": "openssl",
+ "platform": "!windows & !osx"
+ },
+ "umock-c",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}