-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathxmake.lua
36 lines (29 loc) · 1.22 KB
/
xmake.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
set_project("bonding")
set_version("0.1.3")
set_xmakever("2.8.1")
add_rules("mode.debug", "mode.release")
add_rules("plugin.compile_commands.autoupdate", {outputdir = "."})
add_requires("plog", "nlohmann_json", "libcap", "libseccomp")
package("libseccomp")
set_sourcedir(path.join(os.scriptdir(), "3rd/libseccomp"))
on_install("macosx", "linux", "mingw", function (package)
local configs = {}
table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
import("package.tools.autoconf").install(package, configs)
end)
target("bonding")
set_kind("binary")
set_languages("c++17")
set_policy("check.auto_ignore_flags", false)
set_toolchains("clang")
add_cxxflags("-stdlib=libc++")
add_ldflags("-stdlib=libc++")
add_files("src/*.cpp")
add_packages("plog", "result", "nlohmann_json", "libcap", "libseccomp")
after_build(function (target)
import("core.project.project")
import("core.base.task")
task.run("project", {kind = "cmake", outputdir = "."})
task.run("project", {kind = "ninja", outputdir = "."})
end)