|
@@ -0,0 +1,77 @@
|
|
|
|
+option("tools", {default = false})
|
|
|
|
+
|
|
|
|
+add_rules("mode.release", "mode.debug", "jxrlib")
|
|
|
|
+
|
|
|
|
+add_includedirs(
|
|
|
|
+ "common/include",
|
|
|
|
+ "image/sys",
|
|
|
|
+ "jxrgluelib",
|
|
|
|
+ "jxrtestlib"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+add_headerfiles("common/include/*.h", "image/sys/windowsmediaphoto.h", {prefixdir = "jxrlib"})
|
|
|
|
+
|
|
|
|
+target("jpegxr")
|
|
|
|
+ set_kind("$(kind)")
|
|
|
|
+ add_files("image/**.c")
|
|
|
|
+
|
|
|
|
+ if is_plat("windows") and is_kind("shared") then
|
|
|
|
+ add_rules("utils.symbols.export_all")
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+target("jxrglue")
|
|
|
|
+ set_kind("$(kind)")
|
|
|
|
+ add_files("jxrgluelib/*.c", "jxrtestlib/*.c")
|
|
|
|
+
|
|
|
|
+ if is_plat("windows") and is_kind("shared") then
|
|
|
|
+ add_rules("utils.symbols.export_all")
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+ add_deps("jpegxr")
|
|
|
|
+
|
|
|
|
+ add_headerfiles(
|
|
|
|
+ "jxrgluelib/JXRGlue.h",
|
|
|
|
+ "jxrgluelib/JXRMeta.h",
|
|
|
|
+ "jxrtestlib/JXRTest.h", {prefixdir = "jxrlib"}
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+target("JxrEncApp")
|
|
|
|
+ add_rules("tools")
|
|
|
|
+ add_files("jxrencoderdecoder/JxrEncApp.c")
|
|
|
|
+
|
|
|
|
+target("JxrDecApp")
|
|
|
|
+ add_rules("tools")
|
|
|
|
+ add_files("jxrencoderdecoder/JxrDecApp.c")
|
|
|
|
+
|
|
|
|
+rule("jxrlib")
|
|
|
|
+ on_config(function (target)
|
|
|
|
+ target:add("defines", "DISABLE_PERF_MEASUREMENT")
|
|
|
|
+ if target:is_plat("windows", "mingw", "msys") then
|
|
|
|
+ target:add("defines", "WIN32")
|
|
|
|
+ else
|
|
|
|
+ target:add("defines", "__ANSI__")
|
|
|
|
+ end
|
|
|
|
+ if target:check_bigendian() then
|
|
|
|
+ target:add("defines", "_BIG__ENDIAN_")
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+ if not target:has_tool("cxx", "cl") then
|
|
|
|
+ target:add("cxflags",
|
|
|
|
+ "-Wno-error=implicit-function-declaration",
|
|
|
|
+ "-Wno-endif-labels",
|
|
|
|
+ -- https://gcc.gnu.org/gcc-14/porting_to.html#incompatible-pointer-types
|
|
|
|
+ "-Wno-incompatible-pointer-types"
|
|
|
|
+ )
|
|
|
|
+ end
|
|
|
|
+ end)
|
|
|
|
+
|
|
|
|
+rule("tools")
|
|
|
|
+ on_load(function (target)
|
|
|
|
+ if not get_config("tools") then
|
|
|
|
+ target:set("enabled", false)
|
|
|
|
+ return
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+ target:add("kind", "binary")
|
|
|
|
+ target:add("deps", "jxrglue")
|
|
|
|
+ end)
|