xenia-canary/third_party/zlib-ng.lua

64 lines
1.5 KiB
Lua

group("third_party")
project("zlib-ng")
uuid("13d4073d-f1c9-47e3-a057-79b133596fc2")
kind("StaticLib")
language("C")
defines({
"X86_FEATURES",
"X86_HAVE_XSAVE_INTRIN",
"X86_SSSE3",
"X86_SSE42",
"WITH_GZFILEOP",
})
if os.istarget("windows") then
defines({
"X86_SSE2",
"X86_AVX2",
"X86_AVX512",
"X86_AVX512VNNI",
"X86_PCLMULQDQ_CRC",
"X86_VPCLMULQDQ_CRC",
})
end
files({
"zlib-ng/*.c",
"zlib-ng/arch/x86/*.c",
"zlib-ng/arch/generic/*.c",
})
if not os.istarget("windows") then
removefiles({
"zlib-ng/arch/x86/adler32_avx2.c",
"zlib-ng/arch/x86/adler32_avx512.c",
"zlib-ng/arch/x86/adler32_avx512_vnni.c",
"zlib-ng/arch/x86/chunkset_avx2.c",
"zlib-ng/arch/x86/compare256_avx2.c",
"zlib-ng/arch/x86/crc32_pclmulqdq.c",
"zlib-ng/arch/x86/crc32_vpclmulqdq.c",
"zlib-ng/arch/x86/slide_hash_avx2.c",
})
end
includedirs({
"zlib-ng",
})
local zlibng_dir = path.getabsolute("zlib-ng")
local zlibng_h_src_files = {
path.join(zlibng_build_dir, "zlib-ng.h"),
path.join(zlibng_build_dir, "zconf-ng.h"),
path.join(zlibng_build_dir, "zlib_name_mangling-ng.h"),
path.join(zlibng_build_dir, "gzread.c"),
}
for i = 1,#zlibng_h_src_files,1
do
if not os.isfile(path.join(zlibng_dir, zlibng_h_src_files[i])) then
zlibng_build = true
break
end
end
if zlibng_build then
os.execute("cmake -DZLIB_ENABLE_TESTS=OFF -DWITH_GTEST=OFF "..zlibng_dir.." -B"..zlibng_dir)
end