# These are the minimal set of sources needed to build the code generators. We separate them to allow
# LibCore to depend on generated sources.
shared_library("minimal") {
output_name = "core-minimal"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"ArgsParser.cpp",
"ArgsParser.h",
"ConfigFile.cpp",
"ConfigFile.h",
"DirIterator.cpp",
"DirIterator.h",
"Directory.cpp",
"Directory.h",
"DirectoryEntry.cpp",
"DirectoryEntry.h",
"Environment.cpp",
"Environment.h",
"File.cpp",
"File.h",
"Forward.h",
"SessionManagement.cpp",
"SessionManagement.h",
"StandardPaths.cpp",
"StandardPaths.h",
"System.cpp",
"System.h",
"Version.cpp",
"Version.h",
]
deps = [
"//AK",
"//Userland/Libraries/LibSystem",
]
}
source_set("sources") {
include_dirs = [ "//Userland/Libraries" ]
deps = [ "//AK" ]
sources = [
"AnonymousBuffer.cpp",
"AnonymousBuffer.h",
"Command.cpp",
"Command.h",
"DateTime.cpp",
"DateTime.h",
"Debounce.h",
"DeferredInvocationContext.h",
"ElapsedTimer.cpp",
"ElapsedTimer.h",
"Event.cpp",
"Event.h",
"EventLoop.cpp",
"EventLoop.h",
"EventLoopImplementation.cpp",
"EventLoopImplementation.h",
"EventLoopImplementationUnix.cpp",
"EventLoopImplementationUnix.h",
"EventReceiver.cpp",
"EventReceiver.h",
"LockFile.cpp",
"LockFile.h",
"MappedFile.cpp",
"MappedFile.h",
"MimeData.cpp",
"MimeData.h",
"NetworkJob.cpp",
"NetworkJob.h",
"NetworkResponse.h",
"Notifier.cpp",
"Notifier.h",
"Platform/ProcessInfo.h",
"Platform/ProcessStatistics.h",
"Process.cpp",
"Process.h",
"ProcessStatisticsReader.cpp",
"ProcessStatisticsReader.h",
"Promise.h",
"Proxy.h",
"Resource.cpp",
"ResourceImplementation.cpp",
"ResourceImplementationFile.cpp",
"SOCKSProxyClient.cpp",
"SOCKSProxyClient.h",
"SecretString.cpp",
"SecretString.h",
"SharedCircularQueue.h",
"Socket.cpp",
"Socket.h",
"SocketAddress.h",
"SystemServerTakeover.cpp",
"SystemServerTakeover.h",
"TCPServer.cpp",
"TCPServer.h",
"ThreadEventQueue.cpp",
"ThreadEventQueue.h",
"ThreadedPromise.h",
"Timer.cpp",
"Timer.h",
"UDPServer.cpp",
"UDPServer.h",
"UmaskScope.h",
]
if (current_os != "android") {
sources += [
"Account.cpp",
"Account.h",
"FilePermissionsMask.cpp",
"FilePermissionsMask.h",
"GetPassword.cpp",
"GetPassword.h",
"Group.cpp",
"Group.h",
"LocalServer.cpp",
"LocalServer.h",
]
}
if (current_os == "mac") {
sources += [ "MachPort.cpp" ]
}
if (current_os == "minerva") {
sources += [ "Platform/ProcessStatisticsMinerva.cpp" ]
} else if (current_os == "linux") {
sources += [ "Platform/ProcessStatisticsLinux.cpp" ]
} else if (current_os == "mac") {
sources += [
"Platform/ProcessStatisticsMach.cpp",
"Platform/ProcessStatisticsMach.h",
]
} else {
sources += [ "Platform/ProcessStatisticsUnimplemented.cpp" ]
}
}
source_set("filewatcher") {
include_dirs = [ "//Userland/Libraries" ]
sources = [ "FileWatcher.h" ]
deps = [ "//AK" ]
frameworks = []
if (current_os == "linux") {
sources += [ "FileWatcherLinux.cpp" ]
} else if (current_os == "mac") {
sources += [ "FileWatcherMacOS.mm" ]
frameworks += [
"CoreFoundation.framework",
"CoreServices.framework",
"Foundation.framework",
]
} else if (current_os == "minerva") {
sources += [ "FileWatcherMinerva.cpp" ]
} else {
sources += [ "FileWatcherUnimplemented.cpp" ]
}
}
shared_library("LibCore") {
libs = []
if (current_os == "linux" || current_os == "android") {
libs += [ "dl" ]
}
if (current_os == "linux") {
libs += [ "rt" ]
}
output_name = "core"
deps = [
":filewatcher",
":sources",
"//Meta/gn/build/libs/crypt",
"//Meta/gn/build/libs/pthread",
"//Userland/Libraries/LibSystem",
"//Userland/Libraries/LibTimeZone",
"//Userland/Libraries/LibURL",
]
public_deps = [ ":minimal" ]
}