summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Applets/Audio/CMakeLists.txt6
-rw-r--r--Userland/Applets/ClipboardHistory/CMakeLists.txt6
-rw-r--r--Userland/Applets/Network/CMakeLists.txt6
-rw-r--r--Userland/Applets/ResourceGraph/CMakeLists.txt6
-rw-r--r--Userland/Applications/3DFileViewer/CMakeLists.txt6
-rw-r--r--Userland/Applications/About/CMakeLists.txt6
-rw-r--r--Userland/Applications/AnalogClock/CMakeLists.txt6
-rw-r--r--Userland/Applications/Browser/CMakeLists.txt7
-rw-r--r--Userland/Applications/Calculator/CMakeLists.txt6
-rw-r--r--Userland/Applications/Calendar/CMakeLists.txt5
-rw-r--r--Userland/Applications/CrashReporter/CMakeLists.txt6
-rw-r--r--Userland/Applications/Debugger/CMakeLists.txt5
-rw-r--r--Userland/Applications/DisplaySettings/CMakeLists.txt6
-rw-r--r--Userland/Applications/FileManager/CMakeLists.txt7
-rw-r--r--Userland/Applications/FontEditor/CMakeLists.txt6
-rw-r--r--Userland/Applications/Help/CMakeLists.txt6
-rw-r--r--Userland/Applications/HexEditor/CMakeLists.txt6
-rw-r--r--Userland/Applications/IRCClient/CMakeLists.txt5
-rw-r--r--Userland/Applications/ImageViewer/CMakeLists.txt7
-rw-r--r--Userland/Applications/KeyboardMapper/CMakeLists.txt6
-rw-r--r--Userland/Applications/KeyboardSettings/CMakeLists.txt6
-rw-r--r--Userland/Applications/Magnifier/CMakeLists.txt6
-rw-r--r--Userland/Applications/MouseSettings/CMakeLists.txt6
-rw-r--r--Userland/Applications/PDFViewer/CMakeLists.txt5
-rw-r--r--Userland/Applications/Piano/CMakeLists.txt7
-rw-r--r--Userland/Applications/PixelPaint/CMakeLists.txt7
-rw-r--r--Userland/Applications/Run/CMakeLists.txt6
-rw-r--r--Userland/Applications/SoundPlayer/CMakeLists.txt7
-rw-r--r--Userland/Applications/SpaceAnalyzer/CMakeLists.txt5
-rw-r--r--Userland/Applications/Spreadsheet/CMakeLists.txt5
-rw-r--r--Userland/Applications/SystemMonitor/CMakeLists.txt6
-rw-r--r--Userland/Applications/Terminal/CMakeLists.txt6
-rw-r--r--Userland/Applications/TextEditor/CMakeLists.txt7
-rw-r--r--Userland/Applications/ThemeEditor/CMakeLists.txt5
-rw-r--r--Userland/Applications/VideoPlayer/CMakeLists.txt6
-rw-r--r--Userland/Applications/Welcome/CMakeLists.txt5
-rw-r--r--Userland/Demos/CatDog/CMakeLists.txt6
-rw-r--r--Userland/Demos/Cube/CMakeLists.txt5
-rw-r--r--Userland/Demos/Eyes/CMakeLists.txt5
-rw-r--r--Userland/Demos/Fire/CMakeLists.txt5
-rw-r--r--Userland/Demos/LibGfxDemo/CMakeLists.txt5
-rw-r--r--Userland/Demos/LibGfxScaleDemo/CMakeLists.txt5
-rw-r--r--Userland/Demos/Mandelbrot/CMakeLists.txt5
-rw-r--r--Userland/Demos/Mouse/CMakeLists.txt5
-rw-r--r--Userland/Demos/Screensaver/CMakeLists.txt5
-rw-r--r--Userland/Demos/Starfield/CMakeLists.txt5
-rw-r--r--Userland/Demos/WidgetGallery/CMakeLists.txt5
-rw-r--r--Userland/DevTools/HackStudio/CMakeLists.txt7
-rw-r--r--Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt5
-rw-r--r--Userland/DevTools/HackStudio/LanguageServers/Shell/CMakeLists.txt5
-rw-r--r--Userland/DevTools/Inspector/CMakeLists.txt6
-rw-r--r--Userland/DevTools/Playground/CMakeLists.txt6
-rw-r--r--Userland/DevTools/Profiler/CMakeLists.txt6
-rw-r--r--Userland/DevTools/UserspaceEmulator/CMakeLists.txt6
-rw-r--r--Userland/Games/2048/CMakeLists.txt6
-rw-r--r--Userland/Games/Breakout/CMakeLists.txt6
-rw-r--r--Userland/Games/Chess/CMakeLists.txt7
-rw-r--r--Userland/Games/GameOfLife/CMakeLists.txt6
-rw-r--r--Userland/Games/Hearts/CMakeLists.txt7
-rw-r--r--Userland/Games/Minesweeper/CMakeLists.txt6
-rw-r--r--Userland/Games/Pong/CMakeLists.txt6
-rw-r--r--Userland/Games/Snake/CMakeLists.txt6
-rw-r--r--Userland/Games/Solitaire/CMakeLists.txt6
-rw-r--r--Userland/Services/AudioServer/CMakeLists.txt6
-rw-r--r--Userland/Services/ChessEngine/CMakeLists.txt5
-rw-r--r--Userland/Services/Clipboard/CMakeLists.txt6
-rw-r--r--Userland/Services/CrashDaemon/CMakeLists.txt6
-rw-r--r--Userland/Services/DHCPClient/CMakeLists.txt6
-rw-r--r--Userland/Services/EchoServer/CMakeLists.txt5
-rw-r--r--Userland/Services/FileOperation/CMakeLists.txt5
-rw-r--r--Userland/Services/ImageDecoder/CMakeLists.txt5
-rw-r--r--Userland/Services/InspectorServer/CMakeLists.txt6
-rw-r--r--Userland/Services/KeyboardPreferenceLoader/CMakeLists.txt6
-rw-r--r--Userland/Services/LaunchServer/CMakeLists.txt6
-rw-r--r--Userland/Services/LookupServer/CMakeLists.txt6
-rw-r--r--Userland/Services/NotificationServer/CMakeLists.txt6
-rw-r--r--Userland/Services/RequestServer/CMakeLists.txt5
-rw-r--r--Userland/Services/SystemServer/CMakeLists.txt6
-rw-r--r--Userland/Services/Taskbar/CMakeLists.txt6
-rw-r--r--Userland/Services/TelnetServer/CMakeLists.txt5
-rw-r--r--Userland/Services/WebContent/CMakeLists.txt5
-rw-r--r--Userland/Services/WebServer/CMakeLists.txt5
-rw-r--r--Userland/Services/WebSocket/CMakeLists.txt5
-rw-r--r--Userland/Services/WindowServer/CMakeLists.txt6
-rw-r--r--Userland/Shell/CMakeLists.txt6
-rw-r--r--Userland/Utilities/CMakeLists.txt46
86 files changed, 532 insertions, 5 deletions
diff --git a/Userland/Applets/Audio/CMakeLists.txt b/Userland/Applets/Audio/CMakeLists.txt
index fb83e95fd2..17375eff62 100644
--- a/Userland/Applets/Audio/CMakeLists.txt
+++ b/Userland/Applets/Audio/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Audio.Applet
+ REQUIRED
+ TARGETS Audio.Applet
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applets/ClipboardHistory/CMakeLists.txt b/Userland/Applets/ClipboardHistory/CMakeLists.txt
index 23948bf178..565d003c3c 100644
--- a/Userland/Applets/ClipboardHistory/CMakeLists.txt
+++ b/Userland/Applets/ClipboardHistory/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ ClipboardHistory.Applet
+ REQUIRED
+ TARGETS ClipboardHistory.Applet
+)
+
set(SOURCES
ClipboardHistoryModel.cpp
main.cpp
diff --git a/Userland/Applets/Network/CMakeLists.txt b/Userland/Applets/Network/CMakeLists.txt
index 35a825317d..e0471f05a8 100644
--- a/Userland/Applets/Network/CMakeLists.txt
+++ b/Userland/Applets/Network/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Network.Applet
+ REQUIRED
+ TARGETS Network.Applet
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applets/ResourceGraph/CMakeLists.txt b/Userland/Applets/ResourceGraph/CMakeLists.txt
index e13d6c8560..6b77f6c439 100644
--- a/Userland/Applets/ResourceGraph/CMakeLists.txt
+++ b/Userland/Applets/ResourceGraph/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ ResourceGraph.Applet
+ REQUIRED
+ TARGETS ResourceGraph.Applet
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applications/3DFileViewer/CMakeLists.txt b/Userland/Applications/3DFileViewer/CMakeLists.txt
index a5aca6e9c1..88abb914d6 100644
--- a/Userland/Applications/3DFileViewer/CMakeLists.txt
+++ b/Userland/Applications/3DFileViewer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ 3DFileViewer
+ RECOMMENDED
+ TARGETS 3DFileViewer
+)
+
set(SOURCES
Mesh.cpp
WavefrontOBJLoader.cpp
diff --git a/Userland/Applications/About/CMakeLists.txt b/Userland/Applications/About/CMakeLists.txt
index 0b3023c819..eac81f96d1 100644
--- a/Userland/Applications/About/CMakeLists.txt
+++ b/Userland/Applications/About/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ About
+ REQUIRED
+ TARGETS About
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applications/AnalogClock/CMakeLists.txt b/Userland/Applications/AnalogClock/CMakeLists.txt
index 1597a97484..a3ab6b2abe 100644
--- a/Userland/Applications/AnalogClock/CMakeLists.txt
+++ b/Userland/Applications/AnalogClock/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ AnalogClock
+ RECOMMENDED
+ TARGETS AnalogClock
+)
+
set(SOURCES
main.cpp
AnalogClock.cpp
diff --git a/Userland/Applications/Browser/CMakeLists.txt b/Userland/Applications/Browser/CMakeLists.txt
index 9622e719b0..e37ceeb885 100644
--- a/Userland/Applications/Browser/CMakeLists.txt
+++ b/Userland/Applications/Browser/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ Browser
+ RECOMMENDED
+ TARGETS Browser
+ DEPENDS ImageDecoder RequestServer WebContent WebSocket
+)
+
compile_gml(BrowserWindow.gml BrowserWindowGML.h browser_window_gml)
compile_gml(EditBookmark.gml EditBookmarkGML.h edit_bookmark_gml)
compile_gml(Tab.gml TabGML.h tab_gml)
diff --git a/Userland/Applications/Calculator/CMakeLists.txt b/Userland/Applications/Calculator/CMakeLists.txt
index d72624c308..966e163910 100644
--- a/Userland/Applications/Calculator/CMakeLists.txt
+++ b/Userland/Applications/Calculator/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Calculator
+ RECOMMENDED
+ TARGETS Calculator
+)
+
compile_gml(CalculatorWindow.gml CalculatorGML.h calculator_gml)
set(SOURCES
main.cpp
diff --git a/Userland/Applications/Calendar/CMakeLists.txt b/Userland/Applications/Calendar/CMakeLists.txt
index fc0628fec4..256383fa55 100644
--- a/Userland/Applications/Calendar/CMakeLists.txt
+++ b/Userland/Applications/Calendar/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Calendar
+ TARGETS Calendar
+)
+
compile_gml(CalendarWindow.gml CalendarWindowGML.h calendar_window_gml)
set(SOURCES
diff --git a/Userland/Applications/CrashReporter/CMakeLists.txt b/Userland/Applications/CrashReporter/CMakeLists.txt
index d391aa6b84..e89bce6d9a 100644
--- a/Userland/Applications/CrashReporter/CMakeLists.txt
+++ b/Userland/Applications/CrashReporter/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ CrashReporter
+ REQUIRED
+ TARGETS CrashReporter
+)
+
compile_gml(CrashReporterWindow.gml CrashReporterWindowGML.h crash_reporter_window_gml)
diff --git a/Userland/Applications/Debugger/CMakeLists.txt b/Userland/Applications/Debugger/CMakeLists.txt
index 7e6f200ea4..2548c51ebe 100644
--- a/Userland/Applications/Debugger/CMakeLists.txt
+++ b/Userland/Applications/Debugger/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Debugger
+ TARGETS Debugger
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applications/DisplaySettings/CMakeLists.txt b/Userland/Applications/DisplaySettings/CMakeLists.txt
index f794ebcce2..3dae443673 100644
--- a/Userland/Applications/DisplaySettings/CMakeLists.txt
+++ b/Userland/Applications/DisplaySettings/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ DisplaySettings
+ REQUIRED
+ TARGETS DisplaySettings
+)
+
compile_gml(MonitorSettings.gml MonitorSettingsGML.h monitor_settings_window_gml)
compile_gml(BackgroundSettings.gml BackgroundSettingsGML.h background_settings_gml)
compile_gml(FontSettings.gml FontSettingsGML.h font_settings_gml)
diff --git a/Userland/Applications/FileManager/CMakeLists.txt b/Userland/Applications/FileManager/CMakeLists.txt
index 2ee5c116ba..b31ef527a7 100644
--- a/Userland/Applications/FileManager/CMakeLists.txt
+++ b/Userland/Applications/FileManager/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ FileManager
+ REQUIRED
+ TARGETS FileManager
+ DEPENDS FileOperation
+)
+
compile_gml(FileManagerWindow.gml FileManagerWindowGML.h file_manager_window_gml)
compile_gml(FileOperationProgress.gml FileOperationProgressGML.h file_operation_progress_gml)
diff --git a/Userland/Applications/FontEditor/CMakeLists.txt b/Userland/Applications/FontEditor/CMakeLists.txt
index 69f67b12ab..37422c4a81 100644
--- a/Userland/Applications/FontEditor/CMakeLists.txt
+++ b/Userland/Applications/FontEditor/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ FontEditor
+ RECOMMENDED
+ TARGETS FontEditor
+)
+
include_directories(${CMAKE_CURRENT_BINARY_DIR})
compile_gml(FontEditorWindow.gml FontEditorWindowGML.h font_editor_window_gml)
compile_gml(NewFontDialogPage1.gml NewFontDialogPage1GML.h new_font_dialog_page_1_gml)
diff --git a/Userland/Applications/Help/CMakeLists.txt b/Userland/Applications/Help/CMakeLists.txt
index 46a832c044..c804dda3f8 100644
--- a/Userland/Applications/Help/CMakeLists.txt
+++ b/Userland/Applications/Help/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Help
+ RECOMMENDED
+ TARGETS Help
+)
+
set(SOURCES
History.cpp
main.cpp
diff --git a/Userland/Applications/HexEditor/CMakeLists.txt b/Userland/Applications/HexEditor/CMakeLists.txt
index cfc4cd3cfa..18bad55a26 100644
--- a/Userland/Applications/HexEditor/CMakeLists.txt
+++ b/Userland/Applications/HexEditor/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ HexEditor
+ RECOMMENDED
+ TARGETS HexEditor
+)
+
compile_gml(HexEditorWindow.gml HexEditorWindowGML.h hex_editor_window_gml)
compile_gml(GoToOffsetDialog.gml GoToOffsetDialogGML.h go_to_offset_dialog_gml)
compile_gml(FindDialog.gml FindDialogGML.h find_dialog_gml)
diff --git a/Userland/Applications/IRCClient/CMakeLists.txt b/Userland/Applications/IRCClient/CMakeLists.txt
index 3926bbd5dc..73dd4534ae 100644
--- a/Userland/Applications/IRCClient/CMakeLists.txt
+++ b/Userland/Applications/IRCClient/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ IRCClient
+ TARGETS IRCClient
+)
+
set(SOURCES
IRCAppWindow.cpp
IRCChannel.cpp
diff --git a/Userland/Applications/ImageViewer/CMakeLists.txt b/Userland/Applications/ImageViewer/CMakeLists.txt
index d1ee14ff7a..b4909f1ec5 100644
--- a/Userland/Applications/ImageViewer/CMakeLists.txt
+++ b/Userland/Applications/ImageViewer/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ ImageViewer
+ RECOMMENDED
+ TARGETS ImageViewer
+ DEPENDS ImageDecoder
+)
+
set(SOURCES
main.cpp
ViewWidget.cpp
diff --git a/Userland/Applications/KeyboardMapper/CMakeLists.txt b/Userland/Applications/KeyboardMapper/CMakeLists.txt
index af814c44b2..79b69ef815 100644
--- a/Userland/Applications/KeyboardMapper/CMakeLists.txt
+++ b/Userland/Applications/KeyboardMapper/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ KeyboardMapper
+ RECOMMENDED
+ TARGETS KeyboardMapper
+)
+
set(SOURCES
KeyboardMapperWidget.cpp
KeyButton.cpp
diff --git a/Userland/Applications/KeyboardSettings/CMakeLists.txt b/Userland/Applications/KeyboardSettings/CMakeLists.txt
index 62212cda36..d0a2448329 100644
--- a/Userland/Applications/KeyboardSettings/CMakeLists.txt
+++ b/Userland/Applications/KeyboardSettings/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ KeyboardSettings
+ REQUIRED
+ TARGETS KeyboardSettings
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applications/Magnifier/CMakeLists.txt b/Userland/Applications/Magnifier/CMakeLists.txt
index 0979947268..0099d771d9 100644
--- a/Userland/Applications/Magnifier/CMakeLists.txt
+++ b/Userland/Applications/Magnifier/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Magnifier
+ RECOMMENDED
+ TARGETS Magnifier
+)
+
set(SOURCES
MagnifierWidget.cpp
MagnifierWidget.h
diff --git a/Userland/Applications/MouseSettings/CMakeLists.txt b/Userland/Applications/MouseSettings/CMakeLists.txt
index 297d264054..398946ae38 100644
--- a/Userland/Applications/MouseSettings/CMakeLists.txt
+++ b/Userland/Applications/MouseSettings/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ MouseSettings
+ REQUIRED
+ TARGETS MouseSettings
+)
+
compile_gml(MouseSettingsWindow.gml MouseSettingsWindowGML.h mouse_settings_window_gml)
set(SOURCES
diff --git a/Userland/Applications/PDFViewer/CMakeLists.txt b/Userland/Applications/PDFViewer/CMakeLists.txt
index 44bed3e5b2..57f89c5259 100644
--- a/Userland/Applications/PDFViewer/CMakeLists.txt
+++ b/Userland/Applications/PDFViewer/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ PDFViewer
+ TARGETS PDFViewer
+)
+
set(SOURCES
NumericInput.cpp
OutlineModel.cpp
diff --git a/Userland/Applications/Piano/CMakeLists.txt b/Userland/Applications/Piano/CMakeLists.txt
index 382e023c3b..83232f89fb 100644
--- a/Userland/Applications/Piano/CMakeLists.txt
+++ b/Userland/Applications/Piano/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ Piano
+ RECOMMENDED
+ TARGETS Piano
+ DEPENDS AudioServer
+)
+
set(SOURCES
Track.cpp
TrackManager.cpp
diff --git a/Userland/Applications/PixelPaint/CMakeLists.txt b/Userland/Applications/PixelPaint/CMakeLists.txt
index d18d3c47bc..5fba876951 100644
--- a/Userland/Applications/PixelPaint/CMakeLists.txt
+++ b/Userland/Applications/PixelPaint/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ PixelPaint
+ RECOMMENDED
+ TARGETS PixelPaint
+ DEPENDS ImageDecoder
+)
+
compile_gml(PixelPaintWindow.gml PixelPaintWindowGML.h pixel_paint_window_gml)
set(SOURCES
diff --git a/Userland/Applications/Run/CMakeLists.txt b/Userland/Applications/Run/CMakeLists.txt
index 4513f91890..1a4f65d4f5 100644
--- a/Userland/Applications/Run/CMakeLists.txt
+++ b/Userland/Applications/Run/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Run
+ REQUIRED
+ TARGETS Run
+)
+
compile_gml(Run.gml RunGML.h run_gml)
set(SOURCES
diff --git a/Userland/Applications/SoundPlayer/CMakeLists.txt b/Userland/Applications/SoundPlayer/CMakeLists.txt
index f0870bde57..9fe6266b34 100644
--- a/Userland/Applications/SoundPlayer/CMakeLists.txt
+++ b/Userland/Applications/SoundPlayer/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ SoundPlayer
+ RECOMMENDED
+ TARGETS SoundPlayer
+ DEPENDS AudioServer
+)
+
set(SOURCES
main.cpp
PlaybackManager.cpp
diff --git a/Userland/Applications/SpaceAnalyzer/CMakeLists.txt b/Userland/Applications/SpaceAnalyzer/CMakeLists.txt
index 2b1762aaa3..7b99dff2a8 100644
--- a/Userland/Applications/SpaceAnalyzer/CMakeLists.txt
+++ b/Userland/Applications/SpaceAnalyzer/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ SpaceAnalyzer
+ TARGETS SpaceAnalyzer
+)
+
compile_gml(SpaceAnalyzer.gml SpaceAnalyzerGML.h space_analyzer_gml)
set(SOURCES
diff --git a/Userland/Applications/Spreadsheet/CMakeLists.txt b/Userland/Applications/Spreadsheet/CMakeLists.txt
index 50f0225d95..0f0eeec27d 100644
--- a/Userland/Applications/Spreadsheet/CMakeLists.txt
+++ b/Userland/Applications/Spreadsheet/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Spreadsheet
+ TARGETS Spreadsheet
+)
+
compile_gml(CondFormatting.gml CondFormattingGML.h cond_fmt_gml)
compile_gml(CondView.gml CondFormattingViewGML.h cond_fmt_view_gml)
compile_gml(csv_import.gml CSVImportGML.h csv_import_gml)
diff --git a/Userland/Applications/SystemMonitor/CMakeLists.txt b/Userland/Applications/SystemMonitor/CMakeLists.txt
index f7db8a61ae..12058c1fa7 100644
--- a/Userland/Applications/SystemMonitor/CMakeLists.txt
+++ b/Userland/Applications/SystemMonitor/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ SystemMonitor
+ REQUIRED
+ TARGETS SystemMonitor Profiler Inspector
+)
+
set(SOURCES
DevicesModel.cpp
GraphWidget.cpp
diff --git a/Userland/Applications/Terminal/CMakeLists.txt b/Userland/Applications/Terminal/CMakeLists.txt
index 1fb969546e..dc274cce98 100644
--- a/Userland/Applications/Terminal/CMakeLists.txt
+++ b/Userland/Applications/Terminal/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Terminal
+ REQUIRED
+ TARGETS Terminal utmpupdate
+)
+
compile_gml(TerminalSettingsWindow.gml TerminalSettingsWindowGML.h terminal_settings_window_gml)
set(SOURCES
diff --git a/Userland/Applications/TextEditor/CMakeLists.txt b/Userland/Applications/TextEditor/CMakeLists.txt
index 25a0dd3fb8..b68b8b5b15 100644
--- a/Userland/Applications/TextEditor/CMakeLists.txt
+++ b/Userland/Applications/TextEditor/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ TextEditor
+ RECOMMENDED
+ TARGETS TextEditor
+ DEPENDS ImageDecoder RequestServer WebContent
+)
+
compile_gml(TextEditorWindow.gml TextEditorWindowGML.h text_editor_window_gml)
set(SOURCES
diff --git a/Userland/Applications/ThemeEditor/CMakeLists.txt b/Userland/Applications/ThemeEditor/CMakeLists.txt
index 94ca0e1f3e..bb5a32087f 100644
--- a/Userland/Applications/ThemeEditor/CMakeLists.txt
+++ b/Userland/Applications/ThemeEditor/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ ThemeEditor
+ TARGETS ThemeEditor
+)
+
set(SOURCES
PreviewWidget.cpp
main.cpp
diff --git a/Userland/Applications/VideoPlayer/CMakeLists.txt b/Userland/Applications/VideoPlayer/CMakeLists.txt
index f9f1a7422f..c6f46a7bab 100644
--- a/Userland/Applications/VideoPlayer/CMakeLists.txt
+++ b/Userland/Applications/VideoPlayer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ VideoPlayer
+ TARGETS VideoPlayer
+ DEPENDS AudioServer
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Applications/Welcome/CMakeLists.txt b/Userland/Applications/Welcome/CMakeLists.txt
index 8adb2729bf..2b3b8e940a 100644
--- a/Userland/Applications/Welcome/CMakeLists.txt
+++ b/Userland/Applications/Welcome/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Welcome
+ TARGETS Welcome
+)
+
compile_gml(WelcomeWindow.gml WelcomeWindowGML.h welcome_window_gml)
set(SOURCES
diff --git a/Userland/Demos/CatDog/CMakeLists.txt b/Userland/Demos/CatDog/CMakeLists.txt
index ca3e8f6e92..5c873bde17 100644
--- a/Userland/Demos/CatDog/CMakeLists.txt
+++ b/Userland/Demos/CatDog/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ CatDog
+ RECOMMENDED
+ TARGETS CatDog
+)
+
set(SOURCES
CatDog.cpp
SpeechBubble.cpp
diff --git a/Userland/Demos/Cube/CMakeLists.txt b/Userland/Demos/Cube/CMakeLists.txt
index ee06d91d3f..24e81b2556 100644
--- a/Userland/Demos/Cube/CMakeLists.txt
+++ b/Userland/Demos/Cube/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Cube
+ TARGETS Cube
+)
+
set(SOURCES
Cube.cpp
)
diff --git a/Userland/Demos/Eyes/CMakeLists.txt b/Userland/Demos/Eyes/CMakeLists.txt
index aa0e948d6a..2431a7dcc6 100644
--- a/Userland/Demos/Eyes/CMakeLists.txt
+++ b/Userland/Demos/Eyes/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Eyes
+ TARGETS Eyes
+)
+
set(SOURCES
main.cpp
EyesWidget.cpp
diff --git a/Userland/Demos/Fire/CMakeLists.txt b/Userland/Demos/Fire/CMakeLists.txt
index 10342de600..31e7aaf90f 100644
--- a/Userland/Demos/Fire/CMakeLists.txt
+++ b/Userland/Demos/Fire/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Fire
+ TARGETS Fire
+)
+
set(SOURCES
Fire.cpp
)
diff --git a/Userland/Demos/LibGfxDemo/CMakeLists.txt b/Userland/Demos/LibGfxDemo/CMakeLists.txt
index 5f2d4bca8f..38307046ba 100644
--- a/Userland/Demos/LibGfxDemo/CMakeLists.txt
+++ b/Userland/Demos/LibGfxDemo/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ LibGfxDemo
+ TARGETS LibGfxDemo
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Demos/LibGfxScaleDemo/CMakeLists.txt b/Userland/Demos/LibGfxScaleDemo/CMakeLists.txt
index 38f441dab9..e65be4d392 100644
--- a/Userland/Demos/LibGfxScaleDemo/CMakeLists.txt
+++ b/Userland/Demos/LibGfxScaleDemo/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ LibGfxScaleDemo
+ TARGETS LibGfxScaleDemo
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Demos/Mandelbrot/CMakeLists.txt b/Userland/Demos/Mandelbrot/CMakeLists.txt
index 80a203d715..ed177c0fb1 100644
--- a/Userland/Demos/Mandelbrot/CMakeLists.txt
+++ b/Userland/Demos/Mandelbrot/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Mandelbrot
+ TARGETS Mandelbrot
+)
+
set(SOURCES
Mandelbrot.cpp
)
diff --git a/Userland/Demos/Mouse/CMakeLists.txt b/Userland/Demos/Mouse/CMakeLists.txt
index bc90a5e308..c5509e991e 100644
--- a/Userland/Demos/Mouse/CMakeLists.txt
+++ b/Userland/Demos/Mouse/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Mouse
+ TARGETS Mouse
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Demos/Screensaver/CMakeLists.txt b/Userland/Demos/Screensaver/CMakeLists.txt
index 6f8acee97c..fa341ab42e 100644
--- a/Userland/Demos/Screensaver/CMakeLists.txt
+++ b/Userland/Demos/Screensaver/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Screensaver
+ TARGETS Screensaver
+)
+
set(SOURCES
Screensaver.cpp
)
diff --git a/Userland/Demos/Starfield/CMakeLists.txt b/Userland/Demos/Starfield/CMakeLists.txt
index a217dc92d7..7dc5b0ecaf 100644
--- a/Userland/Demos/Starfield/CMakeLists.txt
+++ b/Userland/Demos/Starfield/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ Starfield
+ TARGETS Starfield
+)
+
set(SOURCES
Starfield.cpp
)
diff --git a/Userland/Demos/WidgetGallery/CMakeLists.txt b/Userland/Demos/WidgetGallery/CMakeLists.txt
index 69179e26a2..8afdf67022 100644
--- a/Userland/Demos/WidgetGallery/CMakeLists.txt
+++ b/Userland/Demos/WidgetGallery/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ WidgetGallery
+ TARGETS WidgetGallery
+)
+
compile_gml(./GalleryGML/Window.gml WindowGML.h window_gml)
compile_gml(./GalleryGML/BasicsTab.gml BasicsTabGML.h basics_tab_gml)
compile_gml(./GalleryGML/SlidersTab.gml SlidersTabGML.h sliders_tab_gml)
diff --git a/Userland/DevTools/HackStudio/CMakeLists.txt b/Userland/DevTools/HackStudio/CMakeLists.txt
index 6b623e2281..06bd5b3c57 100644
--- a/Userland/DevTools/HackStudio/CMakeLists.txt
+++ b/Userland/DevTools/HackStudio/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ HackStudio
+ RECOMMENDED
+ TARGETS HackStudio
+ DEPENDS CppLanguageServer ShellLanguageServer
+)
+
add_subdirectory(LanguageServers)
add_subdirectory(LanguageClients)
diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt b/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt
index de5895e414..998fb9b06a 100644
--- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt
+++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ CppLanguageServer
+ TARGETS CppLanguageServer
+)
+
set(SOURCES
CppComprehensionEngine.cpp
Tests.cpp
diff --git a/Userland/DevTools/HackStudio/LanguageServers/Shell/CMakeLists.txt b/Userland/DevTools/HackStudio/LanguageServers/Shell/CMakeLists.txt
index 9924d8ebc7..59563e9a40 100644
--- a/Userland/DevTools/HackStudio/LanguageServers/Shell/CMakeLists.txt
+++ b/Userland/DevTools/HackStudio/LanguageServers/Shell/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ ShellLanguageServer
+ TARGETS ShellLanguageServer
+)
+
set(SOURCES
ShellComprehensionEngine.cpp
main.cpp
diff --git a/Userland/DevTools/Inspector/CMakeLists.txt b/Userland/DevTools/Inspector/CMakeLists.txt
index e7735b5ea3..edb6032064 100644
--- a/Userland/DevTools/Inspector/CMakeLists.txt
+++ b/Userland/DevTools/Inspector/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Inspector
+ RECOMMENDED
+ TARGETS Inspector
+)
+
set(SOURCES
main.cpp
RemoteObject.cpp
diff --git a/Userland/DevTools/Playground/CMakeLists.txt b/Userland/DevTools/Playground/CMakeLists.txt
index 4150e688ab..6fa9f90b69 100644
--- a/Userland/DevTools/Playground/CMakeLists.txt
+++ b/Userland/DevTools/Playground/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Playground
+ RECOMMENDED
+ TARGETS Playground
+)
+
set(SOURCES
main.cpp
GMLAutocompleteProvider.cpp
diff --git a/Userland/DevTools/Profiler/CMakeLists.txt b/Userland/DevTools/Profiler/CMakeLists.txt
index 7d60095c25..3b17cc360d 100644
--- a/Userland/DevTools/Profiler/CMakeLists.txt
+++ b/Userland/DevTools/Profiler/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Profiler
+ RECOMMENDED
+ TARGETS Profiler
+)
+
set(SOURCES
DisassemblyModel.cpp
main.cpp
diff --git a/Userland/DevTools/UserspaceEmulator/CMakeLists.txt b/Userland/DevTools/UserspaceEmulator/CMakeLists.txt
index 23ada13056..e9410a3626 100644
--- a/Userland/DevTools/UserspaceEmulator/CMakeLists.txt
+++ b/Userland/DevTools/UserspaceEmulator/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ UserspaceEmulator
+ RECOMMENDED
+ TARGETS UserspaceEmulator
+)
+
set(SOURCES
Emulator.cpp
Emulator_syscalls.cpp
diff --git a/Userland/Games/2048/CMakeLists.txt b/Userland/Games/2048/CMakeLists.txt
index d48b1e7bcf..d8f9bb2e7b 100644
--- a/Userland/Games/2048/CMakeLists.txt
+++ b/Userland/Games/2048/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ 2048
+ RECOMMENDED
+ TARGETS 2048
+)
+
set(SOURCES
BoardView.cpp
Game.cpp
diff --git a/Userland/Games/Breakout/CMakeLists.txt b/Userland/Games/Breakout/CMakeLists.txt
index d26284ea20..0cd3d1d1fd 100644
--- a/Userland/Games/Breakout/CMakeLists.txt
+++ b/Userland/Games/Breakout/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Breakout
+ RECOMMENDED
+ TARGETS Breakout
+)
+
set(SOURCES
main.cpp
Game.cpp
diff --git a/Userland/Games/Chess/CMakeLists.txt b/Userland/Games/Chess/CMakeLists.txt
index 54415eeb95..1c0c0a4784 100644
--- a/Userland/Games/Chess/CMakeLists.txt
+++ b/Userland/Games/Chess/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ Chess
+ RECOMMENDED
+ TARGETS Chess
+ DEPENDS ChessEngine
+)
+
set(SOURCES
main.cpp
ChessWidget.cpp
diff --git a/Userland/Games/GameOfLife/CMakeLists.txt b/Userland/Games/GameOfLife/CMakeLists.txt
index 225e4f1b8a..a8421a1e8b 100644
--- a/Userland/Games/GameOfLife/CMakeLists.txt
+++ b/Userland/Games/GameOfLife/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ GameOfLife
+ RECOMMENDED
+ TARGETS GameOfLife
+)
+
compile_gml(GameOfLife.gml GameOfLifeGML.h game_of_life_gml)
set(SOURCES
diff --git a/Userland/Games/Hearts/CMakeLists.txt b/Userland/Games/Hearts/CMakeLists.txt
index 312b5904b9..2fa79e5ef3 100644
--- a/Userland/Games/Hearts/CMakeLists.txt
+++ b/Userland/Games/Hearts/CMakeLists.txt
@@ -1,3 +1,10 @@
+serenity_component(
+ Hearts
+ DESCRIPTION "Hearts game"
+ RECOMMENDED
+ TARGETS Hearts
+)
+
compile_gml(Hearts.gml HeartsGML.h hearts_gml)
set(SOURCES
diff --git a/Userland/Games/Minesweeper/CMakeLists.txt b/Userland/Games/Minesweeper/CMakeLists.txt
index 466227edb6..75bf5344b8 100644
--- a/Userland/Games/Minesweeper/CMakeLists.txt
+++ b/Userland/Games/Minesweeper/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Minesweeper
+ RECOMMENDED
+ TARGETS Minesweeper
+)
+
set(SOURCES
Field.cpp
main.cpp
diff --git a/Userland/Games/Pong/CMakeLists.txt b/Userland/Games/Pong/CMakeLists.txt
index ebd8962f94..20638e587c 100644
--- a/Userland/Games/Pong/CMakeLists.txt
+++ b/Userland/Games/Pong/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Pong
+ RECOMMENDED
+ TARGETS Pong
+)
+
set(SOURCES
main.cpp
Game.cpp
diff --git a/Userland/Games/Snake/CMakeLists.txt b/Userland/Games/Snake/CMakeLists.txt
index d542cd4ead..6ccc58755b 100644
--- a/Userland/Games/Snake/CMakeLists.txt
+++ b/Userland/Games/Snake/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Snake
+ RECOMMENDED
+ TARGETS Snake
+)
+
set(SOURCES
main.cpp
SnakeGame.cpp
diff --git a/Userland/Games/Solitaire/CMakeLists.txt b/Userland/Games/Solitaire/CMakeLists.txt
index 084c776d24..3727f7b80a 100644
--- a/Userland/Games/Solitaire/CMakeLists.txt
+++ b/Userland/Games/Solitaire/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Solitaire
+ RECOMMENDED
+ TARGETS Solitaire
+)
+
compile_gml(Solitaire.gml SolitaireGML.h solitaire_gml)
set(SOURCES
diff --git a/Userland/Services/AudioServer/CMakeLists.txt b/Userland/Services/AudioServer/CMakeLists.txt
index e82b4732b0..a1a0d8803b 100644
--- a/Userland/Services/AudioServer/CMakeLists.txt
+++ b/Userland/Services/AudioServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ AudioServer
+ RECOMMENDED
+ TARGETS AudioServer
+)
+
compile_ipc(AudioServer.ipc AudioServerEndpoint.h)
compile_ipc(AudioClient.ipc AudioClientEndpoint.h)
diff --git a/Userland/Services/ChessEngine/CMakeLists.txt b/Userland/Services/ChessEngine/CMakeLists.txt
index 288529a100..d5b61aab8c 100644
--- a/Userland/Services/ChessEngine/CMakeLists.txt
+++ b/Userland/Services/ChessEngine/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ ChessEngine
+ TARGETS ChessEngine
+)
+
set(SOURCES
ChessEngine.cpp
main.cpp
diff --git a/Userland/Services/Clipboard/CMakeLists.txt b/Userland/Services/Clipboard/CMakeLists.txt
index 4f0e5ab65a..499c514ab3 100644
--- a/Userland/Services/Clipboard/CMakeLists.txt
+++ b/Userland/Services/Clipboard/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Clipboard
+ REQUIRED
+ TARGETS Clipboard
+)
+
compile_ipc(ClipboardServer.ipc ClipboardServerEndpoint.h)
compile_ipc(ClipboardClient.ipc ClipboardClientEndpoint.h)
diff --git a/Userland/Services/CrashDaemon/CMakeLists.txt b/Userland/Services/CrashDaemon/CMakeLists.txt
index 232c4d5a84..c4fee7622b 100644
--- a/Userland/Services/CrashDaemon/CMakeLists.txt
+++ b/Userland/Services/CrashDaemon/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ CrashDaemon
+ REQUIRED
+ TARGETS CrashDaemon
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Services/DHCPClient/CMakeLists.txt b/Userland/Services/DHCPClient/CMakeLists.txt
index 6fddd4a21f..30d3dd70d2 100644
--- a/Userland/Services/DHCPClient/CMakeLists.txt
+++ b/Userland/Services/DHCPClient/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ DHCPClient
+ REQUIRED
+ TARGETS DHCPClient
+)
+
set(SOURCES
DHCPv4Client.cpp
DHCPv4.cpp
diff --git a/Userland/Services/EchoServer/CMakeLists.txt b/Userland/Services/EchoServer/CMakeLists.txt
index e7d67fe14e..498be2d59f 100644
--- a/Userland/Services/EchoServer/CMakeLists.txt
+++ b/Userland/Services/EchoServer/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ EchoServer
+ TARGETS EchoServer
+)
+
set(SOURCES
Client.cpp
main.cpp
diff --git a/Userland/Services/FileOperation/CMakeLists.txt b/Userland/Services/FileOperation/CMakeLists.txt
index 6373889dc5..f54162e885 100644
--- a/Userland/Services/FileOperation/CMakeLists.txt
+++ b/Userland/Services/FileOperation/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ FileOperation
+ TARGETS FileOperation
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Services/ImageDecoder/CMakeLists.txt b/Userland/Services/ImageDecoder/CMakeLists.txt
index 56482fe31d..9677a1c15b 100644
--- a/Userland/Services/ImageDecoder/CMakeLists.txt
+++ b/Userland/Services/ImageDecoder/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ ImageDecoder
+ TARGETS ImageDecoder
+)
+
compile_ipc(ImageDecoderServer.ipc ImageDecoderServerEndpoint.h)
compile_ipc(ImageDecoderClient.ipc ImageDecoderClientEndpoint.h)
diff --git a/Userland/Services/InspectorServer/CMakeLists.txt b/Userland/Services/InspectorServer/CMakeLists.txt
index 2adbe4a4d6..d5ec047757 100644
--- a/Userland/Services/InspectorServer/CMakeLists.txt
+++ b/Userland/Services/InspectorServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ InspectorServer
+ REQUIRED
+ TARGETS InspectorServer
+)
+
compile_ipc(InspectorServer.ipc InspectorServerEndpoint.h)
compile_ipc(InspectorClient.ipc InspectorClientEndpoint.h)
diff --git a/Userland/Services/KeyboardPreferenceLoader/CMakeLists.txt b/Userland/Services/KeyboardPreferenceLoader/CMakeLists.txt
index fdf613f09d..a2a9000d4b 100644
--- a/Userland/Services/KeyboardPreferenceLoader/CMakeLists.txt
+++ b/Userland/Services/KeyboardPreferenceLoader/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ KeyboardPreferenceLoader
+ REQUIRED
+ TARGETS KeyboardPreferenceLoader keymap
+)
+
set(SOURCES
main.cpp
)
diff --git a/Userland/Services/LaunchServer/CMakeLists.txt b/Userland/Services/LaunchServer/CMakeLists.txt
index 29308ce7f1..137b3285b0 100644
--- a/Userland/Services/LaunchServer/CMakeLists.txt
+++ b/Userland/Services/LaunchServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ LaunchServer
+ REQUIRED
+ TARGETS LaunchServer
+)
+
compile_ipc(LaunchServer.ipc LaunchServerEndpoint.h)
compile_ipc(LaunchClient.ipc LaunchClientEndpoint.h)
diff --git a/Userland/Services/LookupServer/CMakeLists.txt b/Userland/Services/LookupServer/CMakeLists.txt
index 3308de8b9a..84cf215339 100644
--- a/Userland/Services/LookupServer/CMakeLists.txt
+++ b/Userland/Services/LookupServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ LookupServer
+ REQUIRED
+ TARGETS LookupServer
+)
+
compile_ipc(LookupServer.ipc LookupServerEndpoint.h)
compile_ipc(LookupClient.ipc LookupClientEndpoint.h)
diff --git a/Userland/Services/NotificationServer/CMakeLists.txt b/Userland/Services/NotificationServer/CMakeLists.txt
index a28d9f16a5..fc59c4d4e0 100644
--- a/Userland/Services/NotificationServer/CMakeLists.txt
+++ b/Userland/Services/NotificationServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ NotificationServer
+ REQUIRED
+ TARGETS NotificationServer
+)
+
compile_ipc(NotificationServer.ipc NotificationServerEndpoint.h)
compile_ipc(NotificationClient.ipc NotificationClientEndpoint.h)
diff --git a/Userland/Services/RequestServer/CMakeLists.txt b/Userland/Services/RequestServer/CMakeLists.txt
index c027c7e4ea..5033367604 100644
--- a/Userland/Services/RequestServer/CMakeLists.txt
+++ b/Userland/Services/RequestServer/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ RequestServer
+ TARGETS RequestServer
+)
+
compile_ipc(RequestServer.ipc RequestServerEndpoint.h)
compile_ipc(RequestClient.ipc RequestClientEndpoint.h)
diff --git a/Userland/Services/SystemServer/CMakeLists.txt b/Userland/Services/SystemServer/CMakeLists.txt
index fda6eb1bcc..c648051333 100644
--- a/Userland/Services/SystemServer/CMakeLists.txt
+++ b/Userland/Services/SystemServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ SystemServer
+ REQUIRED
+ TARGETS SystemServer
+)
+
set(SOURCES
main.cpp
Service.cpp
diff --git a/Userland/Services/Taskbar/CMakeLists.txt b/Userland/Services/Taskbar/CMakeLists.txt
index 1367480921..dd04d7584d 100644
--- a/Userland/Services/Taskbar/CMakeLists.txt
+++ b/Userland/Services/Taskbar/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Taskbar
+ REQUIRED
+ TARGETS Taskbar
+)
+
set(SOURCES
main.cpp
ClockWidget.cpp
diff --git a/Userland/Services/TelnetServer/CMakeLists.txt b/Userland/Services/TelnetServer/CMakeLists.txt
index e19ae8bac6..9f0ebb5414 100644
--- a/Userland/Services/TelnetServer/CMakeLists.txt
+++ b/Userland/Services/TelnetServer/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ TelnetServer
+ TARGETS TelnetServer
+)
+
set(SOURCES
Client.cpp
main.cpp
diff --git a/Userland/Services/WebContent/CMakeLists.txt b/Userland/Services/WebContent/CMakeLists.txt
index 14f94053f2..a1886c6b63 100644
--- a/Userland/Services/WebContent/CMakeLists.txt
+++ b/Userland/Services/WebContent/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ WebContent
+ TARGETS WebContent
+)
+
compile_ipc(WebContentServer.ipc WebContentServerEndpoint.h)
compile_ipc(WebContentClient.ipc WebContentClientEndpoint.h)
diff --git a/Userland/Services/WebServer/CMakeLists.txt b/Userland/Services/WebServer/CMakeLists.txt
index 5cb8b7384f..02e04008fb 100644
--- a/Userland/Services/WebServer/CMakeLists.txt
+++ b/Userland/Services/WebServer/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ WebServer
+ TARGETS WebServer
+)
+
set(SOURCES
Client.cpp
Configuration.cpp
diff --git a/Userland/Services/WebSocket/CMakeLists.txt b/Userland/Services/WebSocket/CMakeLists.txt
index 2dc8971c2c..47b73ae266 100644
--- a/Userland/Services/WebSocket/CMakeLists.txt
+++ b/Userland/Services/WebSocket/CMakeLists.txt
@@ -1,3 +1,8 @@
+serenity_component(
+ WebSocket
+ TARGETS WebSocket
+)
+
compile_ipc(WebSocketServer.ipc WebSocketServerEndpoint.h)
compile_ipc(WebSocketClient.ipc WebSocketClientEndpoint.h)
diff --git a/Userland/Services/WindowServer/CMakeLists.txt b/Userland/Services/WindowServer/CMakeLists.txt
index 533e004107..5eb4948f0e 100644
--- a/Userland/Services/WindowServer/CMakeLists.txt
+++ b/Userland/Services/WindowServer/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ WindowServer
+ REQUIRED
+ TARGETS WindowServer
+)
+
compile_ipc(WindowServer.ipc WindowServerEndpoint.h)
compile_ipc(WindowClient.ipc WindowClientEndpoint.h)
compile_ipc(WindowManagerServer.ipc WindowManagerServerEndpoint.h)
diff --git a/Userland/Shell/CMakeLists.txt b/Userland/Shell/CMakeLists.txt
index 3777b883b8..d14cfe6b07 100644
--- a/Userland/Shell/CMakeLists.txt
+++ b/Userland/Shell/CMakeLists.txt
@@ -1,3 +1,9 @@
+serenity_component(
+ Shell
+ REQUIRED
+ TARGETS Shell
+)
+
set(SOURCES
AST.cpp
Builtin.cpp
diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt
index 79581146b8..f9d804806f 100644
--- a/Userland/Utilities/CMakeLists.txt
+++ b/Userland/Utilities/CMakeLists.txt
@@ -1,17 +1,53 @@
file(GLOB CMD_SOURCES CONFIGURE_DEPENDS "*.cpp")
-list(APPEND SPECIAL_TARGETS "test" "install")
+list(APPEND SPECIAL_TARGETS test install)
+list(APPEND REQUIRED_TARGETS
+ arp base64 basename cat chmod chown chroot clear cp cut date dd df dirname dmesg du echo env expr false fgrep
+ file find grep groups head host hostname id ifconfig kill killall ln ls mkdir mount mv nproc
+ pidof ping pmap ps readlink realpath reboot rm rmdir seq shutdown sleep sort stat stty su tail test
+ touch tr true umount uname uniq uptime w wc which whoami xargs yes
+)
+list(APPEND RECOMMENDED_TARGETS
+ adjtime aplay avol bt checksum chres cksum copy fortune gunzip gzip init keymap lsirq lsof lspci man mknod mktemp
+ modload modunload more nc netstat notify ntpquery open pape passwd pls printf pro shot tar tt unzip zip
+)
+
+# FIXME: Support specifying component dependencies for utilities (e.g. WebSocket for telws)
foreach(CMD_SRC ${CMD_SOURCES})
get_filename_component(CMD_NAME ${CMD_SRC} NAME_WE)
if (CMD_NAME IN_LIST SPECIAL_TARGETS)
- add_executable("${CMD_NAME}-bin" ${CMD_SRC})
- target_link_libraries("${CMD_NAME}-bin" LibCore)
- install(TARGETS "${CMD_NAME}-bin" RUNTIME DESTINATION bin)
+ set(TARGET_NAME "${CMD_NAME}-bin")
+ else()
+ set(TARGET_NAME "${CMD_NAME}")
+ endif()
+ if(CMD_NAME IN_LIST REQUIRED_TARGETS)
+ serenity_component(
+ ${CMD_NAME}
+ REQUIRED
+ TARGETS ${TARGET_NAME}
+ )
+ elseif(CMD_NAME IN_LIST RECOMMENDED_TARGETS)
+ serenity_component(
+ ${CMD_NAME}
+ RECOMMENDED
+ TARGETS ${TARGET_NAME}
+ )
+ else()
+ serenity_component(
+ ${CMD_NAME}
+ TARGETS ${TARGET_NAME}
+ )
+ endif()
+ if (CMD_NAME IN_LIST SPECIAL_TARGETS)
+ add_executable(${TARGET_NAME} ${CMD_SRC})
+ target_link_libraries(${TARGET_NAME} LibCore)
+ install(TARGETS ${TARGET_NAME} RUNTIME DESTINATION bin)
install(CODE "file(RENAME ${CMAKE_INSTALL_PREFIX}/bin/${CMD_NAME}-bin ${CMAKE_INSTALL_PREFIX}/bin/${CMD_NAME})")
else()
add_executable(${CMD_NAME} ${CMD_SRC})
+ set_target_properties(${CMD_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE)
target_link_libraries(${CMD_NAME} LibCore)
- install(TARGETS ${CMD_NAME} RUNTIME DESTINATION bin)
+ install(TARGETS ${CMD_NAME} RUNTIME DESTINATION bin OPTIONAL)
endif()
endforeach()