Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A bunch of CMake fixes #769

Merged
merged 8 commits into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ env:

jobs:
linux-compat:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
matrix:
image:
Expand Down Expand Up @@ -447,7 +447,7 @@ jobs:
python3 ./devicedefender/script/DDTestRun.py mqtt5
# Runs the samples and ensures that everything is working
linux-smoke-tests:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
fail-fast: false
permissions:
Expand Down
29 changes: 5 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(AwsGetVersion)
Expand All @@ -14,33 +14,11 @@ option(BUILD_DEPS "Builds aws common runtime dependencies as part of build. Turn
option(USE_EXTERNAL_DEPS_SOURCES "Use dependencies provided by add_subdirectory command" OFF)
option(BUILD_SAMPLES "(DEPRECATED) Build samples as part of the build" OFF)

if (DEFINED CMAKE_PREFIX_PATH)
file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
endif()

if (DEFINED CMAKE_INSTALL_PREFIX)
file(TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX)
endif()

if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")
endif()

if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()

# This is required in order to append /lib/cmake to each element in CMAKE_PREFIX_PATH
set(AWS_MODULE_DIR "/${CMAKE_INSTALL_LIBDIR}/cmake")
string(REPLACE ";" "${AWS_MODULE_DIR};" AWS_MODULE_PATH "${CMAKE_PREFIX_PATH}${AWS_MODULE_DIR}")
# Append that generated list to the module search path
list(APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH})
include(GNUInstallDirs)

if (NOT CMAKE_BUILD_TYPE)
if (NOT WIN32)
Expand Down Expand Up @@ -92,6 +70,9 @@ else()

set(IN_SOURCE_BUILD ON)
else()
# this is required so we can use aws-c-common's CMake modules
find_package(aws-c-common REQUIRED)

set(IN_SOURCE_BUILD OFF)
endif()

Expand Down
2 changes: 1 addition & 1 deletion deviceadvisor/tests/mqtt_connect/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)
# note: cxx-17 requires cmake 3.8, cxx-20 requires cmake 3.12
project(mqtt_connect CXX)

Expand Down
2 changes: 1 addition & 1 deletion deviceadvisor/tests/mqtt_publish/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)
# note: cxx-17 requires cmake 3.8, cxx-20 requires cmake 3.12
project(mqtt_publish CXX)

Expand Down
2 changes: 1 addition & 1 deletion deviceadvisor/tests/mqtt_subscribe/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)
# note: cxx-17 requires cmake 3.8, cxx-20 requires cmake 3.12
project(mqtt_subscribe CXX)

Expand Down
4 changes: 1 addition & 3 deletions deviceadvisor/tests/shadow_update/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)
# note: cxx-17 requires cmake 3.8, cxx-20 requires cmake 3.12
project(shadow_update CXX)

Expand All @@ -23,6 +23,4 @@ endif ()
find_package(aws-crt-cpp REQUIRED)
find_package(IotShadow-cpp REQUIRED)

install(TARGETS ${PROJECT_NAME} DESTINATION bin)

target_link_libraries(${PROJECT_NAME} PRIVATE AWS::aws-crt-cpp AWS::IotShadow-cpp)
24 changes: 5 additions & 19 deletions devicedefender/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)

project(IotDeviceDefender-cpp LANGUAGES CXX VERSION ${SIMPLE_VERSION})

set(RUNTIME_DIRECTORY bin)

if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")

if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()
endif()

set(GENERATED_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR}/include")
set(GENERATED_CONFIG_HEADER "${GENERATED_INCLUDE_DIR}/aws/iotdevicedefender/Config.h")
configure_file(include/aws/iotdevicedefender/Config.h.in ${GENERATED_CONFIG_HEADER} @ONLY)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_PREFIX_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake")

if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
Expand Down Expand Up @@ -75,7 +61,7 @@ if (BUILD_SHARED_LIBS)
NAMELINK_SKIP
COMPONENT Runtime
RUNTIME
DESTINATION ${RUNTIME_DIRECTORY}
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT Runtime)

