1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:47:37 +00:00

Build: Switch to CMake :^)

Closes https://github.com/SerenityOS/serenity/issues/2080
This commit is contained in:
Sergey Bugaev 2020-05-06 18:40:06 +03:00 committed by Andreas Kling
parent 49727ffee4
commit 450a2a0f9c
236 changed files with 1774 additions and 2337 deletions

View file

@ -0,0 +1,65 @@
set(LIBC_SOURCES
arpa/inet.cpp
assert.cpp
crt0.cpp
ctype.cpp
cxxabi.cpp
dirent.cpp
dlfcn.cpp
fcntl.cpp
getopt.cpp
grp.cpp
ioctl.cpp
libcinit.cpp
libgen.cpp
locale.cpp
malloc.cpp
mman.cpp
mntent.cpp
netdb.cpp
poll.cpp
pwd.cpp
qsort.cpp
scanf.cpp
sched.cpp
serenity.cpp
setjmp.S
signal.cpp
stat.cpp
stdio.cpp
stdlib.cpp
string.cpp
strings.cpp
syslog.cpp
sys/ptrace.cpp
sys/select.cpp
sys/socket.cpp
sys/uio.cpp
sys/wait.cpp
termcap.cpp
termios.cpp
time.cpp
times.cpp
ulimit.cpp
unistd.cpp
utime.cpp
utsname.cpp
wchar.cpp
)
file(GLOB AK_SOURCES "../../AK/*.cpp")
file(GLOB ELF_SOURCES "../LibELF/*.cpp")
set(ELF_SOURCES ${ELF_SOURCES} ../LibELF/Arch/i386/plt_trampoline.S)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSERENITY_LIBC_BUILD")
add_library(crt0 STATIC crt0.cpp)
add_custom_command(
TARGET crt0
COMMAND install -D $<TARGET_OBJECTS:crt0> ${CMAKE_INSTALL_PREFIX}/usr/lib/crt0.o
)
set(SOURCES ${LIBC_SOURCES} ${AK_SOURCES} ${ELF_SOURCES})
serenity_libc(LibC c)
target_link_libraries(LibC crt0)
add_dependencies(LibC LibM)

View file

@ -1,115 +0,0 @@
AK_OBJS = \
../../AK/Base64.o \
../../AK/FileSystemPath.o \
../../AK/FlyString.o \
../../AK/JsonParser.o \
../../AK/JsonValue.o \
../../AK/LogStream.o \
../../AK/MappedFile.o \
../../AK/SharedBuffer.o \
../../AK/String.o \
../../AK/StringBuilder.o \
../../AK/StringImpl.o \
../../AK/StringUtils.o \
../../AK/StringView.o \
../../AK/URL.o \
../../AK/Utf8View.o
LIBC_OBJS = \
stdio.o \
unistd.o \
string.o \
strings.o \
mman.o \
dirent.o \
malloc.o \
stdlib.o \
time.o \
utsname.o \
assert.o \
signal.o \
getopt.o \
scanf.o \
pwd.o \
grp.o \
times.o \
termcap.o \
stat.o \
mntent.o \
ctype.o \
fcntl.o \
termios.o \
ulimit.o \
qsort.o \
ioctl.o \
utime.o \
sys/select.o \
sys/socket.o \
sys/wait.o \
sys/uio.o \
sys/ptrace.o \
poll.o \
locale.o \
arpa/inet.o \
netdb.o \
sched.o \
dlfcn.o \
libgen.o \
wchar.o \
serenity.o \
syslog.o \
cxxabi.o \
libcinit.o
ELF_OBJS = \
../LibELF/DynamicObject.o \
../LibELF/DynamicLoader.o \
../LibELF/Loader.o \
../LibELF/Image.o \
../LibELF/Validation.o
OBJS = $(AK_OBJS) $(LIBC_OBJS) $(ELF_OBJS)
EXTRA_OBJS = \
setjmp.ao \
crti.ao \
crtn.ao \
../LibELF/Arch/i386/plt_trampoline.ao
crt0.o: crt0.cpp
crtio.o: crti.ao
$(QUIET) cp crti.ao crti.o
crtn.o: crtin.ao
$(QUIET) cp crtn.ao crtn.o
EXTRA_CLEAN = crt0.d crt0.o
DEFINES = -DSERENITY_LIBC_BUILD $(EXTRA_LIBC_DEFINES)
LIBRARY = libc.a
POST_LIBRARY_BUILD = $(QUIET) $(MAKE) install
all: crt0.o $(EXTRA_OBJS) $(LIBRARY)
install:
mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/sys/
mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/bits/
mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/netinet/
mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/net/
mkdir -p $(SERENITY_BASE_DIR)/Root/usr/include/arpa/
mkdir -p $(SERENITY_BASE_DIR)/Root/usr/lib/
cp *.h $(SERENITY_BASE_DIR)/Root/usr/include/
cp sys/*.h $(SERENITY_BASE_DIR)/Root/usr/include/sys/
cp bits/*.h $(SERENITY_BASE_DIR)/Root/usr/include/bits/
cp arpa/*.h $(SERENITY_BASE_DIR)/Root/usr/include/arpa/
cp net/*.h $(SERENITY_BASE_DIR)/Root/usr/include/net/
cp netinet/*.h $(SERENITY_BASE_DIR)/Root/usr/include/netinet/
cp libc.a $(SERENITY_BASE_DIR)/Root/usr/lib/
cp crt0.o $(SERENITY_BASE_DIR)/Root/usr/lib/
cp crti.ao $(SERENITY_BASE_DIR)/Root/usr/lib/crti.o
cp crtn.ao $(SERENITY_BASE_DIR)/Root/usr/lib/crtn.o
include ../../Makefile.common