Serenity: Tracking: CMake Build

Created on 3 May 2020  路  6Comments  路  Source: SerenityOS/serenity

I wanted to start a discussion for what's left in terms of work for your experimental CMake port of the build system.
I'm willing to help out / improve the state of affairs, as I'm a bit frustrated with the current state of things.

Most helpful comment

I've now successfully built a bunch of libraries and an executable (the Shell):

[ 48%] Linking CXX static library libc.a
[ 48%] Built target LibC
[ 49%] Built target LibM
[ 51%] Built target LibPthread
[ 72%] Built target LibCore
[ 87%] Built target LibGfx
[ 89%] Built target LibThread
[ 95%] Built target LibMarkdown
[ 96%] Built target LibPCIDB
[ 98%] Built target LibLine
[ 99%] Linking CXX executable Shell
[100%] Built target Shell

Getting the Shell to build meant figuring out the right way to make CMake actually pick up LibC/LibM and so on, but it works now.

All 6 comments

The cmake_experiment branch is as far as I got. It's pretty old at this point but nothing has really changed other than files and directories being added in various places.

The last issue I remember struggling with was getting it to build crt0.o in LibC before everything else since nothing can build without it.

Someone who is comfortable with CMake could probably pick up the branch and make it work. I'm sure it can be greatly simplified as well.

I'm going to (attempt) to work on this. I've already got LibC/crt0 stuff sorted out.

I've now successfully built a bunch of libraries and an executable (the Shell):

[ 48%] Linking CXX static library libc.a
[ 48%] Built target LibC
[ 49%] Built target LibM
[ 51%] Built target LibPthread
[ 72%] Built target LibCore
[ 87%] Built target LibGfx
[ 89%] Built target LibThread
[ 95%] Built target LibMarkdown
[ 96%] Built target LibPCIDB
[ 98%] Built target LibLine
[ 99%] Linking CXX executable Shell
[100%] Built target Shell

Getting the Shell to build meant figuring out the right way to make CMake actually pick up LibC/LibM and so on, but it works now.

make -j8 -i
[  0%] Built target boot
[  0%] Built target TestModule
[  0%] Built target crt0
[  0%] Building CXX object Meta/Lagom/CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/TCPSocket.cpp.o
[  0%] Building CXX object Meta/Lagom/CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/UDPSocket.cpp.o
[  0%] Building CXX object Meta/Lagom/CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/UDPServer.cpp.o
[  1%] Building CXX object Meta/Lagom/CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/TCPServer.cpp.o
[  1%] Built target LibM
[  1%] Building CXX object Libraries/LibC/CMakeFiles/LibC.dir/string.cpp.o
/Users/diver/serenity/Libraries/LibC/string.cpp:141:1: error: this use of "defined" may not be portable [-Werror=expansion-to-defined]
  141 | #if ARCH(I386)
      | ^~~~~~~~~~~~
[ 13%] Built target Kernel
/Users/diver/serenity/Libraries/LibCore/TCPSocket.cpp:46:44: error: use of undeclared identifier 'SOCK_NONBLOCK'
    int fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);
                                           ^
/Users/diver/serenity/Libraries/LibCore/TCPServer.cpp:40:42: error: use of undeclared identifier 'SOCK_NONBLOCK'
    m_fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
                                         ^
/Users/diver/serenity/Libraries/LibCore/TCPServer.cpp:40:58: error: use of undeclared identifier 'SOCK_CLOEXEC'
    m_fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
                                                         ^
1 error generated.
/Users/diver/serenity/Libraries/LibCore/UDPSocket.cpp:46:43: error: use of undeclared identifier 'SOCK_NONBLOCK'
    int fd = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK, 0);
                                          ^
2 errors generated.
/Users/diver/serenity/Libraries/LibCore/UDPServer.cpp:39:41: error: use of undeclared identifier 'SOCK_NONBLOCK'
    m_fd = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
                                        ^
/Users/diver/serenity/Libraries/LibCore/UDPServer.cpp:39:57: error: use of undeclared identifier 'SOCK_CLOEXEC'
    m_fd = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
                                                        ^
