Skip to content

Commit 25b1920

Browse files
committed
Revert "A few CMake improvements (#68)"
This reverts commit b81d490.
1 parent b81d490 commit 25b1920

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

CMakeLists.txt

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
cmake_minimum_required(VERSION 3.9)
1+
cmake_minimum_required(VERSION 3.5)
22
set(CMAKE_CXX_STANDARD 11)
33
project(aws-lambda-runtime
44
VERSION 0.2.4
55
LANGUAGES CXX)
66

77
option(ENABLE_TESTS "Enables building the test project, requires AWS C++ SDK." OFF)
88

9-
include(CheckIPOSupported)
9+
include(CheckCXXCompilerFlag)
10+
11+
check_cxx_compiler_flag("-Wl,-flto" LTO_CAPABLE)
1012

1113
add_library(${PROJECT_NAME}
1214
"src/logging.cpp"
@@ -15,21 +17,12 @@ add_library(${PROJECT_NAME}
1517
"${CMAKE_CURRENT_BINARY_DIR}/version.cpp"
1618
)
1719

18-
set_target_properties(${PROJECT_NAME} PROPERTIES
19-
SOVERSION 0
20-
VERSION ${PROJECT_VERSION})
20+
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
2121

2222
target_include_directories(${PROJECT_NAME} PUBLIC
2323
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
2424
$<INSTALL_INTERFACE:include>)
2525

26-
check_ipo_supported(RESULT has_lto OUTPUT lto_check_output)
27-
if(has_lto)
28-
set_property(TARGET ${PROJECT_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
29-
else()
30-
message(WARNING "Link-time optimization (LTO) is not supported: ${lto_check_output}")
31-
endif()
32-
3326
find_package(CURL REQUIRED)
3427
if (CMAKE_VERSION VERSION_LESS 3.12)
3528
target_link_libraries(${PROJECT_NAME} PRIVATE ${CURL_LIBRARIES})
@@ -43,7 +36,6 @@ target_compile_options(${PROJECT_NAME} PRIVATE
4336
"-fno-exceptions"
4437
"-fno-rtti"
4538
"-fvisibility=hidden"
46-
"-fvisibility-inlines-hidden"
4739
"-Wall"
4840
"-Wextra"
4941
"-Werror"
@@ -72,6 +64,11 @@ else ()
7264
target_compile_definitions(${PROJECT_NAME} PRIVATE "AWS_LAMBDA_LOG=0")
7365
endif()
7466

67+
if ((BUILD_SHARED_LIBS) AND (LTO_CAPABLE))
68+
target_compile_options(${PROJECT_NAME} PRIVATE "-flto")
69+
target_link_libraries(${PROJECT_NAME} PRIVATE "-flto")
70+
endif()
71+
7572
#tests
7673
if (ENABLE_TESTS)
7774
enable_testing()
@@ -84,37 +81,24 @@ configure_file(
8481
"${CMAKE_CURRENT_BINARY_DIR}/version.cpp"
8582
NEWLINE_STYLE LF)
8683

87-
include (CMakePackageConfigHelpers)
88-
89-
write_basic_package_version_file("${PROJECT_NAME}-config-version.cmake"
90-
VERSION ${PROJECT_VERSION}
91-
COMPATIBILITY SameMajorVersion)
92-
9384
# installation
9485
install(FILES "include/aws/http/response.h"
9586
DESTINATION "include/aws/http")
9687

97-
install(FILES
88+
install(FILES
9889
"include/aws/lambda-runtime/runtime.h"
9990
"include/aws/lambda-runtime/version.h"
10091
"include/aws/lambda-runtime/outcome.h"
101-
DESTINATION "include/aws/lambda-runtime"
102-
COMPONENT ${PROJECT_NAME}-Development)
92+
DESTINATION "include/aws/lambda-runtime")
10393

10494
install(FILES "include/aws/logging/logging.h"
10595
DESTINATION "include/aws/logging")
10696

107-
include(GNUInstallDirs)
10897
install(TARGETS ${PROJECT_NAME}
10998
EXPORT ${PROJECT_NAME}-targets
110-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
111-
COMPONENT ${PROJECT_NAME}-Development
112-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
113-
COMPONENT ${PROJECT_NAME}-Runtime
114-
NAMELINK_COMPONENT ${PROJECT_NAME}-Developemnt
115-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
116-
COMPONENT ${PROJECT_NAME}-Runtime
117-
)
99+
ARCHIVE DESTINATION lib
100+
LIBRARY DESTINATION lib
101+
RUNTIME DESTINATION bin)
118102

119103
configure_file("${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake"
120104
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
@@ -127,7 +111,6 @@ install(EXPORT "${PROJECT_NAME}-targets"
127111
NAMESPACE AWS::)
128112

129113
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
130-
${PROJECT_NAME}-config-version.cmake
131114
DESTINATION "lib/${PROJECT_NAME}/cmake/")
132115

133116
install(PROGRAMS "${CMAKE_SOURCE_DIR}/packaging/packager"

0 commit comments

Comments
 (0)