33
44# As of October 2024, we picked 3.9 as our version because internally we still support RHEL5 and AL2012, and CMake 3.9
55# was the latest version available on those platforms.
6- cmake_minimum_required (VERSION 3.9)
6+ cmake_minimum_required (VERSION 3.9...3.31 )
77option (ALLOW_CROSS_COMPILED_TESTS "Allow tests to be compiled via cross compile, for use with qemu" OFF )
88
99project (aws-c-common LANGUAGES C VERSION 0.1.0)
1010
1111message (STATUS "CMake ${CMAKE_VERSION} " )
1212
13- if (POLICY CMP0077)
14- cmake_policy (SET CMP0077 OLD) # Enable options to get their values from normal variables
15- endif ()
16-
1713list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /cmake" )
1814include (AwsCFlags)
1915include (AwsCheckHeaders)
@@ -23,6 +19,7 @@ include(AwsSanitizers)
2319include (AwsThreadAffinity)
2420include (AwsThreadName)
2521include (CTest)
22+ include (GNUInstallDirs)
2623
2724set (GENERATED_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR} /generated" )
2825set (GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR} /include" )
@@ -247,7 +244,7 @@ foreach(HEADER_SRCPATH IN ITEMS ${AWS_COMMON_HEADERS} ${AWS_COMMON_OS_HEADERS} $
247244
248245 unset (HEADER_DSTDIR)
249246
250- foreach (POTENTIAL_PREFIX IN ITEMS ${GENERATED_ROOT_DIR} ${CMAKE_CURRENT_SOURCE_DIR} )
247+ foreach (POTENTIAL_PREFIX IN ITEMS " ${GENERATED_INCLUDE_DIR} " " ${CMAKE_CURRENT_SOURCE_DIR} /include" )
251248 string (LENGTH ${POTENTIAL_PREFIX} _prefixlen)
252249 string (SUBSTRING ${HEADER_DIR} 0 ${_prefixlen} _actual_prefix)
253250 if (${_actual_prefix} STREQUAL ${POTENTIAL_PREFIX} )
@@ -261,7 +258,7 @@ foreach(HEADER_SRCPATH IN ITEMS ${AWS_COMMON_HEADERS} ${AWS_COMMON_OS_HEADERS} $
261258 endif ()
262259
263260 install (FILES ${HEADER_SRCPATH}
264- DESTINATION ${ HEADER_DSTDIR}
261+ DESTINATION " ${CMAKE_INSTALL_INCLUDEDIR} / ${ HEADER_DSTDIR}"
265262 COMPONENT Development)
266263endforeach ()
267264
@@ -278,12 +275,12 @@ else()
278275endif ()
279276
280277install (EXPORT "${PROJECT_NAME} -targets"
281- DESTINATION "${LIBRARY_DIRECTORY} / ${PROJECT_NAME} /cmake /${TARGET_DIR} "
278+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} /${TARGET_DIR} "
282279 NAMESPACE AWS::
283280 COMPONENT Development)
284281
285282install (FILES "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} -config.cmake"
286- DESTINATION "${LIBRARY_DIRECTORY} / ${PROJECT_NAME} /cmake "
283+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/ ${PROJECT_NAME} "
287284 COMPONENT Development)
288285
289286list (APPEND EXPORT_MODULES
@@ -300,7 +297,7 @@ list(APPEND EXPORT_MODULES
300297 )
301298
302299install (FILES ${EXPORT_MODULES}
303- DESTINATION "${LIBRARY_DIRECTORY } /cmake"
300+ DESTINATION "${CMAKE_INSTALL_LIBDIR } /cmake/ ${PROJECT_NAME} /modules "
304301 COMPONENT Development)
305302
306303# This should come last, to ensure all variables defined by cmake will be available for export
0 commit comments