forked from quickshell/quickshell
		
	build: add build options for all components
This commit is contained in:
		
							parent
							
								
									d06b67107b
								
							
						
					
					
						commit
						bb5bc0547a
					
				
					 4 changed files with 34 additions and 9 deletions
				
			
		| 
						 | 
					@ -6,6 +6,15 @@ set(CMAKE_CXX_STANDARD 20)
 | 
				
			||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
					set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
option(WAYLAND "Enable wayland support" ON)
 | 
					option(WAYLAND "Enable wayland support" ON)
 | 
				
			||||||
 | 
					option(WAYLAND_WLR_LAYERSHELL "Support the zwlr_layer_shell_v1 wayland protocol" ON)
 | 
				
			||||||
 | 
					option(WAYLAND_SESSION_LOCK "Support the ext_session_lock_v1 wayland protocol" ON)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message(STATUS "Quickshell configuration")
 | 
				
			||||||
 | 
					message(STATUS "  Wayland: ${WAYLAND}")
 | 
				
			||||||
 | 
					if (WAYLAND)
 | 
				
			||||||
 | 
						message(STATUS "    Wlroots Layershell: ${WAYLAND_WLR_LAYERSHELL}")
 | 
				
			||||||
 | 
						message(STATUS "    Session Lock: ${WAYLAND_SESSION_LOCK}")
 | 
				
			||||||
 | 
					endif ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_compile_options(-Wall -Wextra)
 | 
					add_compile_options(-Wall -Wextra)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,4 +41,7 @@ find_package(Qt6 REQUIRED COMPONENTS ${QT_FPDEPS})
 | 
				
			||||||
qt_standard_project_setup(REQUIRES 6.6)
 | 
					qt_standard_project_setup(REQUIRES 6.6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(src/core)
 | 
					add_subdirectory(src/core)
 | 
				
			||||||
add_subdirectory(src/wayland)
 | 
					
 | 
				
			||||||
 | 
					if (WAYLAND)
 | 
				
			||||||
 | 
						add_subdirectory(src/wayland)
 | 
				
			||||||
 | 
					endif ()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,3 +18,5 @@ qt_add_executable(quickshell
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
qt_add_qml_module(quickshell URI Quickshell)
 | 
					qt_add_qml_module(quickshell URI Quickshell)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					target_link_libraries(quickshell PRIVATE ${QT_DEPS})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,19 +44,25 @@ endfunction()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# -----
 | 
					# -----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
qt_add_library(quickshell-wayland STATIC
 | 
					qt_add_library(quickshell-wayland STATIC)
 | 
				
			||||||
	wlr_layershell.cpp
 | 
					 | 
				
			||||||
	session_lock.cpp
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
qt_add_qml_module(quickshell-wayland URI Quickshell.Wayland)
 | 
					qt_add_qml_module(quickshell-wayland URI Quickshell.Wayland)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# required to make sure the constructor is linked
 | 
					# required to make sure the constructor is linked
 | 
				
			||||||
add_library(quickshell-wayland-init OBJECT init.cpp)
 | 
					add_library(quickshell-wayland-init OBJECT init.cpp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(wlr_layershell)
 | 
					if (WAYLAND_WLR_LAYERSHELL)
 | 
				
			||||||
add_subdirectory(session_lock)
 | 
						target_sources(quickshell-wayland PRIVATE wlr_layershell.cpp)
 | 
				
			||||||
 | 
						add_subdirectory(wlr_layershell)
 | 
				
			||||||
 | 
						target_compile_definitions(quickshell-wayland PRIVATE QS_WAYLAND_WLR_LAYERSHELL)
 | 
				
			||||||
 | 
						target_compile_definitions(quickshell-wayland-init PRIVATE QS_WAYLAND_WLR_LAYERSHELL)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (WAYLAND_SESSION_LOCK)
 | 
				
			||||||
 | 
						target_sources(quickshell-wayland PRIVATE session_lock.cpp)
 | 
				
			||||||
 | 
						add_subdirectory(session_lock)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target_link_libraries(quickshell-wayland PRIVATE ${QT_DEPS})
 | 
					target_link_libraries(quickshell-wayland PRIVATE ${QT_DEPS})
 | 
				
			||||||
target_link_libraries(quickshell-wayland-init PRIVATE ${QT_DEPS})
 | 
					target_link_libraries(quickshell-wayland-init PRIVATE ${QT_DEPS})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target_link_libraries(quickshell PRIVATE ${QT_DEPS} quickshell-waylandplugin quickshell-wayland-init)
 | 
					target_link_libraries(quickshell PRIVATE quickshell-waylandplugin quickshell-wayland-init)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,10 @@
 | 
				
			||||||
#include <qqml.h>
 | 
					#include <qqml.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../core/plugin.hpp"
 | 
					#include "../core/plugin.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef QS_WAYLAND_WLR_LAYERSHELL
 | 
				
			||||||
#include "wlr_layershell.hpp"
 | 
					#include "wlr_layershell.hpp"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace {
 | 
					namespace {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +13,7 @@ class WaylandPlugin: public QuickshellPlugin {
 | 
				
			||||||
	bool applies() override { return QGuiApplication::platformName() == "wayland"; }
 | 
						bool applies() override { return QGuiApplication::platformName() == "wayland"; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void registerTypes() override {
 | 
						void registerTypes() override {
 | 
				
			||||||
 | 
					#ifdef QS_WAYLAND_WLR_LAYERSHELL
 | 
				
			||||||
		qmlRegisterType<WaylandPanelInterface>("Quickshell._WaylandOverlay", 1, 0, "PanelWindow");
 | 
							qmlRegisterType<WaylandPanelInterface>("Quickshell._WaylandOverlay", 1, 0, "PanelWindow");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// If any types are defined inside a module using QML_ELEMENT then all QML_ELEMENT types
 | 
							// If any types are defined inside a module using QML_ELEMENT then all QML_ELEMENT types
 | 
				
			||||||
| 
						 | 
					@ -29,6 +33,7 @@ class WaylandPlugin: public QuickshellPlugin {
 | 
				
			||||||
		    "Quickshell._WaylandOverlay",
 | 
							    "Quickshell._WaylandOverlay",
 | 
				
			||||||
		    QQmlModuleImportLatest
 | 
							    QQmlModuleImportLatest
 | 
				
			||||||
		);
 | 
							);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue