aboutsummaryrefslogtreecommitdiff
path: root/ports/azure-iot-sdk-c
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-03-23 15:04:01 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-03-24 09:16:10 -0700
commit0778f2ef8ec87152cc75721cb1d25b7d7db63fe4 (patch)
tree0ac966d57fbbc5bb28d9ee19b2ecf44ee1d2288d /ports/azure-iot-sdk-c
parent3a91b0072d7500f2be84fe4d6520e8469ba5b5ad (diff)
downloadvcpkg-0778f2ef8ec87152cc75721cb1d25b7d7db63fe4.tar.gz
vcpkg-0778f2ef8ec87152cc75721cb1d25b7d7db63fe4.zip
[parson][azure-uamqp-c][azure-umqtt-c][azure-c-shared-utility][azure-iot-sdk-c] Initial commits
Diffstat (limited to 'ports/azure-iot-sdk-c')
-rw-r--r--ports/azure-iot-sdk-c/CONTROL4
-rw-r--r--ports/azure-iot-sdk-c/improve-external-deps.patch136
-rw-r--r--ports/azure-iot-sdk-c/portfile.cmake46
3 files changed, 186 insertions, 0 deletions
diff --git a/ports/azure-iot-sdk-c/CONTROL b/ports/azure-iot-sdk-c/CONTROL
new file mode 100644
index 000000000..9e65dcb26
--- /dev/null
+++ b/ports/azure-iot-sdk-c/CONTROL
@@ -0,0 +1,4 @@
+Source: azure-iot-sdk-c
+Version: 1.2.1
+Build-Depends: azure-uamqp-c, azure-umqtt-c, azure-c-shared-utility, parson
+Description: A C99 SDK for connecting devices to Microsoft Azure IoT services
diff --git a/ports/azure-iot-sdk-c/improve-external-deps.patch b/ports/azure-iot-sdk-c/improve-external-deps.patch
new file mode 100644
index 000000000..5af7ef29e
--- /dev/null
+++ b/ports/azure-iot-sdk-c/improve-external-deps.patch
@@ -0,0 +1,136 @@
+diff --git a/configs/azure_iot_sdksConfig.cmake b/configs/azure_iot_sdksConfig.cmake
+index b9c62e8..edf5847 100644
+--- a/configs/azure_iot_sdksConfig.cmake
++++ b/configs/azure_iot_sdksConfig.cmake
+@@ -1,5 +1,10 @@
+ #Copyright (c) Microsoft. All rights reserved.
+ #Licensed under the MIT license. See LICENSE file in the project root for full license information.
++include(CMakeFindDependencyMacro)
++find_dependency(unofficial-parson)
++find_dependency(uamqp)
++find_dependency(umqtt)
++find_dependency(azure_c_shared_utility)
+
+ include("${CMAKE_CURRENT_LIST_DIR}/azure_iot_sdksTargets.cmake")
+
+diff --git a/dependencies.cmake b/dependencies.cmake
+index 063733a..71bfc7d 100644
+--- a/dependencies.cmake
++++ b/dependencies.cmake
+@@ -18,6 +18,8 @@ if(${use_installed_dependencies})
+ endif()
+ endif()
+
++ find_package(unofficial-parson REQUIRED)
++ link_libraries(unofficial::parson::parson)
+ else()
+ add_subdirectory(c-utility)
+
+diff --git a/iothub_client/CMakeLists.txt b/iothub_client/CMakeLists.txt
+index e6d000a..70ade26 100644
+--- a/iothub_client/CMakeLists.txt
++++ b/iothub_client/CMakeLists.txt
+@@ -24,22 +24,6 @@ set(install_staticlibs
+ iothub_client
+ )
+
+-add_library(parson
+- ../deps/parson/parson.c
+-)
+-
+-if(MSVC)
+- set_source_files_properties(../deps/parson/parson.c PROPERTIES COMPILE_FLAGS "/wd4244 /wd4232")
+-endif()
+-
+-set(install_staticlibs ${install_staticlibs}
+- parson
+-)
+-
+-set(iothub_client_libs ${iothub_client_libs}
+- parson
+-)
+-
+ if(NOT dont_use_uploadtoblob)
+ set(iothub_client_ll_transport_c_files
+ ${iothub_client_ll_transport_c_files}
+diff --git a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt
+index 161872a..d53e111 100644
+--- a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt
++++ b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt
+@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files
+
+ set(${theseTestsName}_c_files
+ ../../../certs/certs.c
+- ../../../deps/parson/parson.c
+ )
+
+ set(${theseTestsName}_h_files
+ ../../../certs/certs.h
+- ../../../deps/parson/parson.h
+ ../common_dt_e2e/iothubclient_common_dt_e2e.h
+ )
+
+diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt
+index d472161..b0291e8 100644
+--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt
++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt
+@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files
+
+ set(${theseTestsName}_c_files
+ ../../../certs/certs.c
+- ../../../deps/parson/parson.c
+ )
+
+ set(${theseTestsName}_h_files
+ ../../../certs/certs.h
+- ../../../deps/parson/parson.h
+ ../common_dt_e2e/iothubclient_common_dt_e2e.h
+ )
+
+diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt
+index d05d654..5872c8d 100644
+--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt
++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt
+@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files
+
+ set(${theseTestsName}_c_files
+ ../../../certs/certs.c
+- ../../../deps/parson/parson.c
+ )
+
+ set(${theseTestsName}_h_files
+ ../../../certs/certs.h
+- ../../../deps/parson/parson.h
+ ../common_dt_e2e/iothubclient_common_dt_e2e.h
+ )
+
+diff --git a/iothub_service_client/CMakeLists.txt b/iothub_service_client/CMakeLists.txt
+index 11a9a9a..4097293 100644
+--- a/iothub_service_client/CMakeLists.txt
++++ b/iothub_service_client/CMakeLists.txt
+@@ -72,9 +72,7 @@ endif()
+ setSdkTargetBuildProperties(iothub_service_client)
+
+ if(NOT ${nuget_e2e_tests})
+- target_link_libraries(iothub_service_client uamqp parson)
+-else()
+- target_link_libraries(iothub_service_client parson)
++ target_link_libraries(iothub_service_client uamqp)
+ endif()
+
+ if (NOT ${ARCHITECTURE} STREQUAL "ARM")
+diff --git a/serializer/CMakeLists.txt b/serializer/CMakeLists.txt
+index 0f6dc74..b4f784c 100644
+--- a/serializer/CMakeLists.txt
++++ b/serializer/CMakeLists.txt
+@@ -87,10 +87,6 @@ else()
+ endif()
+ setSdkTargetBuildProperties(serializer)
+
+-target_link_libraries(serializer
+- parson
+-)
+-
+ if (NOT ${skip_samples})
+ if(WIN32)
+ if (NOT ${ARCHITECTURE} STREQUAL "ARM")
diff --git a/ports/azure-iot-sdk-c/portfile.cmake b/ports/azure-iot-sdk-c/portfile.cmake
new file mode 100644
index 000000000..b60a03286
--- /dev/null
+++ b/ports/azure-iot-sdk-c/portfile.cmake
@@ -0,0 +1,46 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("azure-iot-sdk-c only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-iot-sdk-c
+ REF 1.2.1
+ SHA512 fd97283adf958d6928eda68fb76d9e5a12ef56440fb349d4feb948516150968bf34f3d1bde3341cc1116beb9ea219b0158462a9e6b89c5f7ccd56eb38d8ed2ab
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/improve-external-deps.patch
+)
+
+file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Duse_default_uuid=ON
+ -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/azure_iot_sdks)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-iot-sdk-c RENAME copyright)
+
+vcpkg_copy_pdbs()