mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2025-01-26 14:29:02 +08:00
112 lines
3.1 KiB
CMake
112 lines
3.1 KiB
CMake
cmake_minimum_required(VERSION 3.5)
|
|
project(QtAdvancedDockingSystem LANGUAGES CXX VERSION ${VERSION_SHORT})
|
|
find_package(Qt5 5.5 COMPONENTS Core Gui Widgets REQUIRED)
|
|
if (UNIX)
|
|
find_package(Qt5 5.5 COMPONENTS X11Extras REQUIRED)
|
|
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
|
|
)
|
|
if (UNIX)
|
|
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 Qt5::Core Qt5::Gui Qt5::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
|
|
$<INSTALL_INTERFACE:include>
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
)
|