summaryrefslogtreecommitdiff
path: root/Ports/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Ports/cmake')
-rwxr-xr-xPorts/cmake/package.sh10
-rw-r--r--Ports/cmake/patches/0008-unix-stuff.patch76
-rw-r--r--Ports/cmake/patches/0009-purge-non-serenity-syscalls.patch199
-rw-r--r--Ports/cmake/patches/0019-libuv-so_linger.patch22
-rw-r--r--Ports/cmake/patches/0025-uv-platform.patch23
-rw-r--r--Ports/cmake/patches/0027-libuv-platform-serenity.patch13
-rw-r--r--Ports/cmake/patches/ReadMe.md51
7 files changed, 7 insertions, 387 deletions
diff --git a/Ports/cmake/package.sh b/Ports/cmake/package.sh
index 0ee1d064c7..d8116c6cb0 100755
--- a/Ports/cmake/package.sh
+++ b/Ports/cmake/package.sh
@@ -4,13 +4,17 @@ version=3.19.4
useconfigure=true
files="https://github.com/Kitware/CMake/releases/download/v$version/cmake-$version.tar.gz cmake-$version.tar.gz 7d0232b9f1c57e8de81f38071ef8203e6820fe7eec8ae46a1df125d88dbcc2e1"
auth_type=sha256
-depends="bash gcc make sed ncurses"
-configopts="-DCMAKE_TOOLCHAIN_FILE=$SERENITY_SOURCE_DIR/Toolchain/CMake/CMakeToolchain.txt"
+depends="bash make sed ncurses libuv"
+configopts="-DCMAKE_TOOLCHAIN_FILE=$SERENITY_SOURCE_DIR/Toolchain/CMake/CMakeToolchain.txt -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=1 -GNinja"
configure() {
run cmake $configopts .
}
+build() {
+ run ninja
+}
+
install() {
- run make install
+ run ninja install
}
diff --git a/Ports/cmake/patches/0008-unix-stuff.patch b/Ports/cmake/patches/0008-unix-stuff.patch
deleted file mode 100644
index 5c49fe2a65..0000000000
--- a/Ports/cmake/patches/0008-unix-stuff.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From d8b3a1a970d92d5e66a7caa3805a56c186027f44 Mon Sep 17 00:00:00 2001
-From: AnotherTest <ali.mpfard@gmail.com>
-Date: Fri, 12 Feb 2021 03:12:38 +0330
-Subject: [PATCH 08/11] unix stuff
-
----
- Utilities/cmlibuv/src/unix/core.c | 26 +++++++++++++++++++++++++-
- 1 file changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/Utilities/cmlibuv/src/unix/core.c b/Utilities/cmlibuv/src/unix/core.c
-index e6d61ee..f90d9a3 100644
---- a/Utilities/cmlibuv/src/unix/core.c
-+++ b/Utilities/cmlibuv/src/unix/core.c
-@@ -578,6 +578,14 @@ int uv__close(int fd) {
- }
-
-
-+#if defined(_AIX) || \
-+ defined(__APPLE__) || \
-+ defined(__DragonFly__) || \
-+ defined(__FreeBSD__) || \
-+ defined(__FreeBSD_kernel__) || \
-+ defined(__linux__) || \
-+ defined(__OpenBSD__) || \
-+ defined(__NetBSD__)
- int uv__nonblock_ioctl(int fd, int set) {
- int r;
-
-@@ -590,9 +598,18 @@ int uv__nonblock_ioctl(int fd, int set) {
-
- return 0;
- }
-+#endif
-
-
--#if !defined(__hpux) && !defined(__CYGWIN__) && !defined(__MSYS__) && !defined(__HAIKU__)
-+#if defined(_AIX) || \
-+ defined(__APPLE__) || \
-+ defined(__DragonFly__) || \
-+ defined(__FreeBSD__) || \
-+ defined(__FreeBSD_kernel__) || \
-+ defined(__linux__) || \
-+ defined(__OpenBSD__) || \
-+ defined(__NetBSD__)
-+
- int uv__cloexec_ioctl(int fd, int set) {
- int r;
-
-@@ -1422,8 +1439,13 @@ int uv_os_getpriority(uv_pid_t pid, int* priority) {
- if (priority == NULL)
- return UV_EINVAL;
-
-+ /*
- errno = 0;
- r = getpriority(PRIO_PROCESS, (int) pid);
-+ */
-+
-+ errno = 0;
-+ r = 1;
-
- if (r == -1 && errno != 0)
- return UV__ERR(errno);
-@@ -1437,8 +1459,10 @@ int uv_os_setpriority(uv_pid_t pid, int priority) {
- if (priority < UV_PRIORITY_HIGHEST || priority > UV_PRIORITY_LOW)
- return UV_EINVAL;
-
-+ /*
- if (setpriority(PRIO_PROCESS, (int) pid, priority) != 0)
- return UV__ERR(errno);
-+ */
-
- return 0;
- }
---
-2.30.1
-
diff --git a/Ports/cmake/patches/0009-purge-non-serenity-syscalls.patch b/Ports/cmake/patches/0009-purge-non-serenity-syscalls.patch
deleted file mode 100644
index e0c8e4e66e..0000000000
--- a/Ports/cmake/patches/0009-purge-non-serenity-syscalls.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From 6939797ada5dbf5545d857cc60cfd5a8ceddb0ae Mon Sep 17 00:00:00 2001
-From: AnotherTest <ali.mpfard@gmail.com>
-Date: Fri, 12 Feb 2021 04:49:01 +0330
-Subject: [PATCH 09/11] purge non-serenity syscalls
-
-very breaky!
----
- Utilities/cmlibuv/src/unix/fs.c | 31 ++++++++++++++++++++++++++++
- Utilities/cmlibuv/src/unix/poll.c | 2 ++
- Utilities/cmlibuv/src/unix/process.c | 2 ++
- Utilities/cmlibuv/src/unix/stream.c | 3 +--
- 4 files changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/Utilities/cmlibuv/src/unix/fs.c b/Utilities/cmlibuv/src/unix/fs.c
-index 48c0123..fd102a8 100644
---- a/Utilities/cmlibuv/src/unix/fs.c
-+++ b/Utilities/cmlibuv/src/unix/fs.c
-@@ -85,6 +85,8 @@
- defined(__HAIKU__) || \
- defined(__QNX__)
- # include <sys/statvfs.h>
-+#elif defined(__serenity__)
-+// No statfs
- #else
- # include <sys/statfs.h>
- #endif
-@@ -540,7 +542,11 @@ static ssize_t uv__fs_scandir(uv_fs_t* req) {
- int n;
-
- dents = NULL;
-+#ifndef __serenity__
- n = scandir(req->path, &dents, uv__fs_scandir_filter, uv__fs_scandir_sort);
-+#else
-+ n = 0;
-+#endif
-
- /* NOTE: We will use nbufs as an index field */
- req->nbufs = 0;
-@@ -651,6 +657,9 @@ static int uv__fs_statfs(uv_fs_t* req) {
- struct statvfs buf;
-
- if (0 != statvfs(req->path, &buf))
-+#elif defined(__serenity__)
-+ char buf = 0;
-+ if (1)
- #else
- struct statfs buf;
-
-@@ -658,6 +667,7 @@ static int uv__fs_statfs(uv_fs_t* req) {
- #endif /* defined(__sun) */
- return -1;
-
-+#if !defined(__serenity__)
- stat_fs = uv__malloc(sizeof(*stat_fs));
- if (stat_fs == NULL) {
- errno = ENOMEM;
-@@ -681,6 +691,7 @@ static int uv__fs_statfs(uv_fs_t* req) {
- stat_fs->f_files = buf.f_files;
- stat_fs->f_ffree = buf.f_ffree;
- req->ptr = stat_fs;
-+#endif // !defined(__serenity__)
- return 0;
- }
-
-@@ -1107,7 +1118,11 @@ static ssize_t uv__fs_write(uv_fs_t* req) {
- r = writev(req->file, (struct iovec*) req->bufs, req->nbufs);
- } else {
- if (req->nbufs == 1) {
-+# if defined(__serenity__)
-+ r = -1;
-+# else
- r = pwrite(req->file, req->bufs[0].base, req->bufs[0].len, req->off);
-+# endif
- goto done;
- }
- #if HAVE_PREADV
-@@ -1117,7 +1132,11 @@ static ssize_t uv__fs_write(uv_fs_t* req) {
- if (no_pwritev) retry:
- # endif
- {
-+# if defined(__serenity__)
-+ r = -1;
-+# else
- r = pwrite(req->file, req->bufs[0].base, req->bufs[0].len, req->off);
-+# endif
- }
- # if defined(__linux__)
- else {
-@@ -1604,7 +1623,9 @@ static void uv__fs_work(struct uv__work* w) {
- X(COPYFILE, uv__fs_copyfile(req));
- X(FCHMOD, fchmod(req->file, req->mode));
- X(FCHOWN, fchown(req->file, req->uid, req->gid));
-+#ifndef __serenity__
- X(LCHOWN, lchown(req->path, req->uid, req->gid));
-+#endif
- X(FDATASYNC, uv__fs_fdatasync(req));
- X(FSTAT, uv__fs_fstat(req->file, &req->statbuf));
- X(FSYNC, uv__fs_fsync(req));
-@@ -1618,7 +1639,9 @@ static void uv__fs_work(struct uv__work* w) {
- X(MKSTEMP, uv__fs_mkstemp(req));
- X(OPEN, uv__fs_open(req));
- X(READ, uv__fs_read(req));
-+#ifndef __serenity__
- X(SCANDIR, uv__fs_scandir(req));
-+#endif
- X(OPENDIR, uv__fs_opendir(req));
- X(READDIR, uv__fs_readdir(req));
- X(CLOSEDIR, uv__fs_closedir(req));
-@@ -1628,7 +1651,9 @@ static void uv__fs_work(struct uv__work* w) {
- X(RMDIR, rmdir(req->path));
- X(SENDFILE, uv__fs_sendfile(req));
- X(STAT, uv__fs_stat(req->path, &req->statbuf));
-+#ifndef __serenity__
- X(STATFS, uv__fs_statfs(req));
-+#endif
- X(SYMLINK, symlink(req->path, req->new_path));
- X(UNLINK, unlink(req->path));
- X(UTIME, uv__fs_utime(req));
-@@ -1743,7 +1768,9 @@ int uv_fs_lchown(uv_loop_t* loop,
- uv_uid_t uid,
- uv_gid_t gid,
- uv_fs_cb cb) {
-+#ifndef __serenity__
- INIT(LCHOWN);
-+#endif
- PATH;
- req->uid = uid;
- req->gid = gid;
-@@ -1912,7 +1939,9 @@ int uv_fs_scandir(uv_loop_t* loop,
- const char* path,
- int flags,
- uv_fs_cb cb) {
-+#ifndef __serenity__
- INIT(SCANDIR);
-+#endif
- PATH;
- req->flags = flags;
- POST;
-@@ -2134,7 +2163,9 @@ int uv_fs_statfs(uv_loop_t* loop,
- uv_fs_t* req,
- const char* path,
- uv_fs_cb cb) {
-+#ifndef __serenity__
- INIT(STATFS);
-+#endif
- PATH;
- POST;
- }
-diff --git a/Utilities/cmlibuv/src/unix/poll.c b/Utilities/cmlibuv/src/unix/poll.c
-index 3d5022b..721423f 100644
---- a/Utilities/cmlibuv/src/unix/poll.c
-+++ b/Utilities/cmlibuv/src/unix/poll.c
-@@ -79,9 +79,11 @@ int uv_poll_init(uv_loop_t* loop, uv_poll_t* handle, int fd) {
- * Workaround for e.g. kqueue fds not supporting ioctls.
- */
- err = uv__nonblock(fd, 1);
-+#ifndef __serenity__
- if (err == UV_ENOTTY)
- if (uv__nonblock == uv__nonblock_ioctl)
- err = uv__nonblock_fcntl(fd, 1);
-+#endif
-
- if (err)
- return err;
-diff --git a/Utilities/cmlibuv/src/unix/process.c b/Utilities/cmlibuv/src/unix/process.c
-index 08aa2f3..135260f 100644
---- a/Utilities/cmlibuv/src/unix/process.c
-+++ b/Utilities/cmlibuv/src/unix/process.c
-@@ -129,6 +129,8 @@ static int uv__make_socketpair(int fds[2]) {
- return UV__ERR(errno);
-
- return 0;
-+#elif defined(__serenity__)
-+ return UV__ERR(ENOTSUP);
- #else
- int err;
-
-diff --git a/Utilities/cmlibuv/src/unix/stream.c b/Utilities/cmlibuv/src/unix/stream.c
-index 3b6da8d..3e2ed5e 100644
---- a/Utilities/cmlibuv/src/unix/stream.c
-+++ b/Utilities/cmlibuv/src/unix/stream.c
-@@ -985,13 +985,12 @@ uv_handle_type uv__handle_type(int fd) {
- case AF_UNIX:
- return UV_NAMED_PIPE;
- case AF_INET:
-- case AF_INET6:
- return UV_TCP;
- }
- }
-
- if (type == SOCK_DGRAM &&
-- (ss.ss_family == AF_INET || ss.ss_family == AF_INET6))
-+ (ss.ss_family == AF_INET))
- return UV_UDP;
-
- return UV_UNKNOWN_HANDLE;
---
-2.30.1
-
diff --git a/Ports/cmake/patches/0019-libuv-so_linger.patch b/Ports/cmake/patches/0019-libuv-so_linger.patch
deleted file mode 100644
index b41f8aaac4..0000000000
--- a/Ports/cmake/patches/0019-libuv-so_linger.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/Utilities/cmlibuv/src/unix/tcp.c 2021-02-12 22:52:26.980780866 +0330
-+++ b/Utilities/cmlibuv/src/unix/tcp.c 2021-02-12 22:54:10.670863712 +0330
-@@ -310,15 +310,19 @@ int uv_tcp_getpeername(const uv_tcp_t* h
-
- int uv_tcp_close_reset(uv_tcp_t* handle, uv_close_cb close_cb) {
- int fd;
-+#ifndef __serenity__
- struct linger l = { 1, 0 };
-+#endif
-
- /* Disallow setting SO_LINGER to zero due to some platform inconsistencies */
- if (handle->flags & UV_HANDLE_SHUTTING)
- return UV_EINVAL;
-
- fd = uv__stream_fd(handle);
-+#ifndef __serenity__
- if (0 != setsockopt(fd, SOL_SOCKET, SO_LINGER, &l, sizeof(l)))
- return UV__ERR(errno);
-+#endif
-
- uv_close((uv_handle_t*) handle, close_cb);
- return 0;
diff --git a/Ports/cmake/patches/0025-uv-platform.patch b/Ports/cmake/patches/0025-uv-platform.patch
deleted file mode 100644
index 95a7258fa4..0000000000
--- a/Ports/cmake/patches/0025-uv-platform.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt
-index 92d2411..e6bf241 100644
---- a/Utilities/cmlibuv/CMakeLists.txt
-+++ b/Utilities/cmlibuv/CMakeLists.txt
-@@ -354,6 +354,18 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX")
- )
- endif()
-
-+if (CMAKE_SYSTEM_NAME STREQUAL "SerenityOS")
-+ list(APPEND uv_headers
-+ include/uv/posix.h
-+ )
-+ list(APPEND uv_sources
-+ src/unix/posix-hrtime.c
-+ src/unix/posix-poll.c
-+ src/unix/no-fsevents.c
-+ src/unix/no-proctitle.c
-+ )
-+endif()
-+
- include_directories(
- ${uv_includes}
- ${KWSYS_HEADER_ROOT}
diff --git a/Ports/cmake/patches/0027-libuv-platform-serenity.patch b/Ports/cmake/patches/0027-libuv-platform-serenity.patch
deleted file mode 100644
index 471b830f54..0000000000
--- a/Ports/cmake/patches/0027-libuv-platform-serenity.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Utilities/cmlibuv/include/uv/unix.h b/Utilities/cmlibuv/include/uv/unix.h
-index fb3e97d..a59192f 100644
---- a/Utilities/cmlibuv/include/uv/unix.h
-+++ b/Utilities/cmlibuv/include/uv/unix.h
-@@ -78,6 +78,8 @@
- # include "posix.h"
- #elif defined(__QNX__)
- # include "posix.h"
-+#elif defined(__serenity__)
-+# include "posix.h"
- #endif
-
- #ifndef NI_MAXHOST
diff --git a/Ports/cmake/patches/ReadMe.md b/Ports/cmake/patches/ReadMe.md
index 51a8487ff0..037a1f88cc 100644
--- a/Ports/cmake/patches/ReadMe.md
+++ b/Ports/cmake/patches/ReadMe.md
@@ -11,27 +11,6 @@ This patch is a big hack to wipe wide strings out of the codebase; naturally, it
- [X] Resolves issue(s) with our side of things
- [X] Hack
-## `0008-unix-stuff.patch`
-
-This patch removes the use of `{get,set}priority()` as we do not support it.
-it also removes two functions with the correct conditions (the same conditions as their dependents are removed with).
-
-### Status
-- [X] Local?
-- [X] Should be merged to upstream? Partially.
-- [X] Resolves issue(s) with our side of things
-- [X] Hack
-
-## `0009-purge-non-serenity-syscalls.patch`
-
-This patch removes syscalls and options not defined in serenity.
-
-### Status
-- [X] Local?
-- [ ] Should be merged to upstream?
-- [X] Resolves issue(s) with our side of things
-- [X] Hack
-
## `0010-don-t-use-siginfo.patch`
We don't support SIGINFO. This patch removes uses of SIGINFO.
@@ -91,26 +70,6 @@ These two defines make GCC very sad. reasons are unknown at this time.
- [X] Resolves issue(s) with our side of things
- [X] Hack
-## `0019-libuv-so_linger.patch`
-
-We don't have `SO_LINGER` or its associated struct. This patch removes them.
-
-### Status
-- [X] Local?
-- [ ] Should be merged to upstream?
-- [X] Resolves issue(s) with our side of things
-- [X] Hack
-
-## `0025-uv-platform.patch`
-
-This patch adds the definitions necessary to compile libuv on Serenity.
-
-### Status
-- [ ] Local?
-- [X] Should be merged to upstream? If we want to have cmake support serenity out of the box.
-- [ ] Resolves issue(s) with our side of things
-- [ ] Hack
-
## `0026-curl-struct-stat.patch`
For unknown reasons, `curl_setup_once.h` does not include `sys/stat.h`. this patch includes `sys/stat.h`.
@@ -121,16 +80,6 @@ For unknown reasons, `curl_setup_once.h` does not include `sys/stat.h`. this pat
- [X] Resolves issue(s) with our side of things
- [X] Hack
-## `0027-libuv-platform-serenity.patch`
-
-This patch adds a platform-specific conditional include to `uv/unix.h`.
-
-### Status
-- [ ] Local?
-- [X] Should be merged to upstream?
-- [ ] Resolves issue(s) with our side of things
-- [ ] Hack
-
## `0028-cmake-disable-tests.patch`
We don't care about building tests for now, and it makes the compilation much faster.