PowerMaster/qamqp/src/CMakeLists.txt

96 lines
2.1 KiB
CMake

set(QAMQP_HEADERS
qamqpauthenticator.h
qamqpchannel.h
qamqpchannel_p.h
qamqpchannelhash_p.h
qamqpclient.h
qamqpclient_p.h
qamqpexchange.h
qamqpexchange_p.h
qamqpglobal.h
qamqpmessage.h
qamqpmessage_p.h
qamqpqueue.h
qamqpqueue_p.h
qamqptable.h
qamqpframe_p.h
)
set(QAMQP_SOURCES
qamqpauthenticator.cpp
qamqpchannel.cpp
qamqpchannelhash.cpp
qamqpclient.cpp
qamqpexchange.cpp
qamqpframe.cpp
qamqpmessage.cpp
qamqpqueue.cpp
qamqptable.cpp
)
if(MSVC)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build static library for MSVC" FORCE)
endif()
if(BUILD_SHARED_LIBS)
add_library(qamqp SHARED ${QAMQP_HEADERS} ${QAMQP_SOURCES})
else()
add_library(qamqp STATIC ${QAMQP_HEADERS} ${QAMQP_SOURCES})
endif()
add_library(qamqp::qamqp ALIAS qamqp)
set_target_properties(qamqp PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
EXPORT_NAME qamqp
OUTPUT_NAME qamqp
DEBUG_POSTFIX d
)
target_include_directories(qamqp
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/qamqp>
)
target_link_libraries(qamqp
PUBLIC
Qt6::Core
Qt6::Network
)
target_compile_definitions(qamqp
PRIVATE
QAMQP_BUILD
PUBLIC
$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:QAMQP_STATIC>
)
set_target_properties(qamqp PROPERTIES
AUTOMOC ON
AUTORCC ON
AUTOUIC ON
CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
EXPORT_NAME qamqp
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
install(TARGETS qamqp
EXPORT qamqpTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qamqp
)
install(FILES ${QAMQP_HEADERS}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qamqp
)