1 error generated.
2 errors generated.
[ 13%] Linking CXX static library libLagomCore.a
cc1plus: all warnings being treated as errors
[ 13%] Linking CXX static library libc.a
ar: CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/TCPServer.cpp.o: No such file or directory
ar: CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/TCPSocket.cpp.o: No such file or directory
ar: CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/UDPServer.cpp.o: No such file or directory
ar: CMakeFiles/LagomCore.dir/__/__/Libraries/LibCore/UDPSocket.cpp.o: No such file or directory
[ 16%] Built target LagomCore
/Users/diver/serenity/Toolchain/Local/bin/i686-pc-serenity-ar: CMakeFiles/LibC.dir/string.cpp.o: No such file or directory
[ 22%] Built target LibC
[ 22%] Linking CXX executable IPCCompiler
[ 22%] Linking CXX executable FormCompiler
[ 22%] Linking CXX executable TestVector
[ 22%] Linking CXX executable TestOptional
[ 22%] Building CXX object AK/Tests/CMakeFiles/TestWeakPtr.dir/TestWeakPtr.cpp.o
[ 22%] Linking CXX executable Generate_CSS_PropertyID_h
[ 22%] Linking CXX executable Generate_CSS_PropertyID_cpp
[ 22%] Linking CXX executable TestCircularDeque
/Users/diver/serenity/AK/Tests/TestWeakPtr.cpp:37:9: error: private field 'm_member' is not used [-Werror,-Wunused-private-field]
    int m_member { 123 };
        ^
1 error generated.
[ 22%] Linking CXX executable TestWeakPtr
clang: error: no such file or directory: 'CMakeFiles/TestWeakPtr.dir/TestWeakPtr.cpp.o'
[ 22%] Built target TestWeakPtr
[ 22%] Linking CXX executable TestJSON
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ 22%] Built target TestVector
[ 22%] Built target TestOptional
[ 22%] Built target IPCCompiler
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ 22%] Built target Generate_CSS_PropertyID_h
[ 23%] Built target Generate_CSS_PropertyID_cpp
[ 23%] Built target FormCompiler
[ 23%] Built target TestCircularDeque
[ 23%] Linking CXX executable TestUtf8
[ 23%] Linking CXX executable TestString
[ 23%] Linking CXX executable TestURL
[ 23%] Linking CXX executable TestHashMap
[ 23%] Linking CXX executable TestFixedArray
[ 24%] Linking CXX executable TestNonnullRefPtr
[ 24%] Linking CXX executable TestStringUtils
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ 24%] Built target TestJSON
[ 24%] Linking CXX executable TestStringView
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clangclangclangclang: : : : errorclang: errorerrorerror: : : : linker command failed with exit code 1 (use -v to see invocation)linker command failed with exit code 1 (use -v to see invocation)errorlinker command failed with exit code 1 (use -v to see invocation)linker command failed with exit code 1 (use -v to see invocation):


linker command failed with exit code 1 (use -v to see invocation)

ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ 24%] Built target TestHashMap
[ 24%] Built target TestString
[ 24%] Built target TestURL
[ 24%] Built target TestFixedArray
[ 24%] Built target TestUtf8
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ 24%] Built target TestNonnullRefPtr
[ 24%] Built target TestStringUtils
[ 24%] Linking CXX executable TestAtomic
[ 24%] Building CXX object AK/Tests/CMakeFiles/TestRefPtr.dir/TestRefPtr.cpp.o
[ 24%] Linking CXX executable TestFileSystemPath
[ 24%] Linking CXX executable TestCircularQueue
[ 24%] Linking CXX executable TestQueue
[ 24%] Linking CXX executable TestBitmap
[ 24%] Linking CXX executable TestBinarySearch
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
/Users/diver/serenity/AK/Tests/TestRefPtr.cpp:82:12: error: explicitly assigning value of variable of type 'RefPtr<Object>' to itself
      [-Werror,-Wself-assign-overloaded]
    object = object;
    ~~~~~~ ^ ~~~~~~
[ 25%] Built target TestStringView
1 error generated.
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/AudioServer/AudioServerEndpoint.h'.  Stop.
[ 25%] Linking CXX executable TestRefPtr
[ 25%] Built target generate_AudioServerEndpoint.h
clang: error: no such file or directory: 'CMakeFiles/TestRefPtr.dir/TestRefPtr.cpp.o'
[ 25%] Built target TestRefPtr
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/AudioServer/AudioClientEndpoint.h'.  Stop.
[ 28%] Built target LibCore
[ 29%] Built target generate_AudioClientEndpoint.h
[ 29%] Built target LibCrypto
[ 30%] Built target LibDebug
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/LaunchServer/LaunchClientEndpoint.h'.  Stop.
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/LaunchServer/LaunchServerEndpoint.h'.  Stop.
[ 30%] Built target generate_LaunchClientEndpoint.h
[ 30%] Built target generate_LaunchServerEndpoint.h
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/WindowServer/WindowServerEndpoint.h'.  Stop.
[ 30%] Built target generate_WindowServerEndpoint.h
[ 32%] Built target LibGfx
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/NotificationServer/NotificationClientEndpoint.h'.  Stop.
[ 32%] Built target LibPthread
[ 32%] Built target generate_NotificationClientEndpoint.h
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/NotificationServer/NotificationServerEndpoint.h'.  Stop.
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/WindowServer/WindowClientEndpoint.h'.  Stop.
[ 32%] Built target generate_NotificationServerEndpoint.h
[ 32%] Built target generate_WindowClientEndpoint.h
[ 33%] Built target LibTLS
[ 34%] Built target LibLine
[ 38%] Built target LibJS
[ 38%] Built target LibMarkdown
[ 39%] Built target LibPCIDB
make[2]: *** make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/ProtocolServer/ProtocolClientEndpoint.h'No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/ProtocolServer/ProtocolServerEndpoint.h'.  Stop.
.  Stop.
[ 39%] Built target generate_ProtocolServerEndpoint.h
[ 39%] Built target generate_ProtocolClientEndpoint.h
[ 39%] Built target LibX86
[ 39%] Built target LibTextCodec
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/DHCPClient/DHCPClient'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/LookupServer/LookupServer'.  Stop.
[ 41%] Built target DHCPClient
[ 41%] Built target LookupServer
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/SystemServer/SystemServer'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/TelnetServer/TelnetServer'.  Stop.
[ 41%] Built target SystemServer
[ 41%] Built target TelnetServer
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/TTYServer/TTYServer'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/Debugger/Debugger'.  Stop.
[ 41%] Built target Debugger
[ 42%] Built target TTYServer
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/DynamicLink/LinkDemo/LinkDemo'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Shell/Shell'.  Stop.
[ 42%] Built target LinkDemo
[ 43%] Built target Shell
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/yes'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/DynamicLink/LinkLib/libDynamicLib.dylib'.  Stop.
[ 44%] Built target DynamicLib
[ 44%] Built target yes
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/purge'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/wc'.  Stop.
[ 44%] Built target purge
[ 44%] Built target wc
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/id'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/useradd'.  Stop.
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clangclang: : errorerror: : linker command failed with exit code 1 (use -v to see invocation)linker command failed with exit code 1 (use -v to see invocation)

ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
[ 46%] Built target id
[ 46%] Built target useradd
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ 47%] Built target TestAtomic
[ 47%] Built target TestCircularQueue
[ 47%] Built target TestFileSystemPath
[ 47%] Built target TestQueue
ld: archive has no table of contents file '../../Meta/Lagom/libLagomCore.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/nc'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/unzip'.  Stop.
[ 47%] Built target TestBitmap
[ 47%] Built target TestBinarySearch
[ 47%] Built target nc
[ 47%] Built target unzip
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/tt'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/strace'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/lsirq'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/true'.  Stop.
[ 48%] Built target tt
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/kill'.  Stop.
[ 49%] Built target strace
[ 49%] Built target lsirq
[ 49%] Built target true
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/uname'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/tty'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/touch'.  Stop.
[ 49%] Built target kill
[ 49%] Built target uname
[ 49%] Built target tty
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/echo'.  Stop.
[ 49%] Built target touch
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/profile'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/test_io'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/false'.  Stop.
[ 50%] Built target echo
[ 50%] Built target profile
[ 50%] Built target test_io
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/test_efault'.  Stop.
[ 50%] Built target false
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/test-bindtodevice'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/tail'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/sysctl'.  Stop.
[ 50%] Built target test-bindtodevice
[ 50%] Built target test_efault
[ 51%] Built target tail
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/whoami'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/stat'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/chgrp'.  Stop.
[ 51%] Built target sysctl
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/rm'.  Stop.
[ 51%] Built target whoami
[ 51%] Built target stat
[ 51%] Built target chgrp
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/uptime'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/reboot'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/ps'.  Stop.
[ 52%] Built target rm
[ 52%] Built target uptime
[ 52%] Built target reboot
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/su'.  Stop.
[ 52%] Built target ps
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/realpath'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/pidof'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/ping'.  Stop.
[ 52%] Built target su
[ 52%] Built target realpath
[ 52%] Built target ping
[ 52%] Built target pidof
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/which'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/shutdown'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/more'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/userdel'.  Stop.
[ 52%] Built target shutdown
[ 52%] Built target userdel
[ 53%] Built target more
[ 53%] Built target which
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/modload'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/mknod'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/modunload'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/test-crypto'.  Stop.
[ 53%] Built target modload
[ 53%] Built target mknod
[ 53%] Built target modunload
[ 53%] Built target test-crypto
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/killall'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/sleep'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/date'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/mkdir'.  Stop.
[ 53%] Built target sleep
[ 54%] Built target killall
[ 54%] Built target date
[ 54%] Built target mkdir
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/man'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/ln'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/rmdir'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/chown'.  Stop.
[ 54%] Built target man
[ 54%] Built target ln
[ 54%] Built target rmdir
[ 54%] Built target chown
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/ls'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/top'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/cut'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/keymap'.  Stop.
[ 54%] Built target ls
[ 55%] Built target top
[ 55%] Built target cut
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/head'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/js'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/gron'.  Stop.
[ 55%] Built target keymap
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/dmesg'.  Stop.
[ 55%] Built target head
[ 55%] Built target js
[ 56%] Built target gron
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/sync'.  Stop.
[ 56%] Built target dmesg
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/du'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/jp'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/mount'.  Stop.
[ 56%] Built target sync
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/hostname'.  Stop.
[ 56%] Built target du
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/syscall'.  Stop.
[ 56%] Built target jp
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/host'.  Stop.
[ 56%] Built target mount
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/ifconfig'.  Stop.
[ 56%] Built target hostname
[ 56%] Built target syscall
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/functrace'.  Stop.
[ 56%] Built target host
[ 56%] Built target ifconfig
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/flock'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/lspci'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/mv'.  Stop.
[ 56%] Built target functrace
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/fgrep'.  Stop.
[ 56%] Built target flock
[ 56%] Built target lspci
[ 56%] Built target mv
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/allocate'make[2]: *** .  Stop.
No rule to make target `Libraries/LibC/libc.a', needed by `Userland/nl'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/arp'.  Stop.
[ 56%] Built target fgrep
[ 56%] Built target nl
[ 56%] Built target allocate
[ 56%] Built target arp
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/df'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/clear'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/disk_benchmark'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/crash'.  Stop.
[ 57%] Built target df
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/tee'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/umount'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/disasm'.  Stop.
[ 57%] Built target clear
[ 57%] Built target disk_benchmark
[ 57%] Built target crash
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/chmod'.  Stop.
[ 57%] Built target tee
[ 57%] Built target disasm
[ 57%] Built target umount
[ 57%] Built target chmod
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/sort'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/cat'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/cp'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/chroot'.  Stop.
[ 57%] Built target sort
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/basename'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/cal'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/env'.  Stop.
[ 58%] Built target cat
[ 58%] Built target cp
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/md'.  Stop.
[ 58%] Built target chroot
[ 58%] Built target basename
[ 58%] Built target cal
[ 58%] Built target env
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/truncate'.  Stop.
[ 59%] Built target md
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/tr'.  Stop.
[ 59%] Built target truncate
[ 59%] Built target tr
[ 60%] Built target LibIPC
[ 60%] Built target LibThread
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/LaunchServer/LaunchServerEndpoint.h'.  Stop.
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/AudioServer/AudioClientEndpoint.h'.  Stop.
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/WindowServer/WindowClientEndpoint.h'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/AudioServer/AudioServer'.  Stop.
[ 60%] Built target LibHTTP
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/LaunchServer/LaunchServer'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/WindowServer/WindowServer'.  Stop.
[ 60%] Building CXX object Services/LaunchServer/CMakeFiles/LaunchServer.dir/ClientConnection.cpp.o
[ 60%] Built target AudioServer
[ 60%] Building CXX object Services/LaunchServer/CMakeFiles/LaunchServer.dir/main.cpp.o
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/ProtocolServer/ProtocolClientEndpoint.h'.  Stop.
[ 62%] Built target WindowServer
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/ProtocolServer/ProtocolServer'.  Stop.
[ 62%] Building CXX object Libraries/LibDesktop/CMakeFiles/LibDesktop.dir/Launcher.cpp.o
[ 62%] Built target LibProtocol
[ 62%] Built target LibAudio
[ 63%] Built target ProtocolServer
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/WebServer/WebServer'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/pro'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/aplay'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/avol'.  Stop.
[ 64%] Built target WebServer
[ 65%] Built target pro
[ 65%] Built target avol
[ 66%] Built target aplay
[ 73%] Built target LibGUI
make[2]: *** No rule to make target `DevTools/IPCCompiler/IPCCompiler', needed by `Services/NotificationServer/NotificationClientEndpoint.h'.  Stop.
make[2]: *** No rule to make target `Libraries/LibWeb/CodeGenerators/Generate_CSS_PropertyID_h', needed by `Libraries/LibWeb/CSS/PropertyID.h'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/NotificationServer/NotificationServer'.  Stop.
make[2]: *** No rule to make target `Libraries/LibWeb/CodeGenerators/Generate_CSS_PropertyID_cpp', needed by `Libraries/LibWeb/CSS/PropertyID.cpp'.  Stop.
[ 74%] Built target NotificationServer
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/About/About'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/SystemMenu/SystemMenu'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Services/Taskbar/Taskbar'.  Stop.
[ 83%] Built target LibWeb
[ 83%] Built target About
[ 83%] Built target SystemMenu
[ 83%] Built target Taskbar
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/Calculator/Calculator'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/Calendar/Calendar'.  Stop.
[ 83%] Built target Calculator
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/DisplaySettings/DisplaySettings'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/FontEditor/FontEditor'.  Stop.
make[2]: *** No rule to make target `Libraries/LibWeb/libweb.a', needed by `Applications/Help/Help'.  Stop.
[ 84%] Built target Calendar
[ 84%] Built target DisplaySettings
[ 84%] Built target FontEditor
[ 84%] Built target Help
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/HexEditor/HexEditor'.  Stop.
[ 85%] Built target HexEditor
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/QuickShow/QuickShow'.  Stop.
make[2]: *** No rule to make target `Libraries/LibWeb/libweb.a', needed by `Applications/IRCClient/IRCClient'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/Piano/Piano'.  Stop.
[ 85%] Built target QuickShow
[ 86%] Built target IRCClient
In file included from /Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:27:
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:44: error: 'GetHandlersForURLResponse' is not a member of 'Messages::LaunchServer'
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/PaintBrush/PaintBrush'.  Stop.
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:69: error: template argument 1 is invalid
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                                                     ^
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:108: error: 'GetHandlersForURL' in namespace 'Messages::LaunchServer' does not name a type
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                                                                                            ^~~~~~~~~~~~~~~~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:71: error: 'virtual int LaunchServer::ClientConnection::handle(const int&)' marked 'override', but does not override
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                                                       ^~~~~~
[ 87%] Built target Piano
/Users/diver/serenity/Libraries/LibDesktop/Launcher.cpp: In static member function 'static AK::Vector<AK::String> Desktop::Launcher::get_handlers_for_url(const AK::URL&)':
/Users/diver/serenity/Libraries/LibDesktop/Launcher.cpp:63:58: error: 'GetHandlersForURL' is not a member of 'Messages::LaunchServer'
   63 |     return connection->send_sync<Messages::LaunchServer::GetHandlersForURL>(url.to_string())->handlers();
      |                                                          ^~~~~~~~~~~~~~~~~