install(TARGETS IotDeviceDefender-cpp
Expand Down Expand Up @@ -104,7 +90,7 @@ endif()

target_link_libraries(IotDeviceDefender-cpp IotDeviceCommon-cpp)

install(FILES ${AWS_IOTDEVICEDEFENDER_HEADERS} DESTINATION "include/aws/iotdevicedefender/" COMPONENT Development)
install(FILES ${AWS_IOTDEVICEDEFENDER_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/iotdevicedefender/" COMPONENT Development)

if (BUILD_SHARED_LIBS)
set(TARGET_DIR "shared")
Expand All @@ -121,7 +107,7 @@ if (DEFINED SIMPLE_VERSION)
endif()

install(EXPORT "IotDeviceDefender-cpp-targets"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/IotDeviceDefender-cpp/cmake/${TARGET_DIR}"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/IotDeviceDefender-cpp/${TARGET_DIR}"
NAMESPACE AWS::
COMPONENT Development)

Expand All @@ -130,7 +116,7 @@ configure_file("cmake/iotdevicedefender-cpp-config.cmake"
@ONLY)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/iotdevicedefender-cpp-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/IotDeviceDefender-cpp/cmake/"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/IotDeviceDefender-cpp/"
COMPONENT Development)

if (BUILD_TESTING)
Expand Down
24 changes: 5 additions & 19 deletions discovery/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)

project(Discovery-cpp LANGUAGES CXX VERSION ${SIMPLE_VERSION})

set(RUNTIME_DIRECTORY bin)

if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")

if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()
endif()

set(GENERATED_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR}/include")
set(GENERATED_CONFIG_HEADER "${GENERATED_INCLUDE_DIR}/aws/discovery/Config.h")
configure_file(include/aws/discovery/Config.h.in ${GENERATED_CONFIG_HEADER} @ONLY)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_PREFIX_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake")

if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
Expand Down Expand Up @@ -75,7 +61,7 @@ if (BUILD_SHARED_LIBS)
NAMELINK_SKIP
COMPONENT Runtime
RUNTIME
DESTINATION ${RUNTIME_DIRECTORY}
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT Runtime)

install(TARGETS Discovery-cpp
Expand Down Expand Up @@ -103,7 +89,7 @@ endif()

target_link_libraries(Discovery-cpp ${DEP_AWS_LIBS})

install(FILES ${AWS_DISCOVERY_HEADERS} DESTINATION "include/aws/discovery/" COMPONENT Development)
install(FILES ${AWS_DISCOVERY_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/discovery/" COMPONENT Development)

if (BUILD_SHARED_LIBS)
set (TARGET_DIR "shared")
Expand All @@ -120,7 +106,7 @@ if (DEFINED SIMPLE_VERSION)
endif()

install(EXPORT "Discovery-cpp-targets"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/Discovery-cpp/cmake/${TARGET_DIR}"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Discovery-cpp/${TARGET_DIR}"
NAMESPACE AWS::
COMPONENT Development)

Expand All @@ -129,5 +115,5 @@ configure_file("cmake/discovery-cpp-config.cmake"
@ONLY)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/discovery-cpp-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/Discovery-cpp/cmake/"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Discovery-cpp/"
COMPONENT Development)
24 changes: 5 additions & 19 deletions eventstream_rpc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)

project(EventstreamRpc-cpp LANGUAGES CXX VERSION ${SIMPLE_VERSION})

set(RUNTIME_DIRECTORY bin)

if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")

if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()
endif()

set(GENERATED_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR}/include")
set(GENERATED_CONFIG_HEADER "${GENERATED_INCLUDE_DIR}/aws/eventstreamrpc/Config.h")
configure_file(include/aws/eventstreamrpc/Config.h.in ${GENERATED_CONFIG_HEADER} @ONLY)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_PREFIX_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake")

if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
Expand Down Expand Up @@ -75,7 +61,7 @@ if (BUILD_SHARED_LIBS)
NAMELINK_SKIP
COMPONENT Runtime
RUNTIME
DESTINATION ${RUNTIME_DIRECTORY}
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT Runtime)

