1
- cmake_minimum_required (VERSION 3.9)
2
-
3
- if (POLICY CMP0077)
4
- cmake_policy (SET CMP0077 NEW)
5
- endif ()
1
+ cmake_minimum_required (VERSION 3.9...3.31)
6
2
7
3
option (BUILD_DEPS "Builds aws common runtime dependencies as part of build. Turn off if you want to control your dependency chain." ON )
8
4
option (BYO_CRYPTO "Don't build a tls implementation or link against a crypto interface. This feature is only for unix builds currently" OFF )
@@ -30,24 +26,7 @@ project("aws-crt-cpp"
30
26
VERSION ${SIMPLE_VERSION} )
31
27
32
28
include (CTest)
33
-
34
- if (DEFINED CMAKE_PREFIX_PATH )
35
- file (TO_CMAKE_PATH "${CMAKE_PREFIX_PATH} " CMAKE_PREFIX_PATH )
36
- endif ()
37
-
38
- if (DEFINED CMAKE_INSTALL_PREFIX )
39
- file (TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX} " CMAKE_INSTALL_PREFIX )
40
- endif ()
41
-
42
- if (UNIX AND NOT APPLE )
43
- include (GNUInstallDirs)
44
- elseif (NOT DEFINED CMAKE_INSTALL_LIBDIR)
45
- set (CMAKE_INSTALL_LIBDIR "lib" )
46
- endif ()
47
-
48
- if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64" )
49
- set (FIND_LIBRARY_USE_LIB64_PATHS true )
50
- endif ()
29
+ include (GNUInstallDirs)
51
30
52
31
if (NOT CMAKE_CXX_STANDARD)
53
32
set (CMAKE_CXX_STANDARD 11)
@@ -65,13 +44,6 @@ set(GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR}/include")
65
44
set (GENERATED_CONFIG_HEADER "${GENERATED_INCLUDE_DIR} /aws/crt/Config.h" )
66
45
configure_file (include /aws/crt/Config.h.in ${GENERATED_CONFIG_HEADER} @ONLY)
67
46
68
- # This is required in order to append /lib/cmake to each element in CMAKE_PREFIX_PATH
69
- set (AWS_MODULE_DIR "/${CMAKE_INSTALL_LIBDIR} /cmake" )
70
- string (REPLACE ";" "${AWS_MODULE_DIR} ;" AWS_MODULE_PATH "${CMAKE_PREFIX_PATH}${AWS_MODULE_DIR} " )
71
-
72
- # Append that generated list to the module search path
73
- list (APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH} )
74
-
75
47
if (BUILD_DEPS)
76
48
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR} /crt/aws-c-common/cmake" )
77
49
@@ -132,6 +104,9 @@ if(BUILD_DEPS)
132
104
add_subdirectory (crt/aws-c-s3)
133
105
set (BUILD_TESTING ${BUILD_TESTING_PREV} )
134
106
else ()
107
+ # this is required so we can use aws-c-common's CMake modules
108
+ find_package (aws-c-common REQUIRED)
109
+
135
110
include (AwsFindPackage)
136
111
set (IN_SOURCE_BUILD OFF )
137
112
endif ()
@@ -356,23 +331,23 @@ aws_add_sanitizers(${PROJECT_NAME})
356
331
357
332
target_link_libraries (${PROJECT_NAME} PUBLIC ${DEP_AWS_LIBS} )
358
333
359
- install (FILES ${AWS_CRT_HEADERS} DESTINATION "include /aws/crt" COMPONENT Development)
360
- install (FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "include /aws/crt/auth" COMPONENT Development)
361
- install (FILES ${AWS_CRT_CHECKSUM_HEADERS} DESTINATION "include /aws/crt/checksum" COMPONENT Development)
362
- install (FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "include /aws/crt/crypto" COMPONENT Development)
363
- install (FILES ${AWS_CRT_IO_HEADERS} DESTINATION "include /aws/crt/io" COMPONENT Development)
364
- install (FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "include /aws/iot" COMPONENT Development)
365
- install (FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "include /aws/crt/mqtt" COMPONENT Development)
366
- install (FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "include /aws/crt/http" COMPONENT Development)
367
- install (FILES ${AWS_CRT_ENDPOINT_HEADERS} DESTINATION "include /aws/crt/endpoints" COMPONENT Development)
368
- install (FILES ${AWS_CRT_CBOR_HEADERS} DESTINATION "include /aws/crt/cbor" COMPONENT Development)
334
+ install (FILES ${AWS_CRT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt" COMPONENT Development)
335
+ install (FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/auth" COMPONENT Development)
336
+ install (FILES ${AWS_CRT_CHECKSUM_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/checksum" COMPONENT Development)
337
+ install (FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/crypto" COMPONENT Development)
338
+ install (FILES ${AWS_CRT_IO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/io" COMPONENT Development)
339
+ install (FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/iot" COMPONENT Development)
340
+ install (FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/mqtt" COMPONENT Development)
341
+ install (FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/http" COMPONENT Development)
342
+ install (FILES ${AWS_CRT_ENDPOINT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/endpoints" COMPONENT Development)
343
+ install (FILES ${AWS_CRT_CBOR_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /aws/crt/cbor" COMPONENT Development)
369
344
370
345
install (
371
346
TARGETS ${PROJECT_NAME}
372
347
EXPORT ${PROJECT_NAME} -targets
373
348
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
374
349
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
375
- RUNTIME DESTINATION bin COMPONENT Runtime
350
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime
376
351
)
377
352
378
353
if (BUILD_SHARED_LIBS )
@@ -382,7 +357,7 @@ else()
382
357
endif ()
383
358
384
359
install (EXPORT "${PROJECT_NAME} -targets"
385
- DESTINATION "${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME} /cmake /${TARGET_DIR} "
360
+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} /${TARGET_DIR} "
386
361
NAMESPACE AWS::
387
362
COMPONENT Development)
388
363
@@ -398,11 +373,11 @@ write_basic_package_version_file(
398
373
)
399
374
400
375
install (FILES "${GENERATED_ROOT_DIR} /${PROJECT_NAME} -config.cmake"
401
- DESTINATION "${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME} /cmake /"
376
+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} /"
402
377
COMPONENT Development)
403
378
404
379
install (FILES "${GENERATED_ROOT_DIR} /${PROJECT_NAME} -config-version.cmake"
405
- DESTINATION "${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME} /cmake /"
380
+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} /"
406
381
COMPONENT Development)
407
382
408
383
if (NOT CMAKE_CROSSCOMPILING )
0 commit comments