/Users/diver/serenity/Libraries/LibDesktop/Launcher.cpp:63:92: error: no matching function for call to 'Desktop::LaunchServerConnection::send_sync<<expression error> >(AK::String)'
   63 |     return connection->send_sync<Messages::LaunchServer::GetHandlersForURL>(url.to_string())->handlers();
      |                                                                                            ^
In file included from /Users/diver/serenity/Libraries/LibDesktop/Launcher.cpp:31:
/Users/diver/serenity/Libraries/LibIPC/ServerConnection.h:123:48: note: candidate: 'template<class RequestType, class ... Args> AK::OwnPtr<typename RequestType::ResponseType> IPC::ServerConnection<LocalEndpoint, PeerEndpoint>::send_sync(Args&& ...) [with RequestType = RequestType; Args = {Args ...}; LocalEndpoint = LaunchClientEndpoint; PeerEndpoint = LaunchServerEndpoint]'
  123 |     OwnPtr<typename RequestType::ResponseType> send_sync(Args&&... args)
      |                                                ^~~~~~~~~
/Users/diver/serenity/Libraries/LibIPC/ServerConnection.h:123:48: note:   template argument deduction/substitution failed:
/Users/diver/serenity/Libraries/LibDesktop/Launcher.cpp:63:92: error: template argument 1 is invalid
   63 |     return connection->send_sync<Messages::LaunchServer::GetHandlersForURL>(url.to_string())->handlers();
      |                                                                                            ^
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/SoundPlayer/SoundPlayer'.  Stop.
In file included from /Users/diver/serenity/Services/LaunchServer/main.cpp:27:
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:44: error: 'GetHandlersForURLResponse' is not a member of 'Messages::LaunchServer'
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:69: error: template argument 1 is invalid
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                                                     ^
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:108: error: 'GetHandlersForURL' in namespace 'Messages::LaunchServer' does not name a type
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                                                                                            ^~~~~~~~~~~~~~~~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.h:47:71: error: 'virtual int LaunchServer::ClientConnection::handle(const int&)' marked 'override', but does not override
   47 |     virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override;
      |                                                                       ^~~~~~