install(TARGETS EventstreamRpc-cpp
Expand All @@ -102,7 +88,7 @@ endif()

target_link_libraries(EventstreamRpc-cpp ${DEP_AWS_LIBS})

install(FILES ${AWS_EVENTSTREAMRPC_HEADERS} DESTINATION "include/aws/eventstreamrpc/" COMPONENT Development)
install(FILES ${AWS_EVENTSTREAMRPC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/eventstreamrpc/" COMPONENT Development)

if (BUILD_SHARED_LIBS)
set(TARGET_DIR "shared")
Expand All @@ -119,7 +105,7 @@ if (DEFINED SIMPLE_VERSION)
endif()

install(EXPORT "EventstreamRpc-cpp-targets"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/EventstreamRpc-cpp/cmake/${TARGET_DIR}"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EventstreamRpc-cpp/${TARGET_DIR}"
NAMESPACE AWS::
COMPONENT Development)

Expand All @@ -128,7 +114,7 @@ configure_file("cmake/eventstreamrpc-cpp-config.cmake"
@ONLY)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/eventstreamrpc-cpp-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/EventstreamRpc-cpp/cmake/"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EventstreamRpc-cpp/"
COMPONENT Development)

if (BUILD_TESTING)
Expand Down
13 changes: 1 addition & 12 deletions eventstream_rpc/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,11 @@ if (WIN32)
endif ()
endif()

if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")

if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_PREFIX_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake")

if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

install(FILES ${AWS_ECHOTESTRPC_HEADERS} DESTINATION "include/awstest/" COMPONENT Development)
install(FILES ${AWS_ECHOTESTRPC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/awstest/" COMPONENT Development)

file(GLOB TEST_SRC "*.cpp")
file(GLOB TEST_HDRS "*.h")
Expand Down
24 changes: 5 additions & 19 deletions greengrass_ipc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
cmake_minimum_required(VERSION 3.9)
cmake_minimum_required(VERSION 3.9...3.31)

project(GreengrassIpc-cpp LANGUAGES CXX VERSION ${SIMPLE_VERSION})

set(RUNTIME_DIRECTORY bin)

if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")

if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()
endif()

set(GENERATED_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(GENERATED_INCLUDE_DIR "${GENERATED_ROOT_DIR}/include")
set(GENERATED_CONFIG_HEADER "${GENERATED_INCLUDE_DIR}/aws/greengrass/Config.h")
configure_file(include/aws/greengrass/Config.h.in ${GENERATED_CONFIG_HEADER} @ONLY)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_PREFIX_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake")

if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
Expand Down Expand Up @@ -83,7 +69,7 @@ if (BUILD_SHARED_LIBS)
NAMELINK_SKIP
COMPONENT Runtime
RUNTIME
DESTINATION ${RUNTIME_DIRECTORY}
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT Runtime)

install(TARGETS GreengrassIpc-cpp
Expand All @@ -110,7 +96,7 @@ endif()

target_link_libraries(GreengrassIpc-cpp ${DEP_AWS_LIBS})

install(FILES ${AWS_GREENGRASSIPC_HEADERS} DESTINATION "include/aws/greengrass/" COMPONENT Development)
install(FILES ${AWS_GREENGRASSIPC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/greengrass/" COMPONENT Development)

if (BUILD_SHARED_LIBS)
set(TARGET_DIR "shared")
Expand All @@ -127,7 +113,7 @@ if (DEFINED SIMPLE_VERSION)
endif()

install(EXPORT "GreengrassIpc-cpp-targets"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/GreengrassIpc-cpp/cmake/${TARGET_DIR}"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/GreengrassIpc-cpp/${TARGET_DIR}"
NAMESPACE AWS::
COMPONENT Development)

Expand All @@ -136,5 +122,5 @@ configure_file("cmake/greengrassipc-cpp-config.cmake"
@ONLY)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/greengrassipc-cpp-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/GreengrassIpc-cpp/cmake/"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/GreengrassIpc-cpp/"
COMPONENT Development)
Loading
Loading