summaryrefslogtreecommitdiffstats
path: root/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp')
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb96
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch110
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch57
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch26
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch67
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch111
6 files changed, 467 insertions, 0 deletions
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb
new file mode 100644
index 00000000..726f5c65
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb
@@ -0,0 +1,96 @@
+DESCRIPTION = "SDK for connecting to AWS IoT from a device using C++"
+AUTHOR = "Amazon"
+HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-cpp"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=218aad61fa604dacf420e699fc7d8679"
+
+DEPENDS = "\
+ rapidjson \
+ openssl \
+"
+
+RDEPENDS_${PN} += "openssl"
+
+RDEPENDS_${PN}-dev += "\
+ rapidjson-dev \
+ openssl-dev \
+"
+
+inherit cmake pkgconfig
+
+SRC_URI = "\
+ git://github.com/aws/${BPN}.git;branch=master \
+ file://Add-C-as-a-build-language.patch \
+ file://Add-build-options-for-tests-and-samples.patch \
+ file://Fix-CLI-includes.patch \
+ file://Packaging-fixes.patch \
+ file://Skip-building-RapidJSON.patch \
+"
+
+SRCREV = "bf20603154eeda78f52d69eaf9c79189f0b603ea"
+
+PACKAGES += "${PN}-samples ${PN}-samples-src"
+
+PR = "r0"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE += "-DTHREADS_PTHREAD_ARG=OFF -DBUILD_SHARED_LIBRARY=ON -DBUILD_SAMPLES=ON -DRapidJSON_DIR=${STAGING_LIBDIR}/cmake/RapidJSON"
+
+do_install_append() {
+ # Includes
+ install -m 0644 ${S}/common/*.hpp ${D}${includedir}/awsiotsdk
+ install -m 0644 ${S}/network/OpenSSL/*.hpp ${D}${includedir}/awsiotsdk
+
+ # Samples
+ install -d ${D}${datadir}/awsiotsdk/samples/cpp
+ install -d ${D}${datadir}/awsiotsdk/samples/cpp/config
+ install -d ${D}${datadir}/awsiotsdk/samples/cpp/certs
+ install -m 0644 ${B}/bin/certs/* ${D}${datadir}/awsiotsdk/samples/cpp/certs/
+ install -m 0644 ${B}/bin/config/SampleConfig.json ${D}${datadir}/awsiotsdk/samples/cpp/config/
+ install -m 0644 ${B}/bin/CliConfig.json ${D}${datadir}/awsiotsdk/samples/cpp/
+ install -m 0755 ${B}/bin/shadow-delta-sample ${D}${datadir}/awsiotsdk/samples/cpp/
+ install -m 0755 ${B}/bin/pub-sub-sample ${D}${datadir}/awsiotsdk/samples/cpp/
+ install -m 0755 ${B}/bin/aws-iot ${D}${datadir}/awsiotsdk/samples/cpp/
+
+ # Samples Source
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/certs
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/config
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/common
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/Discovery
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/PubSub
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/ShadowDelta
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StoryRobotArm
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StorySwitch
+ install -m 0644 ${S}/common/*.json ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/config/
+ install -m 0644 ${S}/certs/* ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/certs/
+ install -m 0644 ${S}/common/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/common/
+ install -m 0644 ${S}/samples/Discovery/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/Discovery/
+ install -m 0644 ${S}/samples/Discovery/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/Discovery/
+ install -m 0644 ${S}/samples/PubSub/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/PubSub/
+ install -m 0644 ${S}/samples/PubSub/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/PubSub/
+ install -m 0644 ${S}/samples/ShadowDelta/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/ShadowDelta/
+ install -m 0644 ${S}/samples/ShadowDelta/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/ShadowDelta/
+ install -m 0644 ${S}/samples/StoryRobotArm/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StoryRobotArm/
+ install -m 0644 ${S}/samples/StoryRobotArm/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StoryRobotArm/
+ install -m 0644 ${S}/samples/StorySwitch/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StorySwitch/
+ install -m 0644 ${S}/samples/StorySwitch/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StorySwitch/
+}
+
+FILES_${PN}-dbg += "\
+ ${exec_prefix}/src/debug \
+ ${datadir}/awsiotsdk/samples/cpp/.debug \
+"
+
+FILES_${PN}-samples = "\
+ ${datadir}/awsiotsdk/samples/cpp \
+"
+
+FILES_${PN}-samples-src = "\
+ ${exec_prefix}/src/awsiotsdk/samples/cpp \
+"
+
+INSANE_SKIP_${PN}-samples += "rpaths"
+
+RRECOMMENDS_aws-iot-device-sdk-cpp-dev[nodeprrecs] = "1"
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch
new file mode 100644
index 00000000..7cf150f6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch
@@ -0,0 +1,110 @@
+From ec1e8828ce3067d6902c04a75952a3535292040c Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:41:10 +0000
+Subject: [PATCH 1/5] Add C as a build language
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 2 +-
+ cli/CMakeLists.txt | 2 +-
+ samples/Discovery/CMakeLists.txt | 2 +-
+ samples/PubSub/CMakeLists.txt | 2 +-
+ samples/ShadowDelta/CMakeLists.txt | 2 +-
+ samples/StoryRobotArm/CMakeLists.txt | 4 ++--
+ samples/StorySwitch/CMakeLists.txt | 4 ++--
+ 7 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ad8a4e1..9df255f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-sdk-cpp CXX)
++project(aws-iot-sdk-cpp C CXX)
+ option(BUILD_SHARED_LIBRARY "Build the library as a shared object, will build it as a static library otherwise" NO)
+
+ ######################################
+diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt
+index da4f25d..dfa5040 100644
+--- a/cli/CMakeLists.txt
++++ b/cli/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cli CXX)
++project(aws-iot-cli C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/Discovery/CMakeLists.txt b/samples/Discovery/CMakeLists.txt
+index 8df8d35..3147841 100644
+--- a/samples/Discovery/CMakeLists.txt
++++ b/samples/Discovery/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/PubSub/CMakeLists.txt b/samples/PubSub/CMakeLists.txt
+index 62ffd05..33531d0 100644
+--- a/samples/PubSub/CMakeLists.txt
++++ b/samples/PubSub/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/ShadowDelta/CMakeLists.txt b/samples/ShadowDelta/CMakeLists.txt
+index 98aa3b9..1ebabed 100644
+--- a/samples/ShadowDelta/CMakeLists.txt
++++ b/samples/ShadowDelta/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/StoryRobotArm/CMakeLists.txt b/samples/StoryRobotArm/CMakeLists.txt
+index 215df18..13dd16f 100644
+--- a/samples/StoryRobotArm/CMakeLists.txt
++++ b/samples/StoryRobotArm/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+@@ -84,4 +84,4 @@ endif ()
+ #########################
+
+ set(NETWORK_WRAPPER_DEST_TARGET ${ROBOT_ARM_SAMPLE_TARGET_NAME})
+-include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+\ No newline at end of file
++include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+diff --git a/samples/StorySwitch/CMakeLists.txt b/samples/StorySwitch/CMakeLists.txt
+index e612567..0096bad 100644
+--- a/samples/StorySwitch/CMakeLists.txt
++++ b/samples/StorySwitch/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+@@ -84,4 +84,4 @@ endif ()
+ #########################
+
+ set(NETWORK_WRAPPER_DEST_TARGET ${SWITCH_SAMPLE_TARGET_NAME})
+-include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+\ No newline at end of file
++include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch
new file mode 100644
index 00000000..59f61891
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch
@@ -0,0 +1,57 @@
+From b14988149080ab9d5f1883c1e881b548be1cd7aa Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:44:46 +0000
+Subject: [PATCH 2/5] Add build options for tests and samples
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9df255f..cb0ad9d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,6 +11,8 @@ if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR})
+ endif()
+
+ option(BUILD_DOCS "Create HTML based API documentation (requires Doxygen)" OFF)
++option(BUILD_SAMPLES "Build samples" OFF)
++option(RUN_TESTS "Run unit and integration tests" OFF)
+
+ ########################################
+ # Section : Common SDK Build setttings #
+@@ -155,19 +157,18 @@ if(UNIX)
+ add_subdirectory(cli)
+ endif()
+
+-add_subdirectory(tests/integration)
+-
+-add_subdirectory(tests/unit)
+-
+-add_subdirectory(samples/PubSub)
+-
+-add_subdirectory(samples/ShadowDelta)
+-
+-add_subdirectory(samples/Discovery EXCLUDE_FROM_ALL)
+-
+-add_subdirectory(samples/StoryRobotArm EXCLUDE_FROM_ALL)
++if(RUN_TESTS)
++ add_subdirectory(tests/integration)
++ add_subdirectory(tests/unit)
++endif()
+
+-add_subdirectory(samples/StorySwitch EXCLUDE_FROM_ALL)
++if(BUILD_SAMPLES)
++ add_subdirectory(samples/PubSub)
++ add_subdirectory(samples/ShadowDelta)
++ add_subdirectory(samples/Discovery EXCLUDE_FROM_ALL)
++ add_subdirectory(samples/StoryRobotArm EXCLUDE_FROM_ALL)
++ add_subdirectory(samples/StorySwitch EXCLUDE_FROM_ALL)
++endif()
+
+ ##################################
+ # Section: Define Install Target #
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch
new file mode 100644
index 00000000..8605f6d0
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch
@@ -0,0 +1,26 @@
+From 96f31a4d9b0c5ba156dfb6263f8bed3b12884c8a Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:45:45 +0000
+Subject: [PATCH 3/5] Fix CLI includes
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ cli/cli.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cli/cli.hpp b/cli/cli.hpp
+index 4f3634c..f0f1ee2 100644
+--- a/cli/cli.hpp
++++ b/cli/cli.hpp
+@@ -26,7 +26,7 @@
+ #include <direct.h>
+ #define getcwd _getcwd // avoid MSFT "deprecation" warning
+ #else
+-#include <limits>
++#include <linux/limits.h>
+ #define MAX_PATH_LENGTH_ PATH_MAX
+ #endif
+
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch
new file mode 100644
index 00000000..32c880e6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch
@@ -0,0 +1,67 @@
+From 3db20a53f35f9d0413c312b46815f6b16fe0afa4 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:52:20 +0000
+Subject: [PATCH 4/5] Packaging fixes
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 12 ++++++++----
+ awsiotsdk-cpp.pc.in | 11 +++++++++++
+ 2 files changed, 19 insertions(+), 4 deletions(-)
+ create mode 100644 awsiotsdk-cpp.pc.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cb0ad9d..fa98c30 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,7 +1,9 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-sdk-cpp C CXX)
++project(aws-iot-sdk-cpp VERSION 1.3.0 LANGUAGES C CXX)
+ option(BUILD_SHARED_LIBRARY "Build the library as a shared object, will build it as a static library otherwise" NO)
+
++include(GNUInstallDirs)
++
+ ######################################
+ # Section : Disable in-source builds #
+ ######################################
+@@ -51,7 +53,7 @@ add_definitions(-DSDK_VERSION_STRING="1.3.0")
+ set(SDK_TARGET_NAME aws-iot-sdk-cpp)
+ if (BUILD_SHARED_LIBRARY)
+ add_library(${SDK_TARGET_NAME} SHARED "")
+- set_target_properties(${SDK_TARGET_NAME} PROPERTIES SUFFIX ".so")
++ set_target_properties(${SDK_TARGET_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION})
+ else()
+ add_library(${SDK_TARGET_NAME} "")
+ endif()
+@@ -174,6 +176,8 @@ endif()
+ # Section: Define Install Target #
+ ##################################
+ if(NOT MSVC)
+- install(TARGETS aws-iot-sdk-cpp DESTINATION lib)
+- install(DIRECTORY include/ DESTINATION include)
++ install(TARGETS aws-iot-sdk-cpp DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/awsiotsdk)
++ configure_file (awsiotsdk-cpp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/awsiotsdk-cpp.pc @ONLY)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/awsiotsdk-cpp.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ endif()
+diff --git a/awsiotsdk-cpp.pc.in b/awsiotsdk-cpp.pc.in
+new file mode 100644
+index 0000000..0828942
+--- /dev/null
++++ b/awsiotsdk-cpp.pc.in
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=@CMAKE_INSTALL_PREFIX@
++libdir=@CMAKE_INSTALL_LIBDIR@
++includedir=@CMAKE_INSTALL_INCLUDEDIR@/awsiotsdk
++
++Name: awsiotsdk-cpp
++Description: SDK for connecting to AWS IoT from a device using C++
++Version: @PROJECT_VERSION@
++
++Libs: -L${libdir} -laws-iot-sdk-cpp
++Cflags: -I${includedir}
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch
new file mode 100644
index 00000000..699f2be8
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch
@@ -0,0 +1,111 @@
+From 589e2395d189209aa509c31b844dd3a34b907b55 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:55:57 +0000
+Subject: [PATCH 5/5] Skip building RapidJSON
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 9 ++-------
+ cli/CMakeLists.txt | 1 -
+ samples/Discovery/CMakeLists.txt | 1 -
+ samples/PubSub/CMakeLists.txt | 1 -
+ samples/ShadowDelta/CMakeLists.txt | 1 -
+ samples/StoryRobotArm/CMakeLists.txt | 1 -
+ samples/StorySwitch/CMakeLists.txt | 1 -
+ 7 files changed, 2 insertions(+), 13 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fa98c30..128cb46 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,13 +58,8 @@ else()
+ add_library(${SDK_TARGET_NAME} "")
+ endif()
+
+-# Download and include rapidjson, not optional
+-configure_file(CMakeLists-rapidjson.txt.in ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download/CMakeLists.txt)
+-execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download)
+-execute_process(COMMAND ${CMAKE_COMMAND} --build .
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download)
+-target_include_directories(${SDK_TARGET_NAME} PRIVATE ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
++# Include rapidjson, not optional
++find_package(RapidJSON REQUIRED)
+
+ # Download sanitizers, optional
+ if (SANITIZE_THREAD OR SANITIZE_ADDRESS OR SANITIZE_MEMORY OR SANITIZE_UNDEFINED)
+diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt
+index dfa5040..d8c4308 100644
+--- a/cli/CMakeLists.txt
++++ b/cli/CMakeLists.txt
+@@ -48,7 +48,6 @@ target_include_directories(${CLI_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../cl
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${CLI_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/third_party/rapidjson/src/include)
+ target_include_directories(${CLI_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../include)
+
+ target_link_libraries(${CLI_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/Discovery/CMakeLists.txt b/samples/Discovery/CMakeLists.txt
+index 3147841..cbeac4a 100644
+--- a/samples/Discovery/CMakeLists.txt
++++ b/samples/Discovery/CMakeLists.txt
+@@ -52,7 +52,6 @@ target_include_directories(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOUR
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/PubSub/CMakeLists.txt b/samples/PubSub/CMakeLists.txt
+index 33531d0..8a806b1 100644
+--- a/samples/PubSub/CMakeLists.txt
++++ b/samples/PubSub/CMakeLists.txt
+@@ -47,7 +47,6 @@ target_include_directories(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/ShadowDelta/CMakeLists.txt b/samples/ShadowDelta/CMakeLists.txt
+index 1ebabed..7b941b3 100644
+--- a/samples/ShadowDelta/CMakeLists.txt
++++ b/samples/ShadowDelta/CMakeLists.txt
+@@ -47,7 +47,6 @@ target_include_directories(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_S
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/StoryRobotArm/CMakeLists.txt b/samples/StoryRobotArm/CMakeLists.txt
+index 13dd16f..ee9d6a5 100644
+--- a/samples/StoryRobotArm/CMakeLists.txt
++++ b/samples/StoryRobotArm/CMakeLists.txt
+@@ -52,7 +52,6 @@ target_include_directories(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOUR
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/StorySwitch/CMakeLists.txt b/samples/StorySwitch/CMakeLists.txt
+index 0096bad..2613c20 100644
+--- a/samples/StorySwitch/CMakeLists.txt
++++ b/samples/StorySwitch/CMakeLists.txt
+@@ -52,7 +52,6 @@ target_include_directories(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+--
+1.9.1
+