[ 88%] Built target PaintBrush
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:63:32: error: 'GetHandlersForURLResponse' is not a member of 'Messages::LaunchServer'
   63 | OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> ClientConnection::handle(const Messages::LaunchServer::GetHandlersForURL& request)
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:63:57: error: template argument 1 is invalid
   63 | OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> ClientConnection::handle(const Messages::LaunchServer::GetHandlersForURL& request)
      |                                                         ^
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:63:114: error: 'GetHandlersForURL' in namespace 'Messages::LaunchServer' does not name a type
   63 | OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> ClientConnection::handle(const Messages::LaunchServer::GetHandlersForURL& request)
      |                                                                                                                  ^~~~~~~~~~~~~~~~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp: In member function 'virtual int LaunchServer::ClientConnection::handle(const int&)':
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:65:21: error: request for member 'url' in 'request', which is of non-class type 'const int'
   65 |     URL url(request.url());
      |                     ^~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:67:41: error: 'GetHandlersForURLResponse' is not a member of 'Messages::LaunchServer'
   67 |     return make<Messages::LaunchServer::GetHandlersForURLResponse>(result);
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:67:74: error: no matching function for call to 'make<<expression error> >(AK::Vector<AK::String>&)'
   67 |     return make<Messages::LaunchServer::GetHandlersForURLResponse>(result);
      |                                                                          ^
