Skip to content

Commit 3041dab

Browse files
authored
A bunch of CMake fixes (#701)
1 parent fdb053b commit 3041dab

File tree

1 file changed

+9
-24
lines changed

1 file changed

+9
-24
lines changed

CMakeLists.txt

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,19 @@
11

2-
cmake_minimum_required(VERSION 3.9)
2+
cmake_minimum_required(VERSION 3.9...3.31)
33
project(aws-c-io C)
44

5-
if (DEFINED CMAKE_PREFIX_PATH)
6-
file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
5+
if (NOT IN_SOURCE_BUILD)
6+
# this is required so we can use aws-c-common's CMake modules
7+
find_package(aws-c-common REQUIRED)
78
endif()
89

9-
if (DEFINED CMAKE_INSTALL_PREFIX)
10-
file(TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX)
11-
endif()
12-
13-
14-
if (UNIX AND NOT APPLE)
15-
include(GNUInstallDirs)
16-
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
17-
set(CMAKE_INSTALL_LIBDIR "lib")
18-
endif()
19-
20-
# This is required in order to append /lib/cmake to each element in CMAKE_PREFIX_PATH
21-
set(AWS_MODULE_DIR "/${CMAKE_INSTALL_LIBDIR}/cmake")
22-
string(REPLACE ";" "${AWS_MODULE_DIR};" AWS_MODULE_PATH "${CMAKE_PREFIX_PATH}${AWS_MODULE_DIR}")
23-
# Append that generated list to the module search path
24-
list(APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH})
25-
2610
include(AwsCFlags)
2711
include(AwsCheckHeaders)
2812
include(AwsSharedLibSetup)
2913
include(AwsSanitizers)
3014
include(AwsFindPackage)
3115
include(CTest)
16+
include(GNUInstallDirs)
3217

3318
option(BUILD_RELOCATABLE_BINARIES
3419
"Build Relocatable Binaries, this will turn off features that will fail on older kernels than used for the build."
@@ -230,8 +215,8 @@ target_link_libraries(${PROJECT_NAME} PRIVATE ${PLATFORM_LIBS})
230215

231216
aws_prepare_shared_lib_exports(${PROJECT_NAME})
232217

233-
install(FILES ${AWS_IO_HEADERS} DESTINATION "include/aws/io" COMPONENT Development)
234-
install(FILES ${AWS_IO_TESTING_HEADERS} DESTINATION "include/aws/testing" COMPONENT Development)
218+
install(FILES ${AWS_IO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/io" COMPONENT Development)
219+
install(FILES ${AWS_IO_TESTING_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/testing" COMPONENT Development)
235220

236221
if (BUILD_SHARED_LIBS)
237222
set (TARGET_DIR "shared")
@@ -240,7 +225,7 @@ else()
240225
endif()
241226

242227
install(EXPORT "${PROJECT_NAME}-targets"
243-
DESTINATION "${LIBRARY_DIRECTORY}/${PROJECT_NAME}/cmake/${TARGET_DIR}"
228+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/${TARGET_DIR}"
244229
NAMESPACE AWS::
245230
COMPONENT Development)
246231

@@ -249,7 +234,7 @@ configure_file("cmake/${PROJECT_NAME}-config.cmake"
249234
@ONLY)
250235

251236
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
252-
DESTINATION "${LIBRARY_DIRECTORY}/${PROJECT_NAME}/cmake/"
237+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/"
253238
COMPONENT Development)
254239

255240
if (NOT CMAKE_CROSSCOMPILING)

0 commit comments

Comments
 (0)