Skip to content

Instantly share code, notes, and snippets.

@codecat
Created July 10, 2018 10:04
Show Gist options
  • Save codecat/5ff66a9ab4fce068b6229bcd12f6d985 to your computer and use it in GitHub Desktop.
Save codecat/5ff66a9ab4fce068b6229bcd12f6d985 to your computer and use it in GitHub Desktop.
GENie/premake build for Facebook's zstd library
-- This GENie 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 compression then
dictbuilder = false
deprecated = false
end
if 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 < 8 then
files {
dir .. 'legacy/zstd_v0' .. (legacy - 7) .. '.*'
}
else
includedirs {
dir .. 'legacy'
}
end
includedirs {
dir,
dir .. 'common'
}
defines {
'XXH_NAMESPACE=ZSTD_',
'ZSTD_LEGACY_SUPPORT=' .. legacy
}
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment