91 lines
2.3 KiB
CMake
91 lines
2.3 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(qamqp VERSION 0.0.1 LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
find_package(Git QUIET)
|
|
|
|
if(GIT_FOUND)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} describe --long --dirty --tags
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_VERSION
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} describe --abbrev=0
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_TAG
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
if(GIT_TAG)
|
|
string(REGEX REPLACE "^v" "" VERSION ${GIT_TAG})
|
|
else()
|
|
set(VERSION ${PROJECT_VERSION})
|
|
endif()
|
|
else()
|
|
set(GIT_VERSION "unknown")
|
|
set(VERSION ${PROJECT_VERSION})
|
|
endif()
|
|
|
|
add_compile_definitions(GIT_VERSION="${GIT_VERSION}")
|
|
|
|
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
|
|
|
find_package(Qt6 COMPONENTS Core Network REQUIRED)
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
add_subdirectory(src)
|
|
export(TARGETS qamqp
|
|
NAMESPACE qamqp::
|
|
FILE "${CMAKE_CURRENT_BINARY_DIR}/qamqpTargets.cmake"
|
|
)
|
|
|
|
option(BUILD_TESTS "Build tests" OFF)
|
|
if(BUILD_TESTS)
|
|
enable_testing()
|
|
add_subdirectory(tests)
|
|
endif()
|
|
|
|
option(BUILD_TUTORIALS "Build tutorials" OFF)
|
|
if(BUILD_TUTORIALS)
|
|
add_subdirectory(tutorials)
|
|
endif()
|
|
|
|
include(GNUInstallDirs)
|
|
install(EXPORT qamqpTargets
|
|
FILE qamqpTargets.cmake
|
|
NAMESPACE qamqp::
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/qamqp
|
|
)
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
write_basic_package_version_file(
|
|
"${CMAKE_CURRENT_BINARY_DIR}/qamqpConfigVersion.cmake"
|
|
VERSION ${VERSION}
|
|
COMPATIBILITY SameMajorVersion
|
|
)
|
|
|
|
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/qamqpConfig.cmake.in
|
|
"${CMAKE_CURRENT_BINARY_DIR}/qamqpConfig.cmake"
|
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/qamqp
|
|
)
|
|
|
|
install(FILES
|
|
"${CMAKE_CURRENT_BINARY_DIR}/qamqpConfig.cmake"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/qamqpConfigVersion.cmake"
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/qamqp
|
|
)
|