85 lines
3.6 KiB
CMake
85 lines
3.6 KiB
CMake
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
# SPDX-License-Identifier: Apache-2.0.
|
|
|
|
|
|
add_project(AWSSDK "User friendly cmake creator")
|
|
|
|
# create a new version file for AWSSDK, then find_package will return latest PACKAGE_VERSION
|
|
write_basic_package_version_file(
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
|
|
VERSION ${PROJECT_VERSION}
|
|
COMPATIBILITY AnyNewerVersion
|
|
)
|
|
|
|
file(APPEND
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
|
|
"set(AWSSDK_INSTALL_AS_SHARED_LIBS ${BUILD_SHARED_LIBS})\n")
|
|
|
|
file(WRITE
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/platformDeps.cmake"
|
|
"# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
# SPDX-License-Identifier: Apache-2.0.\n"
|
|
"set(AWSSDK_PLATFORM_DEPS_LIBS ${PLATFORM_DEP_LIBS_ABSTRACT_NAME})\n"
|
|
"set(AWSSDK_CLIENT_LIBS ${CLIENT_LIBS_ABSTRACT_NAME})\n"
|
|
"set(AWSSDK_CRYPTO_LIBS ${CRYPTO_LIBS_ABSTRACT_NAME})\n"
|
|
"set(AWSSDK_THIRD_PARTY_LIBS ${THIRD_PARTY_LIBS})\n"
|
|
"set(AWSSDK_ADDITIONAL_LIBS ${AWS_SDK_ADDITIONAL_LIBRARIES_ABSTRACT_NAME})\n"
|
|
"set(AWSSDK_INSTALL_LIBDIR ${LIBRARY_DIRECTORY})\n"
|
|
"set(AWSSDK_INSTALL_BINDIR ${BINARY_DIRECTORY})\n"
|
|
"set(AWSSDK_INSTALL_INCLUDEDIR ${INCLUDE_DIRECTORY})\n"
|
|
"set(AWSSDK_INSTALL_ARCHIVEDIR ${ARCHIVE_DIRECTORY})\n"
|
|
)
|
|
|
|
if (NOT SIMPLE_INSTALL)
|
|
file(APPEND
|
|
"${CMAKE_CURRENT_BINARY_DIR}/platformDeps.cmake"
|
|
"set(AWSSDK_PLATFORM_PREFIX ${SDK_INSTALL_BINARY_PREFIX}/${PLATFORM_INSTALL_QUALIFIER})\n")
|
|
endif()
|
|
|
|
# copy version file to destination
|
|
install(
|
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
|
|
DESTINATION "${LIBRARY_DIRECTORY}/cmake/${PROJECT_NAME}")
|
|
|
|
# platform external dependencies
|
|
install(
|
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/platformDeps.cmake"
|
|
DESTINATION "${LIBRARY_DIRECTORY}/cmake/${PROJECT_NAME}/")
|
|
|
|
# copy all cmake files to destination, these files include useful macros, functions and variables for users.
|
|
# useful macros and variables will be included in this cmake file for user to use
|
|
install(DIRECTORY "${AWS_NATIVE_SDK_ROOT}/cmake/" DESTINATION "${LIBRARY_DIRECTORY}/cmake/${PROJECT_NAME}")
|
|
|
|
# copy third party dependencies
|
|
if (BUILD_DEPS)
|
|
if (NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
|
set(CMAKE_INSTALL_LIBDIR lib)
|
|
endif()
|
|
if (NOT DEFINED CMAKE_INSTALL_BINDIR)
|
|
set(CMAKE_INSTALL_BINDIR bin)
|
|
endif()
|
|
if (EXISTS "${AWS_DEPS_INSTALL_DIR}/include")
|
|
install(DIRECTORY "${AWS_DEPS_INSTALL_DIR}/include/" DESTINATION "${INCLUDE_DIRECTORY}")
|
|
endif()
|
|
if (EXISTS "${AWS_DEPS_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}")
|
|
install(DIRECTORY "${AWS_DEPS_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/" DESTINATION "${LIBRARY_DIRECTORY}")
|
|
endif()
|
|
if (EXISTS "${AWS_DEPS_INSTALL_DIR}/${CMAKE_INSTALL_BINDIR}")
|
|
install(DIRECTORY "${AWS_DEPS_INSTALL_DIR}/${CMAKE_INSTALL_BINDIR}/" DESTINATION "${BINARY_DIRECTORY}")
|
|
endif()
|
|
endif()
|
|
|
|
# following two files are vital for cmake to find correct package, but since we copied all files from above
|
|
# we left the code here to give you bettern understanding
|
|
#install(
|
|
# FILES "${AWS_NATIVE_SDK_ROOT}/cmake/${PROJECT_NAME}Config.cmake"
|
|
# DESTINATION "${LIBRARY_DIRECTORY}/cmake/${PROJECT_NAME}")
|
|
|
|
# to make compile time settings consistent with user usage time settings, we copy common settings to
|
|
# destination. These settings will be included by ${PROJECT_NAME}-config.cmake
|
|
|
|
# internal dependencies
|
|
#install(
|
|
# FILES "${AWS_NATIVE_SDK_ROOT}/cmake/sdksCommon.cmake"
|
|
# DESTINATION "${LIBRARY_DIRECTORY}/cmake/${PROJECT_NAME}/")
|