summaryrefslogtreecommitdiff
path: root/src/third_party/zstandard-1.3.7/zstd/contrib/premake/zstd.lua
blob: df1ace3ee8ea577f61600bb9238ff9a1864f3265 (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
-- This GENie/premake file copies the behavior of the Makefile in the lib folder.
-- Basic usage: project_zstd(ZSTD_DIR)

function project_zstd(dir, compression, decompression, deprecated, dictbuilder, legacy)
	if compression == nil then compression = true end
	if decompression == nil then decompression = true end
	if deprecated == nil then deprecated = false end
	if dictbuilder == nil then dictbuilder = false end

	if legacy == nil then legacy = 0 end

	if not compression then
		dictbuilder = false
		deprecated = false
	end

	if not decompression then
		legacy = 0
		deprecated = false
	end

	project 'zstd'
		kind 'StaticLib'
		language 'C'

		files {
			dir .. 'zstd.h',
			dir .. 'common/**.c',
			dir .. 'common/**.h'
		}

		if compression then
			files {
				dir .. 'compress/**.c',
				dir .. 'compress/**.h'
			}
		end

		if decompression then
			files {
				dir .. 'decompress/**.c',
				dir .. 'decompress/**.h'
			}
		end

		if dictbuilder then
			files {
				dir .. 'dictBuilder/**.c',
				dir .. 'dictBuilder/**.h'
			}
		end

		if deprecated then
			files {
				dir .. 'deprecated/**.c',
				dir .. 'deprecated/**.h'
			}
		end

		if legacy ~= 0 then
			if legacy >= 8 then
				files {
					dir .. 'legacy/zstd_v0' .. (legacy - 7) .. '.*'
				}
			end
			includedirs {
				dir .. 'legacy'
			}
		end

		includedirs {
			dir,
			dir .. 'common'
		}

		defines {
			'XXH_NAMESPACE=ZSTD_',
			'ZSTD_LEGACY_SUPPORT=' .. legacy
		}
end