blob: e6e47be217e3920ff46e860e716d61f79e781901 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# tooling
CXX = c++
CXXFLAGS = -std=c++23 -Os -Wall -Wextra
PKG_CONFIG = pkg-config
# CHANGE THIS: ladybird source tree
LADYBIRD = $(HOME)/clones/ladybird
# ^^^^^^^^^^^^^^^^^^^^^^^
BUILD = $(LADYBIRD)/Build/release
INCS = -I$(LADYBIRD) -I$(LADYBIRD)/Services -I$(LADYBIRD)/Libraries \
-I$(BUILD)/Lagom -I$(BUILD)/Lagom/Services -I$(BUILD)/Lagom/Libraries \
-I$(BUILD)/vcpkg_installed/x64-linux-dynamic/include \
$$($(PKG_CONFIG) --cflags sdl3 2>/dev/null)
# for patch
ROOT = $(PWD)
# ladybird libs
LAGOM_LIBS = -L$(BUILD)/lib \
-llagom-webview \
-llagom-web \
-llagom-js \
-llagom-gfx \
-llagom-url \
-llagom-core \
-llagom-coreminimal \
-llagom-ak \
-llagom-ipc \
-llagom-unicode \
-llagom-textcodec \
-llagom-gc \
-llagom-requests \
-llagom-http \
-llagom-crypto \
-llagom-tls \
-llagom-compress \
-llagom-xml \
-llagom-wasm \
-llagom-media \
-llagom-imagedecoderclient \
-llagom-devtools \
-llagom-database \
-llagom-filesystem \
-llagom-syntax \
-llagom-idl
# external libs
EXT_LIBS = $$($(PKG_CONFIG) --libs sdl3 sdl3-ttf 2>/dev/null) \
-L$(BUILD)/vcpkg_installed/x64-linux-dynamic/lib \
-lfontconfig
# main() wrapper (static)
MAIN_LIB = $(BUILD)/lib/liblagom-main.a
LIBS = $(MAIN_LIB) $(LAGOM_LIBS) $(EXT_LIBS) -lpthread
# rpath
LDFLAGS = -Wl,-rpath,$(BUILD)/lib -Wl,-rpath,$(BUILD)/vcpkg_installed/x64-linux-dynamic/lib
# sources
SRCDIR = quartz
SRC = $(SRCDIR)/quartz.cpp
OBJ = $(SRC:.cpp=.o)
BIN = quartz/quartz
all: $(BIN)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
$(SRCDIR)/%.o: $(SRCDIR)/%.cpp
$(CXX) $(CXXFLAGS) $(INCS) -c $< -o $@
clean:
rm -f $(OBJ) $(BIN)
install: $(BIN)
cp $(BIN) $(BUILD)/bin/
run: install
cd $(BUILD)/bin && \
LD_LIBRARY_PATH=$(BUILD)/lib:$(BUILD)/vcpkg_installed/x64-linux-dynamic/lib \
./quartz
patch:
cd $(LADYBIRD) && \
git apply $(ROOT)/build_patches/CMakeLists.txt.patch && \
git apply $(ROOT)/build_patches/Meta_CMake_lagom_options.cmake.patch && \
git apply $(ROOT)/build_patches/vcpkg.json.patch && \
git apply $(ROOT)/build_patches/UI_CMakeLists.txt.patch && \
rm -f $(LADYBIRD)/UI/quartz && \
ln -sf $(ROOT)/quartz $(LADYBIRD)/UI/quartz
ladybird:
cd $(LADYBIRD) && \
cmake --preset Release -DENABLE_QT=OFF -DENABLE_QUARTZ=ON && \
ninja -C Build/release
clangd:
rm -f compile_flags.txt
for f in $(CXXFLAGS) $(INCS); do echo $$f >> compile_flags.txt; done
|