Skip to content

Commit c20c9e9

Browse files
committed
Release version 1.1.0
1 parent 3b544dc commit c20c9e9

File tree

127 files changed

+17840
-12534
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+17840
-12534
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,3 +480,4 @@ gen### Gcov template
480480

481481
#Output Folder for cmake
482482
build/
483+
cmake-build-debug/

CMakeLists-rapidjson.txt.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ project(rapidjson-download NONE)
55
include(ExternalProject)
66
ExternalProject_Add(rapidjson
77
DOWNLOAD_COMMAND git clone https://github.com/miloyip/rapidjson.git .
8-
DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/third_party/rapidjson/src"
8+
DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src"
99
CONFIGURE_COMMAND ""
1010
BUILD_COMMAND ""
1111
INSTALL_COMMAND ""

CMakeLists.txt

Lines changed: 56 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
22
project(aws-iot-sdk-cpp CXX)
3+
option(BUILD_SHARED_LIBRARY "Build the library as a shared object, will build it as a static library otherwise" NO)
34

45
######################################
56
# Section : Disable in-source builds #
67
######################################
78

8-
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
9+
if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR})
910
message( FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there. You may need to remove CMakeCache.txt and CMakeFiles folder." )
1011
endif()
1112

@@ -30,50 +31,59 @@ if(UNIX AND NOT APPLE)
3031
set(THREADS_PREFER_PTHREAD_FLAG ON)
3132
set(CUSTOM_COMPILER_FLAGS "-fno-exceptions -Wall -Werror")
3233
elseif(APPLE)
33-
set(CUSTOM_COMPILER_FLAGS "-fno-exceptions")
34+
set(CUSTOM_COMPILER_FLAGS "-fno-exceptions -Werror -Wall")
3435
elseif(WIN32)
3536
set(CUSTOM_COMPILER_FLAGS "/W4")
3637
endif()
3738

39+
if(NOT DEPENDENCY_DIR)
40+
set(DEPENDENCY_DIR "third_party")
41+
endif()
42+
3843
#############################
3944
# Add SDK Target #
4045
#############################
4146
# Create library file. The Client applications MUST link to below target if using this CMake file
4247
set(SDK_TARGET_NAME aws-iot-sdk-cpp)
43-
add_library(${SDK_TARGET_NAME} "")
48+
if (BUILD_SHARED_LIBRARY)
49+
add_library(${SDK_TARGET_NAME} SHARED "")
50+
set_target_properties(${SDK_TARGET_NAME} PROPERTIES SUFFIX ".so")
51+
else()
52+
add_library(${SDK_TARGET_NAME} "")
53+
endif()
4454

4555
# Download and include rapidjson, not optional
46-
configure_file(CMakeLists-rapidjson.txt.in ${CMAKE_BINARY_DIR}/third_party/rapidjson/download/CMakeLists.txt)
56+
configure_file(CMakeLists-rapidjson.txt.in ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download/CMakeLists.txt)
4757
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
48-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/third_party/rapidjson/download)
58+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download)
4959
execute_process(COMMAND ${CMAKE_COMMAND} --build .
50-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/third_party/rapidjson/download)
51-
target_include_directories(${SDK_TARGET_NAME} PRIVATE ${CMAKE_BINARY_DIR}/third_party/rapidjson/src/include)
60+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download)
61+
target_include_directories(${SDK_TARGET_NAME} PRIVATE ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
5262

5363
# Get Common SDK Sources
54-
file(GLOB_RECURSE SDK_SOURCES FOLLOW_SYMLINKS ${CMAKE_SOURCE_DIR}/src/*.cpp)
55-
target_include_directories(${SDK_TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/include)
64+
file(GLOB_RECURSE SDK_SOURCES FOLLOW_SYMLINKS ${PROJECT_SOURCE_DIR}/src/*.cpp)
65+
target_include_directories(${SDK_TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/include)
5666
target_sources(${SDK_TARGET_NAME} PRIVATE ${SDK_SOURCES})
5767

5868
# Configure Threading library
5969
find_package(Threads REQUIRED)
60-
set(THREAD_LIBRARY_LINK_STRING "Threads::Threads")
61-
target_link_libraries(${SDK_TARGET_NAME} "Threads::Threads")
70+
set(THREAD_LIBRARY_LINK_STRING "Threads::Threads" -ldl)
71+
target_link_libraries(${SDK_TARGET_NAME} "Threads::Threads" -ldl)
6272

6373
if(BUILD_DOCS)
6474
find_package(Doxygen REQUIRED)
65-
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/docs)
66-
set(DOC_BINARY_DIR ${CMAKE_BINARY_DIR}/docs)
67-
set(DOC_SOURCE_DIR ${CMAKE_SOURCE_DIR}/.)
75+
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/docs)
76+
set(DOC_BINARY_DIR ${PROJECT_BINARY_DIR}/docs)
77+
set(DOC_SOURCE_DIR ${PROJECT_SOURCE_DIR}/.)
6878

69-
set(doxygen_conf_in ${CMAKE_SOURCE_DIR}/doxygen/doxygen.conf.in)
70-
set(doxygen_conf ${CMAKE_BINARY_DIR}/doxygen/doxygen.conf)
79+
set(doxygen_conf_in ${PROJECT_SOURCE_DIR}/doxygen/doxygen.conf.in)
80+
set(doxygen_conf ${PROJECT_BINARY_DIR}/doxygen/doxygen.conf)
7181

7282
configure_file(${doxygen_conf_in} ${doxygen_conf} @ONLY)
7383

7484
add_custom_target(generate-sdk-docs
7585
COMMAND ${DOXYGEN_EXECUTABLE} ${doxygen_conf}
76-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/docs
86+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/docs
7787
COMMENT "Generating SDK docs"
7888
VERBATIM)
7989
endif()
@@ -83,23 +93,23 @@ endif()
8393
################################################
8494
# TODO : Figure out a better way of handling Visual Studio solutions
8595
if(MSVC)
86-
file(GLOB SDK_COMMON_HEADERS "${CMAKE_SOURCE_DIR}/include/*.hpp")
87-
file(GLOB SDK_UTIL_COMMON_HEADERS "${CMAKE_SOURCE_DIR}/include/util/*.hpp")
88-
file(GLOB SDK_UTIL_LOGGING_HEADERS "${CMAKE_SOURCE_DIR}/include/util/logging/*.hpp")
89-
file(GLOB SDK_UTIL_MEMORY_STL_HEADERS "${CMAKE_SOURCE_DIR}/include/util/memory/stl/*.hpp")
90-
file(GLOB SDK_UTIL_THREADING_HEADERS "${CMAKE_SOURCE_DIR}/include/util/threading/*.hpp")
91-
file(GLOB SDK_MQTT_HEADERS "${CMAKE_SOURCE_DIR}/include/mqtt/*.hpp")
92-
file(GLOB SDK_SHADOW_HEADERS "${CMAKE_SOURCE_DIR}/include/shadow/*.hpp")
93-
94-
file(GLOB SDK_COMMON_SOURCES "${CMAKE_SOURCE_DIR}/src/*.cpp")
95-
file(GLOB SDK_UTIL_COMMON_SOURCES "${CMAKE_SOURCE_DIR}/src/util/*.cpp")
96-
file(GLOB SDK_UTIL_LOGGING_SOURCES "${CMAKE_SOURCE_DIR}/src/util/logging/*.cpp")
97-
file(GLOB SDK_UTIL_THREADING_SOURCES "${CMAKE_SOURCE_DIR}/src/util/threading/*.cpp")
98-
file(GLOB SDK_MQTT_SOURCES "${CMAKE_SOURCE_DIR}/src/mqtt/*.cpp")
99-
file(GLOB SDK_SHADOW_SOURCES "${CMAKE_SOURCE_DIR}/src/shadow/*.cpp")
96+
file(GLOB SDK_COMMON_HEADERS "${PROJECT_SOURCE_DIR}/include/*.hpp")
97+
file(GLOB SDK_UTIL_COMMON_HEADERS "${PROJECT_SOURCE_DIR}/include/util/*.hpp")
98+
file(GLOB SDK_UTIL_LOGGING_HEADERS "${PROJECT_SOURCE_DIR}/include/util/logging/*.hpp")
99+
file(GLOB SDK_UTIL_MEMORY_STL_HEADERS "${PROJECT_SOURCE_DIR}/include/util/memory/stl/*.hpp")
100+
file(GLOB SDK_UTIL_THREADING_HEADERS "${PROJECT_SOURCE_DIR}/include/util/threading/*.hpp")
101+
file(GLOB SDK_MQTT_HEADERS "${PROJECT_SOURCE_DIR}/include/mqtt/*.hpp")
102+
file(GLOB SDK_SHADOW_HEADERS "${PROJECT_SOURCE_DIR}/include/shadow/*.hpp")
103+
104+
file(GLOB SDK_COMMON_SOURCES "${PROJECT_SOURCE_DIR}/src/*.cpp")
105+
file(GLOB SDK_UTIL_COMMON_SOURCES "${PROJECT_SOURCE_DIR}/src/util/*.cpp")
106+
file(GLOB SDK_UTIL_LOGGING_SOURCES "${PROJECT_SOURCE_DIR}/src/util/logging/*.cpp")
107+
file(GLOB SDK_UTIL_THREADING_SOURCES "${PROJECT_SOURCE_DIR}/src/util/threading/*.cpp")
108+
file(GLOB SDK_MQTT_SOURCES "${PROJECT_SOURCE_DIR}/src/mqtt/*.cpp")
109+
file(GLOB SDK_SHADOW_SOURCES "${PROJECT_SOURCE_DIR}/src/shadow/*.cpp")
100110

101111
# Required to make Header files visible in Visual Studio
102-
file(GLOB_RECURSE SDKHeaders FOLLOW_SYMLINKS ${CMAKE_SOURCE_DIR}/include/*.hpp)
112+
file(GLOB_RECURSE SDKHeaders FOLLOW_SYMLINKS ${PROJECT_SOURCE_DIR}/include/*.hpp)
103113
target_sources(${SDK_TARGET_NAME} PUBLIC ${SDKHeaders})
104114

105115
source_group("Header Files\\aws-iot" FILES ${SDK_COMMON_HEADERS})
@@ -133,3 +143,17 @@ add_subdirectory(tests/unit)
133143
add_subdirectory(samples/PubSub)
134144

135145
add_subdirectory(samples/ShadowDelta)
146+
147+
add_subdirectory(samples/Discovery EXCLUDE_FROM_ALL)
148+
149+
add_subdirectory(samples/StoryRobotArm EXCLUDE_FROM_ALL)
150+
151+
add_subdirectory(samples/StorySwitch EXCLUDE_FROM_ALL)
152+
153+
##################################
154+
# Section: Define Install Target #
155+
##################################
156+
if(NOT MSVC)
157+
install(TARGETS aws-iot-sdk-cpp DESTINATION lib)
158+
install(DIRECTORY include/ DESTINATION include)
159+
endif()

Changelog.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,30 @@
1-
#Change Log
1+
# Change Log
2+
## [1.1.0](https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.1.0) (May 8th, 2017)
3+
4+
Features:
5+
- Support for Greengrass discovery
6+
- GreengrassClient that inherits from Client
7+
- Greengrass Response parser
8+
- Updates to support shadow operations with Greengrass Cores
9+
- additional samples for discovery
10+
- Updated unit tests and integration tests
11+
- Added support for wildcard subscriptions
12+
13+
14+
Bugfixes/Improvements:
15+
- Fixed issues [#4](https://github.com/aws/aws-iot-device-sdk-cpp/issues/4) and [#7](https://github.com/aws/aws-iot-device-sdk-cpp/issues/7)
16+
- Updated makefiles with [#3](https://github.com/aws/aws-iot-device-sdk-cpp/pull/3) and [#8](https://github.com/aws/aws-iot-device-sdk-cpp/pull/8)
17+
- Added install target
18+
- Fixed bug where single character subscriptions causes client to crash
19+
- Split up ports being used for WebSockets, MQTT and Greengrass discovery into separate fields in the config file
20+
- Cleanup of formatting
21+
- Helper class to convert response codes to strings to enable easier debugging
22+
- OpenSSL wrapper updates
23+
- Updated Platform.md
24+
225
## [1.0.0](https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.0.0) (October 27, 2016)
3-
26+
427
Features:
5-
628
- Initial release
729
- MQTT Publish and Subscribe
830
- Basic Async Shadow support
@@ -14,4 +36,4 @@ Features:
1436
- Tested platforms - Linux, Windows (VS 2015) and Mac OS
1537

1638
Bugfixes/Improvements:
17-
- N/A
39+
- N/A

0 commit comments

Comments
 (0)