Build with Qt6
This commit is contained in:
		
							parent
							
								
									9f8b8c9731
								
							
						
					
					
						commit
						ae883df5b1
					
				
					 5 changed files with 30 additions and 11 deletions
				
			
		| 
						 | 
					@ -4,3 +4,4 @@
 | 
				
			||||||
include:
 | 
					include:
 | 
				
			||||||
  - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
 | 
					  - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
 | 
				
			||||||
  - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
 | 
					  - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
 | 
				
			||||||
 | 
					  - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,14 +10,12 @@ set(PROJECT_VERSION_MAJOR 5)
 | 
				
			||||||
set(CMAKE_C_STANDARD 99)
 | 
					set(CMAKE_C_STANDARD 99)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(QT_MIN_VERSION "5.15.0")
 | 
					set(QT_MIN_VERSION "5.15.0")
 | 
				
			||||||
set(KF5_MIN_VERSION "5.86")
 | 
					set(KF5_MIN_VERSION "5.91")
 | 
				
			||||||
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
 | 
					set(KDE_COMPILERSETTINGS_LEVEL "5.82")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(CMAKE_CXX_STANDARD 17)
 | 
					set(CMAKE_CXX_STANDARD 17)
 | 
				
			||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
					set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient Qml)
 | 
					 | 
				
			||||||
find_package(Qt5XkbCommonSupport REQUIRED PRIVATE)
 | 
					 | 
				
			||||||
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
 | 
					find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
 | 
				
			||||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
 | 
					set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,8 +30,12 @@ include(GenerateExportHeader)
 | 
				
			||||||
include(KDEClangFormat)
 | 
					include(KDEClangFormat)
 | 
				
			||||||
include(ECMQtDeclareLoggingCategory)
 | 
					include(ECMQtDeclareLoggingCategory)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_package(WaylandScanner)
 | 
					find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient Qml)
 | 
				
			||||||
 | 
					if (QT_MAJOR_VERSION EQUAL "5")
 | 
				
			||||||
 | 
					    find_package(Qt5XkbCommonSupport REQUIRED PRIVATE)
 | 
				
			||||||
    find_package(QtWaylandScanner)
 | 
					    find_package(QtWaylandScanner)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					find_package(WaylandScanner)
 | 
				
			||||||
find_package(Wayland 1.3 COMPONENTS Client Server)
 | 
					find_package(Wayland 1.3 COMPONENTS Client Server)
 | 
				
			||||||
find_package(WaylandProtocols)
 | 
					find_package(WaylandProtocols)
 | 
				
			||||||
find_package(PkgConfig REQUIRED)
 | 
					find_package(PkgConfig REQUIRED)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,6 @@
 | 
				
			||||||
@PACKAGE_INIT@
 | 
					@PACKAGE_INIT@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include(CMakeFindDependencyMacro)
 | 
					include(CMakeFindDependencyMacro)
 | 
				
			||||||
