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)
62
73option (BUILD_DEPS "Builds aws common runtime dependencies as part of build. Turn off if you want to control your dependency chain." ON )
84option (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"
3026 VERSION ${SIMPLE_VERSION} )
3127
3228include (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)
5130
5231if (NOT CMAKE_CXX_STANDARD)
5332 set (CMAKE_CXX_STANDARD 11)
@@ -65,13 +44,6 @@ set(GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR}/include")
6544set (GENERATED_CONFIG_HEADER "${GENERATED_INCLUDE_DIR} /aws/crt/Config.h" )
6645configure_file (include /aws/crt/Config.h.in ${GENERATED_CONFIG_HEADER} @ONLY)
6746
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-
7547if (BUILD_DEPS)
7648 list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR} /crt/aws-c-common/cmake" )
7749
@@ -132,6 +104,9 @@ if(BUILD_DEPS)
132104 add_subdirectory (crt/aws-c-s3)
133105 set (BUILD_TESTING ${BUILD_TESTING_PREV} )
134106else ()
107+ # this is required so we can use aws-c-common's CMake modules
108+ find_package (aws-c-common REQUIRED)
109+
135110 include (AwsFindPackage)
136111 set (IN_SOURCE_BUILD OFF )
137112endif ()
@@ -356,23 +331,23 @@ aws_add_sanitizers(${PROJECT_NAME})
356331
357332target_link_libraries (${PROJECT_NAME} PUBLIC ${DEP_AWS_LIBS} )
358333
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)
369344
370345install (
371346 TARGETS ${PROJECT_NAME}
372347 EXPORT ${PROJECT_NAME} -targets
373348 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
374349 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
375- RUNTIME DESTINATION bin COMPONENT Runtime
350+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime
376351)
377352
378353if (BUILD_SHARED_LIBS )
@@ -382,7 +357,7 @@ else()
382357endif ()
383358
384359install (EXPORT "${PROJECT_NAME} -targets"
385- DESTINATION "${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME} /cmake /${TARGET_DIR} "
360+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} /${TARGET_DIR} "
386361 NAMESPACE AWS::
387362 COMPONENT Development)
388363
@@ -398,11 +373,11 @@ write_basic_package_version_file(
398373)
399374
400375install (FILES "${GENERATED_ROOT_DIR} /${PROJECT_NAME} -config.cmake"
401- DESTINATION "${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME} /cmake /"
376+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} /"
402377 COMPONENT Development)
403378
404379install (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} /"
406381 COMPONENT Development)
407382
408383if (NOT CMAKE_CROSSCOMPILING )
0 commit comments