ladybird/Userland/Shell/CMakeLists.txt
Tim Schumacher ce2f1b845f Everywhere: Mark dependencies of most targets as PRIVATE
Otherwise, we end up propagating those dependencies into targets that
link against that library, which creates unnecessary link-time
dependencies.

Also included are changes to readd now missing dependencies to tools
that actually need them.
2022-11-01 14:49:09 +00:00

40 lines
924 B
CMake

serenity_component(
Shell
REQUIRED
TARGETS Shell
)
set(SOURCES
AST.cpp
Builtin.cpp
Formatter.cpp
ImmediateFunctions.cpp
Job.cpp
NodeVisitor.cpp
Parser.cpp
Shell.cpp
)
serenity_lib(LibShell shell)
target_link_libraries(LibShell PRIVATE LibCore LibLine LibSyntax LibRegex)
if (SERENITYOS)
target_sources(LibShell PRIVATE SyntaxHighlighter.cpp)
target_link_libraries(LibShell PRIVATE LibCodeComprehension)
endif()
if (ENABLE_FUZZERS)
add_custom_target(Shell) # Stub target to placate serenity_component
else()
set(SOURCES main.cpp)
serenity_bin(Shell)
target_link_libraries(Shell PRIVATE LibCore LibLine LibShell LibMain)
install(DIRECTORY Tests/ DESTINATION usr/Tests/Shell
PATTERN "Tests/*"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ)
endif()