ladybird/Userland/DevTools/HackStudio/CMakeLists.txt
Itamar bb6324a9a9 HackStudio: Add ProjectBuilder component
ProjectBuilder takes care of building and running the current project
from Hack Studio.

The existing functionality of building javascript and Makefile projects
remains, and in addition to it the ability to build standalone serenity
components is added.

If the Hack Studio project is the serenity repository itself,
ProjectBuilder will attempt building the component that the currently
active file belongs to.

It does so by creating a new CMake file which adds the component as a
build subdirectory.
It also parses all CMake files in the serenity repository to gather all
available libraries. It declares the libraries and their dependencies in
this CMake file.

It then uses the HACKSTUDIO_BUILD CMake option to direct the build
system to use this CMake file instead of doing a full system build.
2022-01-12 14:55:19 +01:00

59 lines
1.7 KiB
CMake

serenity_component(
HackStudio
RECOMMENDED
TARGETS HackStudio
DEPENDS CppLanguageServer ShellLanguageServer
)
add_subdirectory(LanguageServers)
add_subdirectory(LanguageClients)
compile_gml(Dialogs/NewProjectDialog.gml Dialogs/NewProjectDialogGML.h new_project_dialog_gml)
compile_gml(Dialogs/Git/GitCommitDialog.gml Dialogs/Git/GitCommitDialogGML.h git_commit_dialog_gml)
set(SOURCES
CodeDocument.cpp
ClassViewWidget.cpp
Debugger/BacktraceModel.cpp
Debugger/DebugInfoWidget.cpp
Debugger/Debugger.cpp
Debugger/DebuggerGlobalJSObject.cpp
Debugger/DebuggerVariableJSObject.cpp
Debugger/DisassemblyModel.cpp
Debugger/DisassemblyWidget.cpp
Debugger/EvaluateExpressionDialog.cpp
Debugger/RegistersModel.cpp
Debugger/VariablesModel.cpp
Dialogs/Git/GitCommitDialog.cpp
Dialogs/Git/GitCommitDialogGML.h
Dialogs/NewProjectDialog.cpp
Dialogs/NewProjectDialogGML.h
Dialogs/ProjectTemplatesModel.cpp
Editor.cpp
EditorWrapper.cpp
FindInFilesWidget.cpp
Git/DiffViewer.cpp
Git/GitFilesModel.cpp
Git/GitFilesView.cpp
Git/GitRepo.cpp
Git/GitWidget.cpp
GMLPreviewWidget.cpp
HackStudioWidget.cpp
Language.cpp
LanguageClient.cpp
Locator.cpp
Project.cpp
ProjectBuilder.cpp
ProjectDeclarations.cpp
ProjectFile.cpp
ProjectTemplate.cpp
TerminalWrapper.cpp
ToDoEntries.cpp
ToDoEntriesWidget.cpp
main.cpp
)
serenity_app(HackStudio ICON app-hack-studio)
target_link_libraries(HackStudio LibWeb LibMarkdown LibGUI LibCpp LibGfx LibCore LibVT LibDebug LibX86 LibDiff LibShell LibSymbolication LibRegex LibSQL LibCoredump LibMain)
link_with_unicode_data(HackStudio)
add_dependencies(HackStudio CppLanguageServer)