In file included from /Users/diver/serenity/./AK/OwnPtr.h:29,
                 from /Users/diver/serenity/Services/LaunchServer/LaunchServerEndpoint.h:3,
                 from /Users/diver/serenity/Services/LaunchServer/ClientConnection.h:29,
                 from /Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:27:
/Users/diver/serenity/./AK/NonnullOwnPtr.h:185:1: note: candidate: 'template<class T, class ... Args> AK::NonnullOwnPtr<T> AK::make(Args&& ...)'
  185 | make(Args&&... args)
      | ^~~~
/Users/diver/serenity/./AK/NonnullOwnPtr.h:185:1: note:   template argument deduction/substitution failed:
/Users/diver/serenity/Services/LaunchServer/ClientConnection.cpp:67:74: error: template argument 1 is invalid
   67 |     return make<Messages::LaunchServer::GetHandlersForURLResponse>(result);
      |                                                                          ^
[ 89%] Built target SoundPlayer
make[2]: *** No rule to make target `Libraries/LibWeb/libweb.a', needed by `Applications/TextEditor/TextEditor'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/Welcome/Welcome'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Applications/SystemMonitor/SystemMonitor'.  Stop.
[ 90%] Built target TextEditor
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Games/Minesweeper/Minesweeper'.  Stop.
[ 90%] Built target Welcome
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Games/Snake/Snake'.  Stop.
[ 91%] Built target SystemMonitor
[ 91%] Built target Minesweeper
[ 91%] Built target Snake
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Games/Solitaire/Solitaire'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `DevTools/Inspector/Inspector'.  Stop.
[ 91%] Built target Solitaire
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `DevTools/ProfileViewer/ProfileViewer'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `DevTools/VisualBuilder/VisualBuilder'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `MenuApplets/Audio/Audio.MenuApplet'.  Stop.
[ 91%] Built target Inspector
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `MenuApplets/Clock/Clock.MenuApplet'.  Stop.
[ 92%] Built target ProfileViewer
[ 92%] Built target VisualBuilder
[ 92%] Built target Clock.MenuApplet
[ 92%] Built target Audio.MenuApplet
[ 92%] Linking CXX static library libdesktop.a
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `MenuApplets/ResourceGraph/ResourceGraph.MenuApplet'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `MenuApplets/UserName/UserName.MenuApplet'.  Stop.
[ 93%] Built target LaunchServer
[ 93%] Built target ResourceGraph.MenuApplet
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/Cube/Cube'.  Stop.
[ 93%] Built target UserName.MenuApplet
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/Fire/Fire'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/HelloWorld/HelloWorld'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/Mouse/Mouse'.  Stop.
[ 93%] Built target Cube
[ 93%] Built target Fire
[ 93%] Built target HelloWorld
[ 93%] Built target Mouse
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/Screensaver/Screensaver'.  Stop.
/Users/diver/serenity/Toolchain/Local/bin/i686-pc-serenity-ar: CMakeFiles/LibDesktop.dir/Launcher.cpp.o: No such file or directory
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Demos/WidgetGallery/WidgetGallery'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/pape'.  Stop.
[ 93%] Built target Screensaver
[ 93%] Built target WidgetGallery
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/paste'.  Stop.
[ 93%] Built target LibDesktop
[ 93%] Built target pape
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/notify'.  Stop.
make[2]: *** No rule to make target `Libraries/LibWeb/libweb.a', needed by `Userland/html'.  Stop.
make[2]: *** No rule to make target `Libraries/LibC/libc.a', needed by `Userland/copy'.  Stop.
[ 93%] Built target paste
[ 93%] Built target notify
[ 93%] Built target html
[ 94%] Built target copy
make[2]: *** No rule to make target `Libraries/LibDesktop/libdesktop.a', needed by `Applications/FileManager/FileManager'.  Stop.
make[2]: *** No rule to make target `Libraries/LibDesktop/libdesktop.a', needed by `Userland/open'.  Stop.
make[2]: *** No rule to make target `Libraries/LibWeb/libweb.a', needed by `Applications/Browser/Browser'.  Stop.
[ 94%] Built target LibVT
[ 95%] Built target FileManager
[ 96%] Built target open
[ 97%] Built target Browser
make[2]: *** No rule to make target `Libraries/LibDesktop/libdesktop.a', needed by `Applications/Terminal/Terminal'.  Stop.
[ 98%] Built target Terminal
make[2]: *** No rule to make target `Libraries/LibWeb/libweb.a', needed by `DevTools/HackStudio/HackStudio'.  Stop.
[100%] Built target HackStudio

Clean your source tree of the files produced by the old buildsystem. Like maybe checkout a version with the old buildsystem, run make clean, then go back to the new version.

Sorry for not responding sooner @bugaevc, It builds fine on OpenBSD with cmake 3.16.2 and ports gcc with a small patch.

$ mkdir -p Build
$ cd Build/
$ export CC=egcc
$ export CXX=eg++
$ cmake -DCMAKE_MAKE_PROGRAM=gmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ..
$ cmake --build . -j $(sysctl -n hw.ncpuonline)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e6694db44..3702fad58 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 3.17)
+cmake_minimum_required (VERSION 3.16)
 project (SerenityOS C CXX ASM)

 enable_testing()

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nvella picture nvella  路  6Comments

howar6hill picture howar6hill  路  3Comments

Quaker762 picture Quaker762  路  6Comments

nvella picture nvella  路  7Comments

xTibor picture xTibor  路  5Comments