xref: /aosp_15_r20/external/zstd/contrib/premake/zstd.lua (revision 01826a4963a0d8a59bc3812d29bdf0fb76416722)
1*01826a49SYabin Cui-- This GENie/premake file copies the behavior of the Makefile in the lib folder.
2*01826a49SYabin Cui-- Basic usage: project_zstd(ZSTD_DIR)
3*01826a49SYabin Cui
4*01826a49SYabin Cuifunction project_zstd(dir, compression, decompression, deprecated, dictbuilder, legacy)
5*01826a49SYabin Cui	if compression == nil then compression = true end
6*01826a49SYabin Cui	if decompression == nil then decompression = true end
7*01826a49SYabin Cui	if deprecated == nil then deprecated = false end
8*01826a49SYabin Cui	if dictbuilder == nil then dictbuilder = false end
9*01826a49SYabin Cui
10*01826a49SYabin Cui	if legacy == nil then legacy = 0 end
11*01826a49SYabin Cui
12*01826a49SYabin Cui	if not compression then
13*01826a49SYabin Cui		dictbuilder = false
14*01826a49SYabin Cui		deprecated = false
15*01826a49SYabin Cui	end
16*01826a49SYabin Cui
17*01826a49SYabin Cui	if not decompression then
18*01826a49SYabin Cui		legacy = 0
19*01826a49SYabin Cui		deprecated = false
20*01826a49SYabin Cui	end
21*01826a49SYabin Cui
22*01826a49SYabin Cui	project 'zstd'
23*01826a49SYabin Cui		kind 'StaticLib'
24*01826a49SYabin Cui		language 'C'
25*01826a49SYabin Cui
26*01826a49SYabin Cui		files {
27*01826a49SYabin Cui			dir .. 'zstd.h',
28*01826a49SYabin Cui			dir .. 'common/**.c',
29*01826a49SYabin Cui			dir .. 'common/**.h'
30*01826a49SYabin Cui		}
31*01826a49SYabin Cui
32*01826a49SYabin Cui		if compression then
33*01826a49SYabin Cui			files {
34*01826a49SYabin Cui				dir .. 'compress/**.c',
35*01826a49SYabin Cui				dir .. 'compress/**.h'
36*01826a49SYabin Cui			}
37*01826a49SYabin Cui		end
38*01826a49SYabin Cui
39*01826a49SYabin Cui		if decompression then
40*01826a49SYabin Cui			files {
41*01826a49SYabin Cui				dir .. 'decompress/**.c',
42*01826a49SYabin Cui				dir .. 'decompress/**.h'
43*01826a49SYabin Cui			}
44*01826a49SYabin Cui		end
45*01826a49SYabin Cui
46*01826a49SYabin Cui		if dictbuilder then
47*01826a49SYabin Cui			files {
48*01826a49SYabin Cui				dir .. 'dictBuilder/**.c',
49*01826a49SYabin Cui				dir .. 'dictBuilder/**.h'
50*01826a49SYabin Cui			}
51*01826a49SYabin Cui		end
52*01826a49SYabin Cui
53*01826a49SYabin Cui		if deprecated then
54*01826a49SYabin Cui			files {
55*01826a49SYabin Cui				dir .. 'deprecated/**.c',
56*01826a49SYabin Cui				dir .. 'deprecated/**.h'
57*01826a49SYabin Cui			}
58*01826a49SYabin Cui		end
59*01826a49SYabin Cui
60*01826a49SYabin Cui		if legacy ~= 0 then
61*01826a49SYabin Cui			if legacy >= 8 then
62*01826a49SYabin Cui				files {
63*01826a49SYabin Cui					dir .. 'legacy/zstd_v0' .. (legacy - 7) .. '.*'
64*01826a49SYabin Cui				}
65*01826a49SYabin Cui			end
66*01826a49SYabin Cui			includedirs {
67*01826a49SYabin Cui				dir .. 'legacy'
68*01826a49SYabin Cui			}
69*01826a49SYabin Cui		end
70*01826a49SYabin Cui
71*01826a49SYabin Cui		includedirs {
72*01826a49SYabin Cui			dir,
73*01826a49SYabin Cui			dir .. 'common'
74*01826a49SYabin Cui		}
75*01826a49SYabin Cui
76*01826a49SYabin Cui		defines {
77*01826a49SYabin Cui			'XXH_NAMESPACE=ZSTD_',
78*01826a49SYabin Cui			'ZSTD_LEGACY_SUPPORT=' .. legacy
79*01826a49SYabin Cui		}
80*01826a49SYabin Cuiend
81