summaryrefslogtreecommitdiff
path: root/pkg/netsurf/gen.lua
blob: dfd71dc2f5f4b4cc4db9ed3000e2f81f6e50b173 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
cflags{'-D NDEBUG'}

subgen 'libcss'
subgen 'libdom'
subgen 'libhubbub'
subgen 'libnsbmp'
subgen 'libnsgif'
subgen 'libnsutils'
subgen 'libparserutils'
subgen 'libsvgtiny'
subgen 'libwapcaplet'
subgen 'nsgenbind'

sub('tools.ninja', function()
	toolchain 'host'
	exe('convert_image', {'frontends/framebuffer/convert_image.c'}, {'pkg/libpng/headers'}, {
		ldlibs='-lpng -lz',
	})
end)

-- netsurf
cflags{
	'-include $dir/config.h',
	'-I $dir',
	'-I $srcdir',
	'-I $srcdir/include',
	'-I $srcdir/frontends',
	'-I $srcdir/content/handlers',
	'-I $outdir',
	'-I $outdir/libdom/include',
	'-I $builddir/pkg/curl/include',
	'-I $builddir/pkg/libjpeg-turbo/include',
	'-I $builddir/pkg/libpng/include',
	'-I $builddir/pkg/libressl/include',
	'-I $builddir/pkg/pixman/include',
	'-I $builddir/pkg/wayland/include',
	'-I $builddir/pkg/wayland-protocols/include',
	'-I $builddir/pkg/zlib/include',
	'-I $dir/libcss/src/include',
	'-I $dir/libdom/src/include',
	'-I $dir/libhubbub/src/include',
	'-I $dir/libnsbmp/src/include',
	'-I $dir/libnsgif/src/include',
	'-I $dir/libnsutils/src/include',
	'-I $dir/libparserutils/src/include',
	'-I $dir/libsvgtiny/src/include',
	'-I $dir/libwapcaplet/src/include',
	'-I pkg/freetype/src/include',
	'-I pkg/libxkbcommon/src',
	'-I pkg/openbsd/include',
	'-I pkg/utf8proc/src',
}

rule('nsgenbind', '$outdir/nsgenbind/nsgenbind -I $srcdir/content/handlers/javascript/WebIDL $in $outdir/duktape', {
	restat='1',
})

local nsgenbind = expand{'$outdir/duktape/', lines('nsgenbind.txt')}
build('nsgenbind', nsgenbind, {
	'$srcdir/content/handlers/javascript/duktape/netsurf.bnd',
	'|', '$outdir/nsgenbind/nsgenbind',
})

pkg.deps = {
	'$builddir/pkg/freetype/fetch.stamp',
	'$builddir/pkg/libxkbcommon/fetch.stamp',
	'$builddir/pkg/utf8proc/fetch.stamp',
	'$dir/libdom/headers',
	'$outdir/duktape/binding.c',
	'$outdir/libcss/fetch.stamp',
	'$outdir/libdom/fetch.stamp',
	'$outdir/libhubbub/fetch.stamp',
	'$outdir/libnsbmp/fetch.stamp',
	'$outdir/libnsgif/fetch.stamp',
	'$outdir/libnsutils/fetch.stamp',
	'$outdir/libparserutils/fetch.stamp',
	'$outdir/libsvgtiny/fetch.stamp',
	'$outdir/libwapcaplet/fetch.stamp',
	'pkg/curl/headers',
	'pkg/libjpeg-turbo/headers',
	'pkg/libpng/headers',
	'pkg/libressl/headers',
	'pkg/zlib/headers',
}

local sources = {}
for _, src in ipairs(nsgenbind) do
	if src:hassuffix('.c') then
		table.insert(sources, src)
	end
