2022-10-27 17:01:10 +00:00
|
|
|
cmake_minimum_required(VERSION 3.16.3)
|
2022-09-28 21:49:30 +00:00
|
|
|
|
2022-09-29 14:54:18 +00:00
|
|
|
project(qskinny VERSION 999.99.9) # TODO get from git branch name or
|
2022-09-28 21:49:30 +00:00
|
|
|
|
|
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
2022-10-27 17:01:10 +00:00
|
|
|
if("${Qt5_DIR}" STREQUAL "" AND "${Qt6_DIR}" STREQUAL "")
|
|
|
|
message(FATAL_ERROR "Neither Qt5_DIR nor Qt6_DIR defined!")
|
|
|
|
else()
|
|
|
|
# force include Qt's private headers
|
|
|
|
if(NOT "${Qt5_DIR}" STREQUAL "")
|
|
|
|
set(Qt5Core_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5Gui_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5OpenGL_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5Quick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5QuickWidgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5Svg_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5WebEngine_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5WebEngineCore_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt5Widgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
elseif(NOT "${Qt6_DIR}" STREQUAL "")
|
|
|
|
#set(Qt6Core_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
#set(Qt6Gui_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt6OpenGL_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
#set(Qt6Quick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
#set(Qt6QuickWidgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
#set(Qt6Svg_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt6WebEngine_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt6WebEngineCore_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
set(Qt6WebEngineQuick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
#set(Qt6Widgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
|
|
|
|
endif()
|
|
|
|
endif()
|
2022-09-28 21:49:30 +00:00
|
|
|
|
2022-10-27 17:01:10 +00:00
|
|
|
if("${Qt5_DIR}" STREQUAL "" AND "${Qt6_DIR}" STREQUAL "")
|
|
|
|
message(FATAL_ERROR "Neither Qt5_DIR nor Qt6_DIR defined!")
|
|
|
|
else()
|
2022-10-28 11:32:18 +00:00
|
|
|
# TODO ckeck find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
2022-10-27 17:01:10 +00:00
|
|
|
if(NOT "${Qt5_DIR}" STREQUAL "")
|
2022-10-30 16:17:23 +00:00
|
|
|
find_package(Qt5 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Webengine WebengineCore Widgets)
|
2022-10-27 17:01:10 +00:00
|
|
|
set(Qt Qt${Qt5_VERSION_MAJOR}) # TODO find better solution for Qt namespace
|
|
|
|
set(Qt_VERSION ${Qt5_VERSION})
|
|
|
|
set(Qt_VERSION_MAJOR ${Qt5_VERSION_MAJOR})
|
|
|
|
set(Qt_VERSION_MINOR ${Qt5_VERSION_MINOR})
|
|
|
|
set(Qt_VERSION_PATCH ${Qt5_VERSION_PATCH})
|
|
|
|
elseif(NOT "${Qt6_DIR}" STREQUAL "")
|
2022-10-30 16:17:23 +00:00
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg WebEngineCore WebEngineQuick Widgets)
|
2022-10-27 17:01:10 +00:00
|
|
|
set(Qt Qt${Qt6_VERSION_MAJOR}) # TODO find better solution for Qt namespace
|
|
|
|
set(Qt_VERSION ${Qt6_VERSION})
|
|
|
|
set(Qt_VERSION_MAJOR ${Qt6_VERSION_MAJOR})
|
|
|
|
set(Qt_VERSION_MINOR ${Qt6_VERSION_MINOR})
|
|
|
|
set(Qt_VERSION_PATCH ${Qt6_VERSION_PATCH})
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(TRUE)
|
|
|
|
message(STATUS "\${Qt} : ${Qt}")
|
|
|
|
message(STATUS "\${Qt_VERSION_MAJOR}: ${Qt_VERSION_MAJOR}")
|
|
|
|
message(STATUS "\${Qt_VERSION_MINOR}: ${Qt_VERSION_MINOR}")
|
|
|
|
message(STATUS "\${Qt_VERSION_PATCH}: ${Qt_VERSION_PATCH}")
|
|
|
|
endif()
|
2022-09-28 21:49:30 +00:00
|
|
|
|
2022-09-29 17:05:14 +00:00
|
|
|
# define install directories
|
2022-10-27 17:01:10 +00:00
|
|
|
|
2022-09-29 17:05:14 +00:00
|
|
|
set(QSK_INSTALL_DOCS doc)
|
|
|
|
set(QSK_INSTALL_HEADERS include)
|
|
|
|
set(QSK_INSTALL_LIBS lib)
|
|
|
|
set(QSK_INSTALL_BINS bin)
|
|
|
|
set(QSK_INSTALL_PLUGINS plugins)
|
|
|
|
set(QSK_INSTALL_EXAMPLES examples)
|
2022-09-28 21:49:30 +00:00
|
|
|
|
|
|
|
add_subdirectory(src)
|
|
|
|
add_subdirectory(skins)
|
2022-09-28 22:06:44 +00:00
|
|
|
add_subdirectory(inputcontext)
|
2022-09-28 21:49:30 +00:00
|
|
|
add_subdirectory(qmlexport)
|
|
|
|
add_subdirectory(tools)
|
|
|
|
add_subdirectory(support)
|
|
|
|
add_subdirectory(examples)
|
2022-09-28 22:21:22 +00:00
|
|
|
add_subdirectory(playground)
|
2022-09-28 21:49:30 +00:00
|
|
|
|
2022-09-29 20:31:47 +00:00
|
|
|
#TODO add doxygen support
|
2022-09-28 21:49:30 +00:00
|
|
|
#OTHER_FILES =
|
|
|
|
#doc / Doxyfile
|
|
|
|
#doc/*.dox
|
|
|
|
# doc/*.metadox
|
|
|
|
# doc/classes/*.dox
|
2022-10-28 11:32:18 +00:00
|
|
|
# doc/classes/*.metadox
|