cmake_minimum_required(VERSION 3.5) project(QtAdvancedDockingSystem LANGUAGES CXX VERSION ${VERSION_SHORT}) find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED) if (UNIX AND NOT APPLE) include_directories(${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}) endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) if(BUILD_STATIC) set(CMAKE_STATIC_LIBRARY_SUFFIX "_static${CMAKE_STATIC_LIBRARY_SUFFIX}") endif() set(ads_SRCS ads_globals.cpp DockAreaTabBar.cpp DockAreaTitleBar.cpp DockAreaWidget.cpp DockContainerWidget.cpp DockManager.cpp DockOverlay.cpp DockSplitter.cpp DockWidget.cpp DockWidgetTab.cpp DockingStateReader.cpp DockFocusController.cpp ElidingLabel.cpp FloatingDockContainer.cpp FloatingDragPreview.cpp IconProvider.cpp DockComponentsFactory.cpp ads.qrc ) set(ads_HEADERS ads_globals.h DockAreaTabBar.h DockAreaTitleBar.h DockAreaTitleBar_p.h DockAreaWidget.h DockContainerWidget.h DockManager.h DockOverlay.h DockSplitter.h DockWidget.h DockWidgetTab.h DockingStateReader.h DockFocusController.h ElidingLabel.h FloatingDockContainer.h FloatingDragPreview.h IconProvider.h DockComponentsFactory.h ) add_compile_options("$<$:/utf-8>") if (UNIX AND NOT APPLE) set(ads_SRCS linux/FloatingWidgetTitleBar.cpp ${ads_SRCS}) set(ads_HEADERS linux/FloatingWidgetTitleBar.h ${ads_HEADERS}) endif() if(BUILD_STATIC) add_library(qtadvanceddocking STATIC ${ads_SRCS} ${ads_HEADERS}) target_compile_definitions(qtadvanceddocking PUBLIC ADS_STATIC) else() add_library(qtadvanceddocking SHARED ${ads_SRCS} ${ads_HEADERS}) target_compile_definitions(qtadvanceddocking PRIVATE ADS_SHARED_EXPORT) endif() target_link_libraries(qtadvanceddocking PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets) set_target_properties(qtadvanceddocking PROPERTIES AUTOMOC ON AUTORCC ON CXX_STANDARD 14 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF VERSION ${VERSION_SHORT} EXPORT_NAME "qtadvanceddocking" ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin" ) include(CMakePackageConfigHelpers) write_basic_package_version_file( "qtadvanceddockingConfigVersion.cmake" VERSION ${VERSION_SHORT} COMPATIBILITY SameMajorVersion ) install(FILES ${ads_HEADERS} DESTINATION include COMPONENT headers ) install(FILES "${CMAKE_SOURCE_DIR}/LICENSE" "${CMAKE_SOURCE_DIR}/gnu-lgpl-v2.1.md" DESTINATION license COMPONENT license ) install(TARGETS qtadvanceddocking EXPORT adsTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib INCLUDES DESTINATION include ) install(EXPORT adsTargets FILE adsTargets.cmake NAMESPACE ads:: DESTINATION lib/cmake/qtadvanceddocking ) install(FILES qtadvanceddockingConfig.cmake "${CMAKE_CURRENT_BINARY_DIR}/qtadvanceddockingConfigVersion.cmake" DESTINATION lib/cmake/qtadvanceddocking ) target_include_directories(qtadvanceddocking PUBLIC $ $ )