end
exe('netsurf', {sources, paths[[
	desktop/(
		cookie_manager.c knockout.c hotlist.c mouse.c
		plot_style.c print.c search.c searchweb.c scrollbar.c
		sslcert_viewer.c textarea.c version.c system_colour.c
		local_history.c global_history.c treeview.c

		browser.c browser_history.c download.c frames.c netsurf.c
		save_complete.c save_text.c selection.c textinput.c gui_factory.c
		save_pdf.c font_haru.c
	)
	frontends/tiny/(download.c fetch.c icons.c gui.c render.c schedule.c ui.c wl.c)
	content/(
		content.c content_factory.c dirlist.c fetch.c hlcache.c
		llcache.c mimesniff.c urldb.c no_backing_store.c
		fetchers/(curl.c data.c file.c about.c resource.c)
		handlers/(
			javascript/(fetcher.c content.c duktape/(dukky.c duktape.c))
			css/(css.c dump.c internal.c hints.c select.c utils.c)
			image/(image.c image_cache.c bmp.c gif.c ico.c jpeg.c png.c svg.c)
		)
	)
	utils/(
		bloom.c
		corestrings.c
		file.c
		filename.c
		filepath.c
		hashtable.c
		idna.c
		libdom.c
		log.c
		messages.c
		nsoption.c
		punycode.c
		talloc.c
		time.c
		url.c
		useragent.c
		utf8.c
		utils.c
		http/(
			challenge.c generics.c primitives.c parameter.c
			content-disposition.c content-type.c www-authenticate.c
		)
		nsurl/(
			nsurl.c
			parse.c
		)
	)
	render/(
		box.c box_construct.c box_normalise.c box_textarea.c
		font.c form.c imagemap.c layout.c search.c table.c textplain.c
		html.c html_css.c html_css_fetcher.c html_script.c
		html_interaction.c html_redraw.c html_redraw_border.c
		html_forms.c html_object.c
	)
	$outdir/(
		libcss/libcss.a.d
		libdom/libdom.a.d
		libnsbmp/libnsbmp.a
		libnsgif/libnsgif.a
		libnsutils/libnsutils.a
		libsvgtiny/libsvgtiny.a.d
	)
	$builddir/pkg/(
		curl/libcurl.a.d
		freetype/libfreetype.a.d
		libjpeg-turbo/libjpeg-turbo.a
		libpng/libpng.a
		libxkbcommon/libxkbcommon.a
		pixman/libpixman.a
		utf8proc/libutf8proc.a
		wayland/(libwayland-client.a.d libwayland-cursor.a)
		zlib/libz.a

		wayland-protocols/xdg-shell-unstable-v5-protocol.c.o
	)
]]})
file('bin/netsurf', '755', '$outdir/netsurf')

build('sed', '$outdir/netsurf.1', '$srcdir/docs/netsurf-fb.1', {
	expr='s,netsurf-fb,netsurf,g',
})
man{'$outdir/netsurf.1'}

build('awk', '$outdir/Messages', {'$srcdir/resources/FatMessages', '|', '$dir/messages.awk'}, {
	expr='-f $dir/messages.awk -v lang=en -v filter=any',
})
file('share/netsurf/Messages', '644', '$outdir/Messages')

file('share/netsurf/adblock.css', '644', '$srcdir/!NetSurf/Resources/AdBlock,f79')
file('share/netsurf/credits.html', '644', '$srcdir/!NetSurf/Resources/en/credits.html,faf')
file('share/netsurf/default.css', '644', '$srcdir/!NetSurf/Resources/CSS,f79')
file('share/netsurf/favicon.png', '644', '$srcdir/resources/favicon.png')
file('share/netsurf/internal.css', '644', '$srcdir/!NetSurf/Resources/internal.css,f79')
file('share/netsurf/licence.html', '644', '$srcdir/!NetSurf/Resources/en/licence.html,faf')
sym('share/netsurf/maps.html', 'welcome.html')
file('share/netsurf/netsurf.png', '644', '$srcdir/!NetSurf/Resources/netsurf.png,b60')
file('share/netsurf/quirks.css', '644', '$srcdir/!NetSurf/Resources/Quirks,f79')
file('share/netsurf/welcome.html', '644', '$srcdir/!NetSurf/Resources/en/welcome.html,faf')
for icon in iterpaths[[back forward add remove home reload stop close up down]] do
	file('share/netsurf/icons/'..icon..'.ff', '644', '$srcdir/frontends/tiny/res/icons/'..icon..'.ff')
end

fetch 'git'