1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 18:10:56 +09:00
ladybird/Libraries/LibCore/CMakeLists.txt
rmg-x 514233008b Meta+LibCore: Stop linking against LibCrypt
This was only be used by "Account.cpp" which was removed in:
d8c36ed458
2025-04-08 09:13:33 +02:00

142 lines
3.5 KiB
CMake

# These are the minimal set of sources needed to build the code generators. We separate them to allow
# LibCore to depend on generated sources.
set(SOURCES
ArgsParser.cpp
Directory.cpp
DirectoryEntry.cpp
DirIterator.cpp
Environment.cpp
File.cpp
StandardPaths.cpp
Version.cpp
)
if (WIN32)
list(APPEND SOURCES
ProcessWindows.cpp
SocketpairWindows.cpp
SystemWindows.cpp)
else()
list(APPEND SOURCES
Process.cpp
System.cpp)
endif()
serenity_lib(LibCoreMinimal coreminimal)
if (WIN32)
find_path(DIRENT_INCLUDE_DIR dirent.h REQUIRED)
target_include_directories(LibCoreMinimal PRIVATE ${DIRENT_INCLUDE_DIR})
endif()
if (LAGOM_TOOLS_ONLY)
return()
endif()
set(SOURCES
ConfigFile.cpp
DateTime.cpp
ElapsedTimer.cpp
Event.cpp
EventLoop.cpp
EventLoopImplementation.cpp
EventReceiver.cpp
MappedFile.cpp
MimeData.cpp
Notifier.cpp
Resource.cpp
ResourceImplementation.cpp
ResourceImplementationFile.cpp
SystemServerTakeover.cpp
ThreadEventQueue.cpp
Timer.cpp
)
if (WIN32)
# FIXME: Support UDPServer and TCPServer on Windows
list(APPEND SOURCES
SocketWindows.cpp
AnonymousBufferWindows.cpp
EventLoopImplementationWindows.cpp)
else()
list(APPEND SOURCES
Command.cpp
Socket.cpp
AnonymousBuffer.cpp
EventLoopImplementationUnix.cpp
UDPServer.cpp
TCPServer.cpp)
endif()
if (NOT WIN32 AND NOT EMSCRIPTEN)
list(APPEND SOURCES LocalServer.cpp)
endif()
# FIXME: Implement these for other systems.
if (LINUX AND NOT EMSCRIPTEN)
list(APPEND SOURCES
FileWatcherLinux.cpp
Platform/ProcessStatisticsLinux.cpp
TimeZoneWatcherLinux.cpp
)
elseif (APPLE AND NOT IOS)
list(APPEND SOURCES
FileWatcherMacOS.mm
Platform/ProcessStatisticsMach.cpp
TimeZoneWatcherMacOS.mm
)
else()
list(APPEND SOURCES
FileWatcherUnimplemented.cpp
Platform/ProcessStatisticsUnimplemented.cpp
TimeZoneWatcherUnimplemented.cpp
)
endif()
if (APPLE OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
list(APPEND SOURCES MachPort.cpp)
endif()
if (APPLE)
list(APPEND SOURCES IOSurface.cpp)
endif()
serenity_lib(LibCore core)
target_link_libraries(LibCore PRIVATE LibUnicode LibURL)
target_link_libraries(LibCore PUBLIC LibCoreMinimal)
if (APPLE)
target_link_libraries(LibCore PUBLIC "-framework CoreFoundation")
target_link_libraries(LibCore PUBLIC "-framework CoreServices")
target_link_libraries(LibCore PUBLIC "-framework Foundation")
target_link_libraries(LibCore PUBLIC "-framework IOSurface")
endif()
if (ANDROID)
target_link_libraries(LibCore PRIVATE log)
endif()
if (ENABLE_SWIFT)
set(SWIFT_EXCLUDE_HEADERS "SocketAddressWindows.h")
if(WIN32)
list(APPEND SWIFT_EXCLUDE_HEADERS "EventLoopImplementationUnix.h")
else()
list(APPEND SWIFT_EXCLUDE_HEADERS "EventLoopImplementationWindows.h")
endif()
if (NOT APPLE)
list(APPEND SWIFT_EXCLUDE_HEADERS
IOSurface.h
MachPort.h
MachMessageTypes.h
ProcessStatisticsMach.h
)
endif()
generate_clang_module_map(LibCore EXCLUDE_FILES ${SWIFT_EXCLUDE_HEADERS})
target_sources(LibCore PRIVATE
EventSwift.mm
EventLoopExecutor.swift)
set_source_files_properties(EventSwift.mm PRIVATE PROPERTIES COMPILE_FLAGS -fblocks)
target_link_libraries(LibCore PRIVATE AK)
add_swift_target_properties(LibCore LAGOM_LIBRARIES AK)
endif()