mirror of
https://github.com/logos-co/logos-cpp-sdk.git
synced 2026-08-31 01:31:10 +00:00
123 lines
3.2 KiB
CMake
123 lines
3.2 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(LogosSDK)
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
# Find Qt packages
|
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core RemoteObjects)
|
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core RemoteObjects)
|
|
|
|
# SDK sources
|
|
set(SDK_SOURCES
|
|
logos_types.cpp
|
|
logos_types.h
|
|
logos_api.cpp
|
|
logos_api.h
|
|
logos_api_client.cpp
|
|
logos_api_client.h
|
|
logos_api_consumer.cpp
|
|
logos_api_consumer.h
|
|
logos_api_provider.cpp
|
|
logos_api_provider.h
|
|
module_proxy.cpp
|
|
module_proxy.h
|
|
token_manager.cpp
|
|
token_manager.h
|
|
logos_mode.h
|
|
logos_instance.h
|
|
plugin_registry.h
|
|
logos_object.h
|
|
logos_provider_object.cpp
|
|
logos_provider_object.h
|
|
qt_provider_object.cpp
|
|
qt_provider_object.h
|
|
logos_transport.h
|
|
logos_transport_factory.cpp
|
|
logos_transport_factory.h
|
|
logos_registry.h
|
|
logos_registry_factory.h
|
|
logos_registry_factory.cpp
|
|
implementations/qt_local/local_transport.cpp
|
|
implementations/qt_local/local_transport.h
|
|
implementations/qt_remote/remote_transport.cpp
|
|
implementations/qt_remote/remote_transport.h
|
|
implementations/qt_remote/qt_remote_registry.h
|
|
implementations/qt_remote/qt_remote_registry.cpp
|
|
implementations/mock/mock_store.cpp
|
|
implementations/mock/mock_store.h
|
|
implementations/mock/mock_transport.cpp
|
|
implementations/mock/mock_transport.h
|
|
implementations/mock/mock_registry.h
|
|
implementations/mock/logos_mock.h
|
|
)
|
|
|
|
# Create the SDK library as STATIC instead of SHARED
|
|
add_library(logos_sdk STATIC ${SDK_SOURCES})
|
|
|
|
# Link Qt libraries
|
|
target_link_libraries(logos_sdk PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::RemoteObjects)
|
|
|
|
# Include directories
|
|
target_include_directories(logos_sdk PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/implementations/qt_local
|
|
${CMAKE_CURRENT_SOURCE_DIR}/implementations/qt_remote
|
|
${CMAKE_CURRENT_SOURCE_DIR}/implementations/mock
|
|
)
|
|
|
|
# Set output directories for static library
|
|
set_target_properties(logos_sdk PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
)
|
|
|
|
# Install the library
|
|
install(TARGETS logos_sdk
|
|
ARCHIVE DESTINATION lib
|
|
LIBRARY DESTINATION lib
|
|
RUNTIME DESTINATION bin
|
|
)
|
|
|
|
# Install headers
|
|
install(FILES
|
|
logos_types.h
|
|
logos_api.h
|
|
logos_api_client.h
|
|
logos_api_consumer.h
|
|
logos_api_provider.h
|
|
module_proxy.h
|
|
token_manager.h
|
|
logos_mode.h
|
|
logos_instance.h
|
|
plugin_registry.h
|
|
logos_object.h
|
|
logos_provider_object.h
|
|
qt_provider_object.h
|
|
logos_transport.h
|
|
logos_transport_factory.h
|
|
logos_registry.h
|
|
logos_registry_factory.h
|
|
logos_json.h
|
|
DESTINATION include
|
|
)
|
|
|
|
install(FILES
|
|
implementations/qt_local/local_transport.h
|
|
DESTINATION include/implementations/qt_local
|
|
)
|
|
|
|
install(FILES
|
|
implementations/qt_remote/remote_transport.h
|
|
implementations/qt_remote/qt_remote_registry.h
|
|
DESTINATION include/implementations/qt_remote
|
|
)
|
|
|
|
install(FILES
|
|
implementations/mock/mock_store.h
|
|
implementations/mock/mock_transport.h
|
|
implementations/mock/mock_registry.h
|
|
implementations/mock/logos_mock.h
|
|
DESTINATION include/implementations/mock
|
|
)
|