[parson][azure-uamqp-c][azure-umqtt-c][azure-c-shared-utility][azure-iot-sdk-c] Initial commits

This commit is contained in:
Robert Schumacher 2018-03-23 15:04:01 -07:00
parent 3a91b0072d
commit 0778f2ef8e
15 changed files with 430 additions and 0 deletions

View File

@ -0,0 +1,3 @@
Source: azure-c-shared-utility
Version: 1.1.1
Description: Azure C SDKs common code

View File

@ -0,0 +1,40 @@
include(vcpkg_common_functions)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("azure-c-shared-utility only supports static linkage")
set(VCPKG_LIBRARY_LINKAGE "static")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-c-shared-utility
REF 1.1.1
SHA512 859513c3bebc3cb5a9e6c0840d2b5bdb5b21b753ed846dced6f4e88f8f937bae89264da57c1bf430660417b10449914b29000b930520e5834140f63df2109b5f
HEAD_REF master
)
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_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/azure-c-shared-utility)
file(INSTALL
${SOURCE_PATH}/LICENSE
DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility RENAME copyright)
vcpkg_copy_pdbs()

View File

@ -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

View File

@ -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")

View File

@ -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()

View File

@ -0,0 +1,4 @@
Source: azure-uamqp-c
Version: 1.0.0-pre-release-1.0.9
Build-Depends: azure-c-shared-utility
Description: AMQP library for C

View File

@ -0,0 +1,14 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dbf79e5..aec44e5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,7 +74,8 @@ if(WIN32)
include_directories($ENV{OpenSSLDir}/include)
endif()
-set(uamqp_h_files
+file(GLOB uamqp_h_files
+ ./inc/azure_uamqp_c/*
./inc/azure_uamqp_c/amqp_definitions.h
./inc/azure_uamqp_c/amqp_frame_codec.h
./inc/azure_uamqp_c/amqp_management.h

View File

@ -0,0 +1,41 @@
include(vcpkg_common_functions)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("azure-uamqp-c only supports static linkage")
set(VCPKG_LIBRARY_LINKAGE "static")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-uamqp-c
REF 1.0.0-pre-release-1.0.9
SHA512 8c7142e0f28779847501941effc8baa0d3411e76bec00a3af0a32f5e25c0ded200d1345fcea58d922d7b0e2b736bc2a57ecaaac23d4de7f97c75a22793cd3750
HEAD_REF master
)
vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/glob-headers.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
-Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uamqp)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL
${SOURCE_PATH}/LICENSE
DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uamqp-c RENAME copyright)
vcpkg_copy_pdbs()

View File

@ -0,0 +1,4 @@
Source: azure-uhttp-c
Version: 2018-02-09
Build-Depends: azure-c-shared-utility
Description: Azure HTTP Library written in C

View File

@ -0,0 +1,40 @@
include(vcpkg_common_functions)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("azure-uhttp-c only supports static linkage")
set(VCPKG_LIBRARY_LINKAGE "static")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-uhttp-c
REF 2018-02-09
SHA512 0668be0f7624d021b6d24e81c21c606ab4a59990eb3d83fea6d2c6cf9ea3f2c6904ad021afcf9645c3c5f2238e9b83146f36522c662b0a2626d928cb4a0218ba
HEAD_REF master
)
file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-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
-Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
-DCMAKE_INSTALL_INCLUDEDIR=include
)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uhttp)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL
${SOURCE_PATH}/LICENSE
DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uhttp-c RENAME copyright)
vcpkg_copy_pdbs()

View File

@ -0,0 +1,4 @@
Source: azure-umqtt-c
Version: 1.0.0-pre-release-1.0.9
Build-Depends: azure-c-shared-utility
Description: General purpose library for communication over the mqtt protocol

View File

@ -0,0 +1,39 @@
include(vcpkg_common_functions)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("azure-umqtt-c only supports static linkage")
set(VCPKG_LIBRARY_LINKAGE "static")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-umqtt-c
REF 1.0.0-pre-release-1.0.9
SHA512 8cabeb431e1b8db64551c0374e80157d9db39011f38db8d3a3dfb77ddf3d6ffed4d6ee0ab697a0af3ce93571fc8a83bb2f3efa52387afe301583151e75f55658
HEAD_REF master
)
file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-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
-Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/umqtt)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL
${SOURCE_PATH}/LICENSE
DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-umqtt-c RENAME copyright)
vcpkg_copy_pdbs()

View File

@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 3.5)
project(parson C)
add_library(parson parson.c)
target_include_directories(parson PUBLIC $<INSTALL_INTERFACE:include>)
install(TARGETS parson
EXPORT unofficial-parson-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install(
EXPORT unofficial-parson-targets
FILE unofficial-parson-config.cmake
NAMESPACE unofficial::parson::
DESTINATION share/unofficial-parson
)

3
ports/parson/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: parson
Version: 2018-03-23
Description: a lighweight json library written in C

View File

@ -0,0 +1,33 @@
include(vcpkg_common_functions)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("parson only supports static linkage")
set(VCPKG_LIBRARY_LINKAGE "static")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO kgabis/parson
REF 387c5665f6b20faa535a7f782dcaa49390963366
SHA512 755d1351c2176ac75bb865e83cbbd3b8f6b3a5797cccd96e512e474100fbdaacb7d00eb857ebc4478aad40672baeafdecb5d87c26eaa16f43ef5559a0a56f431
HEAD_REF master
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)
vcpkg_install_cmake()
file(COPY ${SOURCE_PATH}/parson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-parson TARGET_PATH share/unofficial-parson)
file(INSTALL
${SOURCE_PATH}/LICENSE
DESTINATION ${CURRENT_PACKAGES_DIR}/share/parson RENAME copyright)
vcpkg_copy_pdbs()