find_dependency(Qt5Gui "@QT_MIN_VERSION@")
 | 
					find_dependency(Qt@QT_MAJOR_VERSION@Gui "@QT_MIN_VERSION@")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include("${CMAKE_CURRENT_LIST_DIR}/LayerShellQtTargets.cmake")
 | 
					include("${CMAKE_CURRENT_LIST_DIR}/LayerShellQtTargets.cmake")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,8 +3,16 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)
 | 
					remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					add_library(LayerShellQtInterface)
 | 
				
			||||||
 | 
					if (QT_MAJOR_VERSION EQUAL "5")
 | 
				
			||||||
    ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL ${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml BASENAME xdg-shell)
 | 
					    ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL ${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml BASENAME xdg-shell)
 | 
				
			||||||
    ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL wlr-layer-shell-unstable-v1.xml BASENAME wlr-layer-shell-unstable-v1)
 | 
					    ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL wlr-layer-shell-unstable-v1.xml BASENAME wlr-layer-shell-unstable-v1)
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
					    qt6_generate_wayland_protocol_client_sources(LayerShellQtInterface FILES
 | 
				
			||||||
 | 
					        ${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml
 | 
				
			||||||
 | 
					        ${CMAKE_CURRENT_SOURCE_DIR}/wlr-layer-shell-unstable-v1.xml
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ecm_qt_declare_logging_category(LAYER_SHELL_SOURCES
 | 
					ecm_qt_declare_logging_category(LAYER_SHELL_SOURCES
 | 
				
			||||||
    HEADER
 | 
					    HEADER
 | 
				
			||||||
| 
						 | 
					@ -15,8 +23,11 @@ ecm_qt_declare_logging_category(LAYER_SHELL_SOURCES
 | 
				
			||||||
        layershellqt
 | 
					        layershellqt
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(LayerShellQtInterface SHARED qwaylandlayersurface.cpp interfaces/window.cpp interfaces/shell.cpp qwaylandlayershellintegration.cpp qwaylandlayershell.cpp ${LAYER_SHELL_SOURCES})
 | 
					target_sources(LayerShellQtInterface PRIVATE qwaylandlayersurface.cpp interfaces/window.cpp interfaces/shell.cpp qwaylandlayershellintegration.cpp qwaylandlayershell.cpp ${LAYER_SHELL_SOURCES})
 | 
				
			||||||
target_link_libraries(LayerShellQtInterface PRIVATE Qt::Gui Qt::WaylandClientPrivate Qt::XkbCommonSupportPrivate Wayland::Client PkgConfig::XKBCOMMON)
 | 
					target_link_libraries(LayerShellQtInterface PRIVATE Qt::Gui Qt::WaylandClientPrivate Wayland::Client PkgConfig::XKBCOMMON)
 | 
				
			||||||
 | 
					if (TARGET Qt::XkbCommonSupportPrivate)
 | 
				
			||||||
 | 
					    target_link_libraries(LayerShellQtInterface PRIVATE Qt::XkbCommonSupportPrivate)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
target_include_directories(LayerShellQtInterface PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/LayerShellQt>"
 | 
					target_include_directories(LayerShellQtInterface PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/LayerShellQt>"
 | 
				
			||||||
                                              INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/>"
 | 
					                                              INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/>"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					@ -27,7 +38,10 @@ set_target_properties(LayerShellQtInterface PROPERTIES VERSION   ${LAYERSHELLQT_
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(layer-shell SHARED qwaylandlayershellintegrationplugin.cpp)
 | 
					add_library(layer-shell SHARED qwaylandlayershellintegrationplugin.cpp)
 | 
				
			||||||
target_link_libraries(layer-shell LayerShellQtInterface Qt::WaylandClient Qt::WaylandClientPrivate Qt::XkbCommonSupportPrivate Wayland::Client PkgConfig::XKBCOMMON)
 | 
					target_link_libraries(layer-shell LayerShellQtInterface Qt::WaylandClient Qt::WaylandClientPrivate Wayland::Client PkgConfig::XKBCOMMON)
 | 
				
			||||||
 | 
					if (TARGET Qt::XkbCommonSupportPrivate)
 | 
				
			||||||
 | 
					    target_link_libraries(layer-shell Qt::XkbCommonSupportPrivate)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ecm_generate_headers(LayerShellQt_HEADERS
 | 
					ecm_generate_headers(LayerShellQt_HEADERS
 | 
				
			||||||
    HEADER_NAMES
 | 
					    HEADER_NAMES
 | 
				
			||||||
| 
						 | 
					@ -45,7 +59,7 @@ generate_export_header(LayerShellQtInterface
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(TARGETS layer-shell
 | 
					install(TARGETS layer-shell
 | 
				
			||||||
        LIBRARY DESTINATION ${QT_PLUGIN_INSTALL_DIR}/wayland-shell-integration)
 | 
					        LIBRARY DESTINATION ${KDE_INSTALL_QTPLUGINDIR}/wayland-shell-integration)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(TARGETS LayerShellQtInterface EXPORT LayerShellQtTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
 | 
					install(TARGETS LayerShellQtInterface EXPORT LayerShellQtTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,9 @@ QWaylandLayerShellIntegration::~QWaylandLayerShellIntegration()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool QWaylandLayerShellIntegration::initialize(QtWaylandClient::QWaylandDisplay *display)
 | 
					bool QWaylandLayerShellIntegration::initialize(QtWaylandClient::QWaylandDisplay *display)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
 | 
				
			||||||
    QWaylandShellIntegration::initialize(display);
 | 
					    QWaylandShellIntegration::initialize(display);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
    display->addRegistryListener(registryLayer, this);
 | 
					    display->addRegistryListener(registryLayer, this);
 | 
				
			||||||
    return m_layerShell != nullptr;
 | 
					    return m_layerShell != nullptr;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue