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