package An official xmake package repository https://xrepo.xmake.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

75 lines
2.4 KiB

set_project("theora")
set_kind("$(kind)")
add_rules("mode.debug", "mode.release")
if is_plat("windows") and is_kind("shared") then
add_rules("utils.symbols.export_all")
end
add_requires("libogg")
add_packages("libogg")
add_includedirs("include")
add_headerfiles("include/(theora/*.h)")
set_warnings("all")
target("theoraenc")
add_files("lib/apiwrapper.c",
"lib/fragment.c",
"lib/idct.c",
"lib/internal.c",
"lib/info.c",
"lib/state.c",
"lib/quant.c",
"lib/analyze.c",
"lib/encfrag.c",
"lib/encapiwrapper.c",
"lib/encinfo.c",
"lib/encode.c",
"lib/enquant.c",
"lib/fdct.c",
"lib/huffenc.c",
"lib/mathops.c",
"lib/mcenc.c",
"lib/rate.c",
"lib/tokenize.c")
local asmdir = is_plat("windows") and "x86_vc" or "x86"
if is_arch("x86") then
add_defines("OC_X86_ASM")
add_files(path.join("lib", asmdir, "*.c|sse2fdct.c"))
elseif is_arch("x64", "x86_64") and not is_plat("windows") then
add_defines("OC_X86_ASM", "OC_X86_64_ASM")
add_files(path.join("lib", asmdir, "*.c"))
end
target("theoradec")
add_files("lib/apiwrapper.c",
"lib/bitpack.c",
"lib/decapiwrapper.c",
"lib/decinfo.c",
"lib/decode.c",
"lib/dequant.c",
"lib/fragment.c",
"lib/huffdec.c",
"lib/idct.c",
"lib/info.c",
"lib/internal.c",
"lib/quant.c",
"lib/state.c")
local asmdir = is_plat("windows") and "x86_vc" or "x86"
if is_arch("x86") or (not is_plat("windows") and is_arch("x64", "x86_64")) then
add_defines("OC_X86_ASM")
add_files(path.join("lib", asmdir, "mmxidct.c"),
path.join("lib", asmdir, "mmxfrag.c"),
path.join("lib", asmdir, "mmxstate.c"),
path.join("lib", asmdir, "x86state.c"))
if os.exists("lib", asmdir, "sse2idct.c") then
add_files("lib", asmdir, "sse2idct.c")
end
if os.exists(path.join("lib", asmdir, "x86cpu.c")) then
add_files(path.join("lib", asmdir, "x86cpu.c"))
end
if is_arch("x64", "x86_64") then
add_defines("OC_X86_64_ASM")
end
end