1
1
cmake_minimum_required (VERSION 3.1)
2
+ project (aws-iot-device-sdk-cpp-v2)
3
+
4
+ include (CTest)
2
5
3
6
option (BUILD_DEPS "Builds aws common runtime dependencies as part of build, only do this if you don't want to control your dependency chain." OFF )
4
7
option (BUILD_SAMPLES "Build samples as part of the build" ON )
@@ -11,107 +14,44 @@ if (DEFINED CMAKE_INSTALL_PREFIX)
11
14
file (TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX} " CMAKE_INSTALL_PREFIX )
12
15
endif ()
13
16
17
+ if (NOT CMAKE_CXX_STANDARD)
18
+ set (CMAKE_CXX_STANDARD 11)
19
+ endif ()
20
+
14
21
if (UNIX AND NOT APPLE )
15
22
include (GNUInstallDirs)
16
23
elseif (NOT DEFINED CMAKE_INSTALL_LIBDIR)
17
24
set (CMAKE_INSTALL_LIBDIR "lib" )
18
25
endif ()
19
26
20
- if (NOT CMAKE_BUILD_TYPE )
21
- set (CMAKE_BUILD_TYPE "RelWithDebInfo" )
27
+ if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64" )
28
+ set (FIND_LIBRARY_USE_LIB64_PATHS true )
22
29
endif ()
23
30
24
- if (BUILD_DEPS)
25
- set (AWS_DEPS_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} /deps CACHE STRING "If BUILD_DEPS is on, aws common runtime dependencies build in this directory." )
26
- if (DEFINED CMAKE_INSTALL_PREFIX )
27
- set (AWS_DEPS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX} )
28
- else ()
29
- set (AWS_DEPS_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} /deps/install )
30
- endif ()
31
-
32
- if (NOT DEFINED CMAKE_PREFIX_PATH )
33
- set (CMAKE_PREFIX_PATH ${AWS_DEPS_INSTALL_DIR} )
34
- endif ()
35
-
36
- file (MAKE_DIRECTORY ${AWS_DEPS_BUILD_DIR} )
37
- if (TARGET_ARCH STREQUAL "ANDROID" )
38
- execute_process (
39
- COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR}
40
- -DTARGET_ARCH=${TARGET_ARCH}
41
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
42
- -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
43
- -DANDROID_ABI=${ANDROID_ABI}
44
- -DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}
45
- -DANDROID_STANDALONE_TOOLCHAIN=${ANDROID_STANDALONE_TOOLCHAIN}
46
- -DANDROID_STL=${ANDROID_STL}
47
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
48
- -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
49
- -DCMAKE_INSTALL_PREFIX=${AWS_DEPS_INSTALL_DIR}
50
- -DCMAKE_PREFIX_PATH=${AWS_DEPS_INSTALL_DIR}
51
- -DGIT_EXECUTABLE=${GIT_EXECUTABLE}
52
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
53
- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
54
- -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
55
- ${CMAKE_CURRENT_SOURCE_DIR} /aws-common-runtime
56
- WORKING_DIRECTORY ${AWS_DEPS_BUILD_DIR}
57
- )
58
-
59
- else ()
60
- execute_process (
61
- COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR}
62
- -DTARGET_ARCH=${TARGET_ARCH}
63
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
64
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
65
- -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
66
- -DCMAKE_PREFIX_PATH=${AWS_DEPS_INSTALL_DIR}
67
- -DCMAKE_INSTALL_PREFIX=${AWS_DEPS_INSTALL_DIR}
68
- -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
69
- -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR} /bin
70
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
71
- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
72
- -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
73
- ${CMAKE_CURRENT_SOURCE_DIR} /aws-common-runtime
74
- WORKING_DIRECTORY ${AWS_DEPS_BUILD_DIR}
75
- RESULT_VARIABLE BUILD_AWSCRT_EXIT_CODE
76
- )
77
- endif ()
78
-
79
- if (NOT ${BUILD_AWSCRT_EXIT_CODE} EQUAL 0)
80
- message (FATAL_ERROR "Failed to configure aws crt libraries." )
81
- endif ()
82
- execute_process (COMMAND ${CMAKE_COMMAND} --build ${AWS_DEPS_BUILD_DIR} --config ${CMAKE_BUILD_TYPE}
83
- RESULT_VARIABLE BUILD_AWSCRT_EXIT_CODE)
84
-
85
- if (NOT ${BUILD_AWSCRT_EXIT_CODE} EQUAL 0)
86
- message (FATAL_ERROR "Failed to build aws crt libraries." )
87
- endif ()
88
- message (STATUS "AWS Common Runtime is installed at: ${AWS_DEPS_INSTALL_DIR} " )
89
-
90
- #the following two lines are done in this branch intentionally, don't move it. project() does some magic that
91
- #we don't want happening until we're done with the above code.
92
- list (APPEND CMAKE_PREFIX_PATH "${AWS_DEPS_INSTALL_DIR} " )
93
-
94
- project (aws-iot-device-sdk-cpp-v2)
95
-
96
- else ()
97
- #the following two lines are done in this branch intentionally, don't move it. project() does some magic that
98
- #we want happening exactly right now.
99
- project (aws-iot-device-sdk-cpp-v2)
100
-
101
- endif ()
102
31
# This is required in order to append /lib/cmake to each element in CMAKE_PREFIX_PATH
103
32
set (AWS_MODULE_DIR "/${CMAKE_INSTALL_LIBDIR} /cmake" )
104
33
string (REPLACE ";" "${AWS_MODULE_DIR} ;" AWS_MODULE_PATH "${CMAKE_PREFIX_PATH}${AWS_MODULE_DIR} " )
105
34
# Append that generated list to the module search path
106
35
list (APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH} )
107
36
108
-
109
- if (NOT CMAKE_CXX_STANDARD)
110
- set (CMAKE_CXX_STANDARD 11)
37
+ if (NOT CMAKE_BUILD_TYPE )
38
+ set (CMAKE_BUILD_TYPE "RelWithDebInfo" )
111
39
endif ()
112
40
113
- set (IS_SUBDIRECTORY_INCLUDE true )
114
- find_package (aws-crt-cpp REQUIRED)
41
+ if (BUILD_DEPS)
42
+ list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR} /aws-common-runtime/aws-crt-cpp/aws-common-runtime/aws-c-common/cmake" )
43
+
44
+ include (AwsFindPackage)
45
+ set (IN_SOURCE_BUILD ON )
46
+ set (BUILD_TESTING_PREV BUILD_TESTING)
47
+ set (BUILD_TESTING OFF )
48
+ add_subdirectory (aws-common-runtime/aws-crt-cpp)
49
+
50
+ set (BUILD_TESTING BUILD_TESTING_PREV)
51
+ else ()
52
+ include (AwsFindPackage)
53
+ set (IN_SOURCE_BUILD OFF )
54
+ endif ()
115
55
116
56
add_subdirectory (jobs)
117
57
add_subdirectory (shadow)
0 commit comments