diff options
-rw-r--r-- | third_party/packages/c/c11threads/xmake.lua | 28 | ||||
-rw-r--r-- | third_party/packages/c/cjson/xmake.lua | 23 | ||||
-rw-r--r-- | third_party/packages/f/ffmpeg/xmake.lua | 234 | ||||
-rw-r--r-- | third_party/packages/n/nuklear_fonts/xmake.lua | 11 | ||||
-rw-r--r-- | third_party/packages/n/nuklear_glfw_gl3/xmake.lua | 14 | ||||
-rw-r--r-- | third_party/packages/t/tinyfiledialogs/xmake.lua | 35 | ||||
-rw-r--r-- | third_party/packages/t/tomlc99/xmake.lua | 22 | ||||
-rw-r--r-- | xmake.lua | 143 |
8 files changed, 370 insertions, 140 deletions
diff --git a/third_party/packages/c/c11threads/xmake.lua b/third_party/packages/c/c11threads/xmake.lua new file mode 100644 index 0000000..8310ca9 --- /dev/null +++ b/third_party/packages/c/c11threads/xmake.lua @@ -0,0 +1,28 @@ +package("c11threads") + +set_homepage("https://github.com/jtsiomb/c11threads") +set_description("Portable C11 threads implementation over POSIX threads and win32 threads.") + +add_urls("https://github.com/jtsiomb/c11threads/archive/ec95e1aa82079aefe109d18e5069b79711692064.zip") +add_versions("1.0-ec95e1a", "9eb5eab9db4c32418eea39543d4883022c81167ea5e37f820f5af972bea7a30e") + +on_install("linux", "macosx", function(package) + io.writefile("xmake.lua", [[ + add_rules("mode.debug", "mode.release") + target("c11threads") + set_kind("static") + add_headerfiles("c11threads.h") + ]]) + import("package.tools.xmake").install(package) +end) + +on_install("windows", "mingw", function(package) + io.writefile("xmake.lua", [[ + add_rules("mode.debug", "mode.release") + target("c11threads") + set_kind("static") + add_files("c11threads_win32.c") + add_headerfiles("c11threads.h") + ]]) + import("package.tools.xmake").install(package) +end)
\ No newline at end of file diff --git a/third_party/packages/c/cjson/xmake.lua b/third_party/packages/c/cjson/xmake.lua new file mode 100644 index 0000000..7193121 --- /dev/null +++ b/third_party/packages/c/cjson/xmake.lua @@ -0,0 +1,23 @@ +package("cjson") + +set_homepage("https://github.com/DaveGamble/cJSON") +set_description("Ultralightweight JSON parser in ANSI C.") +set_license("MIT") + +set_urls("https://github.com/DaveGamble/cJSON/archive/v$(version).zip", + "https://github.com/DaveGamble/cJSON.git") + +add_versions("1.7.17", "51f3b07aece8d1786e74b951fd92556506586cb36670741b6bfb79bf5d484216") + +add_deps("cmake") + +on_install("windows", "macosx", "linux", "mingw", "iphoneos", "android", function(package) + local configs = { "-DENABLE_CJSON_TEST=OFF" } + table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release")) + table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) + import("package.tools.cmake").install(package, configs) +end) + +on_test(function(package) + assert(package:has_cfuncs("cJSON_malloc", { includes = "cjson/cJSON.h" })) +end)
\ No newline at end of file diff --git a/third_party/packages/f/ffmpeg/xmake.lua b/third_party/packages/f/ffmpeg/xmake.lua new file mode 100644 index 0000000..fa085b3 --- /dev/null +++ b/third_party/packages/f/ffmpeg/xmake.lua @@ -0,0 +1,234 @@ +package("ffmpeg") + set_homepage("https://www.ffmpeg.org") + set_description("A collection of libraries to process multimedia content such as audio, video, subtitles and related metadata.") + set_license("GPL-3.0") + + if is_plat("windows", "mingw") then + add_urls("https://github.com/xmake-mirror/ffmpeg-releases/releases/download/releases/ffmpeg-$(version)-full_build-shared.7z") + add_versions("6.1", "6eab95d8cd00b4601ce443ff3aeab5f477c581379c633742f5df30856a95158d") + add_versions("6.0", "a852648944cdf4ce3aeebf16d750a036fe67ab657b82eb43f9f7fdcc7bef3af7") + add_versions("5.1.2", "d9eb97b72d7cfdae4d0f7eaea59ccffb8c364d67d88018ea715d5e2e193f00e9") + add_versions("5.0.1", "ded28435b6f04b74f5ef5a6a13761233bce9e8e9f8ecb0eabe936fd36a778b0c") + + add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true}) + add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MD", readonly = true}) + else + add_urls("https://ffmpeg.org/releases/ffmpeg-$(version).tar.bz2", {alias = "home"}) + add_urls("https://github.com/FFmpeg/FFmpeg/archive/n$(version).zip", {alias = "github"}) + add_urls("https://git.ffmpeg.org/ffmpeg.git", "https://github.com/FFmpeg/FFmpeg.git", {alias = "git"}) + add_versions("home:6.1", "eb7da3de7dd3ce48a9946ab447a7346bd11a3a85e6efb8f2c2ce637e7f547611") + add_versions("home:6.0.1", "2c6e294569d1ba8e99cbf1acbe49e060a23454228a540a0f45d679d72ec69a06") + add_versions("home:5.1.2", "39a0bcc8d98549f16c570624678246a6ac736c066cebdb409f9502e915b22f2b") + add_versions("home:5.1.1", "cd0e16f903421266d5ccddedf7b83b9e5754aef4b9f7a7f06ce9e4c802f0545b") + add_versions("home:5.0.1", "28df33d400a1c1c1b20d07a99197809a3b88ef765f5f07dc1ff067fac64c59d6") + add_versions("home:4.0.2", "346c51735f42c37e0712e0b3d2f6476c86ac15863e4445d9e823fe396420d056") + add_versions("github:6.1", "7da07ff7e30bca95c0593db20442becba13ec446dd9c3331ca3d1b40eecd3c93") + add_versions("github:6.0.1", "2acb5738a1b4b262633ac2d646340403ae47120d9eb289ecad23fc90093c0d6c") + add_versions("github:5.1.2", "0c99f3609160f40946e2531804175eea16416320c4b6365ad075e390600539db") + add_versions("github:5.1.1", "a886fcc94792764c27c88ebe71dffbe5f0d37df8f06f01efac4833ac080c11bf") + add_versions("github:5.0.1", "f9c2e06cafa4381df8d5c9c9e14d85d9afcbc10c516c6a206f821997cc7f6440") + add_versions("github:4.0.2", "4df1ef0bf73b7148caea1270539ef7bd06607e0ea8aa2fbf1bb34062a097f026") + add_versions("git:6.1", "n6.1") + add_versions("git:6.0.1", "n6.0.1") + add_versions("git:5.1.2", "n5.1.2") + add_versions("git:5.1.1", "n5.1.1") + add_versions("git:5.0.1", "n5.0.1") + add_versions("git:4.0.2", "n4.0.2") + + add_configs("gpl", {description = "Enable GPL code", default = true, type = "boolean"}) + add_configs("ffprobe", {description = "Enable ffprobe program.", default = false, type = "boolean"}) + add_configs("ffmpeg", {description = "Enable ffmpeg program.", default = true, type = "boolean"}) + add_configs("ffplay", {description = "Enable ffplay program.", default = false, type = "boolean"}) + add_configs("zlib", {description = "Enable zlib compression library.", default = false, type = "boolean"}) + add_configs("lzma", {description = "Enable liblzma compression library.", default = false, type = "boolean"}) + add_configs("bzlib", {description = "Enable bzlib compression library.", default = false, type = "boolean"}) + add_configs("libx264", {description = "Enable libx264 decoder.", default = false, type = "boolean"}) + add_configs("libx265", {description = "Enable libx265 decoder.", default = false, type = "boolean"}) + add_configs("iconv", {description = "Enable libiconv library.", default = false, type = "boolean"}) + add_configs("vaapi", {description = "Enable vaapi library.", default = false, type = "boolean"}) + add_configs("vdpau", {description = "Enable vdpau library.", default = false, type = "boolean"}) + add_configs("hardcoded-tables", {description = "Enable hardcoded tables.", default = true, type = "boolean"}) + end + + add_links("avfilter", "avdevice", "avformat", "avcodec", "swscale", "swresample", "avutil") + if is_plat("macosx") then + add_frameworks("CoreFoundation", "Foundation", "CoreVideo", "CoreMedia", "AudioToolbox", "VideoToolbox", "Security") + elseif is_plat("linux") then + add_syslinks("pthread") + end + + if is_plat("linux", "macosx") then + add_deps("yasm") + end + + if on_fetch then + on_fetch("mingw", "linux", "macosx", function (package, opt) + import("lib.detect.find_tool") + if opt.system then + local result + for _, name in ipairs({"libavcodec", "libavdevice", "libavfilter", "libavformat", "libavutil", "libpostproc", "libswresample", "libswscale"}) do + local pkginfo = package:find_package("pkgconfig::" .. name, opt) + if pkginfo then + pkginfo.version = nil + if not result then + result = pkginfo + else + result = result .. pkginfo + end + else + return + end + end + local ffmpeg = find_tool("ffmpeg", {check = "-help", version = true, command = "-version", parse = "%d+%.?%d+%.?%d+", force = true}) + if ffmpeg then + result.version = ffmpeg.version + end + return result + end + end) + end + + on_load("linux", "macosx", "android", function (package) + local configdeps = {zlib = "zlib", + bzlib = "bzip2", + lzma = "xz", + libx264 = "x264", + libx265 = "x265", + iconv = "libiconv"} + for name, dep in pairs(configdeps) do + if package:config(name) then + package:add("deps", dep) + end + end + -- https://www.ffmpeg.org/platform.html#toc-Advanced-linking-configuration + if package:config("pic") ~= false and not package:is_plat("macosx") then + package:add("shflags", "-Wl,-Bsymbolic") + package:add("ldflags", "-Wl,-Bsymbolic") + end + if not package:config("gpl") then + package:set("license", "LGPL-3.0") + end + end) + + on_install("windows|x64", "mingw|x86_64", function (package) + os.cp("bin", package:installdir()) + os.cp("include", package:installdir()) + if package:is_plat("windows") then + os.cp("lib/*.def", package:installdir("lib")) + os.cp("lib/*.lib", package:installdir("lib")) + else + os.cp("lib/*.a", package:installdir("lib")) + end + package:addenv("PATH", "bin") + end) + + on_install("linux", "macosx", "android@linux,macosx", function (package) + local configs = {"--enable-version3", + "--disable-doc"} + if package:config("gpl") then + table.insert(configs, "--enable-gpl") + end + if package:is_plat("macosx") and macos.version():ge("10.8") then + table.insert(configs, "--enable-videotoolbox") + end + for name, enabled in pairs(package:configs()) do + if not package:extraconf("configs", name, "builtin") then + if enabled then + table.insert(configs, "--enable-" .. name) + else + table.insert(configs, "--disable-" .. name) + end + end + end + if package:config("shared") then + table.insert(configs, "--enable-shared") + table.insert(configs, "--disable-static") + else + table.insert(configs, "--enable-static") + table.insert(configs, "--disable-shared") + end + if package:debug() then + table.insert(configs, "--enable-debug") + else + table.insert(configs, "--disable-debug") + end + if package:is_plat("android") then + import("core.base.option") + import("core.tool.toolchain") + local ndk = toolchain.load("ndk", {plat = package:plat(), arch = package:arch()}) + local bin = ndk:bindir() + local ndk_sdkver = ndk:config("ndk_sdkver") + local arch, cpu, triple, cross_prefix + if package:is_arch("arm64-v8a") then + arch = "arm64" + cpu = "armv8-a" + triple = "aarch64-linux-android" + cross_prefix = path.join(bin, "aarch64-linux-android-") + elseif package:arch():startswith("arm") then + arch = "arm" + cpu = "armv7-a" + triple = "armv7a-linux-androideabi" + cross_prefix = path.join(bin, "arm-linux-androideabi-") + elseif package:is_arch("x86") then + arch = "x86_android" + cpu = "x86" + triple = "i686-linux-android" + cross_prefix = path.join(bin, "i686-linux-android-") + elseif package:is_arch("x86_64") then + arch = "x86_64_android" + cpu = "x86_64" + triple = "x86_64-linux-android" + cross_prefix = path.join(bin, "x86_64-linux-android-") + else + raise("unknown arch(%s) for android!", package:arch()) + end + local sysroot = path.join(path.directory(bin), "sysroot") + local cflags = table.join(table.wrap(package:config("cxflags")), table.wrap(package:config("cflags")), table.wrap(get_config("cxflags")), get_config("cflags")) + local cxxflags = table.join(table.wrap(package:config("cxflags")), table.wrap(package:config("cxxflags")), table.wrap(get_config("cxflags")), get_config("cxxflags")) + assert(os.isdir(sysroot), "we do not support old version ndk!") + if package:is_arch("arm64-v8a") then + table.insert(cflags, "-mfpu=neon") + table.insert(cflags, "-mfloat-abi=soft") + else + table.insert(cflags, "-mfpu=neon") + table.insert(cflags, "-mfloat-abi=soft") + end + table.insert(configs, "--enable-neon") + table.insert(configs, "--enable-asm") + table.insert(configs, "--enable-jni") + table.insert(configs, "--target-os=android") + table.insert(configs, "--enable-cross-compile") + table.insert(configs, "--disable-avdevice") + table.insert(configs, "--arch=" .. arch) + table.insert(configs, "--cpu=" .. cpu) + table.insert(configs, "--cc=" .. path.join(bin, triple .. ndk_sdkver .. "-clang")) + table.insert(configs, "--cxx=" .. path.join(bin, triple .. ndk_sdkver .. "-clang++")) + table.insert(configs, "--ar=" .. path.join(bin, "llvm-ar")) + table.insert(configs, "--ranlib=" .. path.join(bin, "llvm-ranlib")) + table.insert(configs, "--strip=" .. path.join(bin, "llvm-strip")) + table.insert(configs, "--extra-cflags=" .. table.concat(cflags, ' ')) + table.insert(configs, "--extra-cxxflags=" .. table.concat(cxxflags, ' ')) + table.insert(configs, "--sysroot=" .. sysroot) + table.insert(configs, "--cross-prefix=" .. cross_prefix) + table.insert(configs, "--prefix=" .. package:installdir()) + os.vrunv("./configure", configs) + local argv = {"-j4"} + if option.get("verbose") then + table.insert(argv, "V=1") + end + os.vrunv("make", argv) + os.vrun("make install") + else + if package:is_cross() then + table.insert(configs, "--enable-cross-compile") + table.insert(configs, "--arch=" .. package:targetarch()) + configs.host = "" -- prevents xmake to add a --host=xx parameter + end + import("package.tools.autoconf").install(package, configs) + end + package:addenv("PATH", "bin") + end) + + on_test(function (package) + assert(package:has_cfuncs("avformat_open_input", {includes = "libavformat/avformat.h"})) + end)
\ No newline at end of file diff --git a/third_party/packages/n/nuklear_fonts/xmake.lua b/third_party/packages/n/nuklear_fonts/xmake.lua new file mode 100644 index 0000000..70d6fe9 --- /dev/null +++ b/third_party/packages/n/nuklear_fonts/xmake.lua @@ -0,0 +1,11 @@ +package("nuklear_fonts") + +add_urls( + "https://gist.github.com/135e2/656614a4a86cf6f8e9aea9f0de850634/archive/8d1dc2a079cef20d97acbc2a9874b1b77b25070b.zip") + +add_versions("8d1dc2a", "3dedfd45900cf68fed49ee50963c37c59af01c7f8deb327224f710c010565f87") + +on_install(function(package) + os.cp("unifont.h", package:installdir("include")) + os.cp("NotoSansCJK.h", package:installdir("include")) +end)
\ No newline at end of file diff --git a/third_party/packages/n/nuklear_glfw_gl3/xmake.lua b/third_party/packages/n/nuklear_glfw_gl3/xmake.lua new file mode 100644 index 0000000..8789dbb --- /dev/null +++ b/third_party/packages/n/nuklear_glfw_gl3/xmake.lua @@ -0,0 +1,14 @@ +package("nuklear_glfw_gl3") + +set_homepage("https://github.com/Immediate-Mode-UI/Nuklear") +set_description("A single-header ANSI C immediate mode cross-platform GUI library (GLFW OpenGL 3 Binding)") +set_license("MIT") + +add_urls("https://github.com/Immediate-Mode-UI/Nuklear/archive/refs/tags/$(version).tar.gz", + "https://github.com/Immediate-Mode-UI/Nuklear.git") + +add_versions("4.10.5", "6c80cbd0612447421fa02ad92f4207da2cd019a14d94885dfccac1aadc57926a") + +on_install(function(package) + os.cp("demo/glfw_opengl3/nuklear_glfw_gl3.h", package:installdir("include")) +end) diff --git a/third_party/packages/t/tinyfiledialogs/xmake.lua b/third_party/packages/t/tinyfiledialogs/xmake.lua new file mode 100644 index 0000000..72dcca1 --- /dev/null +++ b/third_party/packages/t/tinyfiledialogs/xmake.lua @@ -0,0 +1,35 @@ +package("tinyfiledialogs") + +set_homepage("https://sourceforge.net/projects/tinyfiledialogs/") +set_description("Native dialog library for WINDOWS MAC OSX GTK+ QT CONSOLE") +set_license("zlib") + +add_urls("https://git.code.sf.net/p/tinyfiledialogs/code.git") + +if is_plat("windows", "mingw") then + add_syslinks("comdlg32", "ole32", "user32", "shell32") +end +on_install("windows", "mingw", "linux", "macosx", function(package) + io.writefile("xmake.lua", [[ + add_rules("mode.debug", "mode.release") + target("tinyfiledialogs") + set_kind("static") + add_files("tinyfiledialogs.c") + add_headerfiles("tinyfiledialogs.h") + ]]) + import("package.tools.xmake").install(package) +end) + +on_test(function(package) + assert(package:check_csnippets({ + test = [[ + #include <stdio.h> + #include <string.h> + #include "tinyfiledialogs.h" + void test() { + char const * lWillBeGraphicMode; + lWillBeGraphicMode = tinyfd_inputBox("tinyfd_query", NULL, NULL); + } + ]] + })) +end)
\ No newline at end of file diff --git a/third_party/packages/t/tomlc99/xmake.lua b/third_party/packages/t/tomlc99/xmake.lua new file mode 100644 index 0000000..2cc22b6 --- /dev/null +++ b/third_party/packages/t/tomlc99/xmake.lua @@ -0,0 +1,22 @@ +package("tomlc99") + +set_homepage("https://github.com/cktan/tomlc99") +set_description("TOML C library ") +set_license("MIT") + +set_urls("https://github.com/cktan/tomlc99.git") + +on_install("linux", "macosx", "windows", "mingw", function(package) + io.writefile("xmake.lua", [[ + add_rules("mode.debug", "mode.release") + target("tomlc99") + set_kind("static") + add_files("toml.c") + add_headerfiles("toml.h") + ]]) + import("package.tools.xmake").install(package) +end) + +on_test(function(package) + assert(package:has_cfuncs("toml_parse_file", { includes = "toml.h" })) +end) @@ -1,5 +1,7 @@ add_rules("mode.debug", "mode.release", "mode.releasedbg", "mode.minsizerel") +add_repositories("third_party third_party") + add_requires("nuklear", "nuklear_glfw_gl3", "nuklear_fonts", "glew", "glfw", "tinyfiledialogs", "c11threads", "pcre2", "cjson", "ffmpeg", "tomlc99") @@ -24,146 +26,7 @@ set_license("LGPL-3.0") if is_mode("debug") then add_defines("DEBUG") end + add_packages("nuklear", "nuklear_glfw_gl3", "nuklear_fonts", "glew", "glfw", "libcurl", "tinyfiledialogs", "c11threads", "pcre2", "cjson", "ffmpeg", "tomlc99") - - -package("tinyfiledialogs") - -set_homepage("https://sourceforge.net/projects/tinyfiledialogs/") -set_description("Native dialog library for WINDOWS MAC OSX GTK+ QT CONSOLE") -set_license("zlib") - -add_urls("https://git.code.sf.net/p/tinyfiledialogs/code.git") - -if is_plat("windows", "mingw") then - add_syslinks("comdlg32", "ole32", "user32", "shell32") -end -on_install("windows", "mingw", "linux", "macosx", function(package) - io.writefile("xmake.lua", [[ - add_rules("mode.debug", "mode.release") - target("tinyfiledialogs") - set_kind("static") - add_files("tinyfiledialogs.c") - add_headerfiles("tinyfiledialogs.h") - ]]) - import("package.tools.xmake").install(package) -end) - -on_test(function(package) - assert(package:check_csnippets({ - test = [[ - #include <stdio.h> - #include <string.h> - #include "tinyfiledialogs.h" - void test() { - char const * lWillBeGraphicMode; - lWillBeGraphicMode = tinyfd_inputBox("tinyfd_query", NULL, NULL); - } - ]] - })) -end) - -package("c11threads") - -set_homepage("https://github.com/jtsiomb/c11threads") -set_description("Portable C11 threads implementation over POSIX threads and win32 threads.") - -add_urls("https://github.com/jtsiomb/c11threads/archive/ec95e1aa82079aefe109d18e5069b79711692064.zip") -add_versions("1.0-ec95e1a", "9eb5eab9db4c32418eea39543d4883022c81167ea5e37f820f5af972bea7a30e") - -on_install("linux", "macosx", function(package) - io.writefile("xmake.lua", [[ - add_rules("mode.debug", "mode.release") - target("c11threads") - set_kind("static") - add_headerfiles("c11threads.h") - ]]) - import("package.tools.xmake").install(package) -end) - -on_install("windows", "mingw", function(package) - io.writefile("xmake.lua", [[ - add_rules("mode.debug", "mode.release") - target("c11threads") - set_kind("static") - add_files("c11threads_win32.c") - add_headerfiles("c11threads.h") - ]]) - import("package.tools.xmake").install(package) -end) - -package("nuklear_glfw_gl3") - -set_homepage("https://github.com/Immediate-Mode-UI/Nuklear") -set_description("A single-header ANSI C immediate mode cross-platform GUI library (GLFW OpenGL 3 Binding)") -set_license("MIT") - -add_urls("https://github.com/Immediate-Mode-UI/Nuklear/archive/refs/tags/$(version).tar.gz", - "https://github.com/Immediate-Mode-UI/Nuklear.git") - -add_versions("4.10.5", "6c80cbd0612447421fa02ad92f4207da2cd019a14d94885dfccac1aadc57926a") - -on_install(function(package) - os.cp("demo/glfw_opengl3/nuklear_glfw_gl3.h", package:installdir("include")) -end) - -package("nuklear_fonts") - -add_urls( - "https://gist.github.com/135e2/656614a4a86cf6f8e9aea9f0de850634/archive/8d1dc2a079cef20d97acbc2a9874b1b77b25070b.zip") - -add_versions("8d1dc2a", "3dedfd45900cf68fed49ee50963c37c59af01c7f8deb327224f710c010565f87") - -on_install(function(package) - os.cp("unifont.h", package:installdir("include")) - os.cp("NotoSansCJK.h", package:installdir("include")) -end) - -package("cjson") - -set_homepage("https://github.com/DaveGamble/cJSON") -set_description("Ultralightweight JSON parser in ANSI C.") -set_license("MIT") - -set_urls("https://github.com/DaveGamble/cJSON/archive/v$(version).zip", - "https://github.com/DaveGamble/cJSON.git") - -add_versions("1.7.16", "ea60a2477e5b7f41418eeb70488f437c56c56f998802e23be22b859e4be3ef44") - -add_deps("cmake") - -on_install("windows", "macosx", "linux", "mingw", "iphoneos", "android", function(package) - local configs = { "-DENABLE_CJSON_TEST=OFF" } - table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release")) - table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) - import("package.tools.cmake").install(package, configs) -end) - -on_test(function(package) - assert(package:has_cfuncs("cJSON_malloc", { includes = "cjson/cJSON.h" })) -end) - -package("tomlc99") - -set_homepage("https://github.com/cktan/tomlc99") -set_description("TOML C library ") -set_license("MIT") - -set_urls("https://github.com/cktan/tomlc99.git") - -on_install("linux", "macosx", "windows", "mingw", function(package) - io.writefile("xmake.lua", [[ - add_rules("mode.debug", "mode.release") - target("tomlc99") - set_kind("static") - add_files("toml.c") - add_headerfiles("toml.h") - ]]) - import("package.tools.xmake").install(package) -end) - -on_test(function(package) - assert(package:has_cfuncs("toml_parse_file", { includes = "toml.h" })) -end) |