This repository was archived by the owner on May 8, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathxmake.lua
More file actions
94 lines (82 loc) · 3.28 KB
/
xmake.lua
File metadata and controls
94 lines (82 loc) · 3.28 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
set_project("flame")
set_languages("c17","c++17")
option("vendor-boost")
set_default("/data/vendor/boost-1.74")
after_check(function(option)
option:add("includedirs","$(vendor-boost)/include")
option:add("linkdirs","$(vendor-boost)/lib")
end)
option("vendor-pegtl")
set_default("/data/vendor/pegtl-3.2")
after_check(function(option)
option:add("includedirs","$(vendor-pegtl)/include")
end)
option("vendor-php")
set_default("/data/server/php-8.0")
after_check(function(option)
local vendor_php_includes, _ = os.iorun("$(vendor-php)/bin/php-config --includes")
local vendor_php_libs, _ = os.iorun("$(vendor-php)/bin/php-config --libs")
option:add("cxflags", vendor_php_includes)
option:add("ldflags", vendor_php_libs)
end)
option("vendor-phpext")
add_deps("vendor-php")
set_default("/data/vendor/phpext-4.0")
add_links("phpext")
after_check(function(option)
option:add("includedirs", "$(vendor-phpext)/include")
option:add("linkdirs","$(vendor-phpext)/lib")
end)
option("vendor-curl")
set_default("/data/vendor/curl-7.73")
add_includedirs("$(vendor-curl)/include")
after_check(function(option)
local vendor_curl_libs, _ = os.iorunv("pkg-config", {"libcurl", "--libs"}, {envs = {PKG_CONFIG_PATH=option:value().."/lib/pkgconfig"}})
option:add("ldflags", vendor_curl_libs:trim())
end)
option("vendor-fmt")
set_default("/data/vendor/fmt-7.1")
add_links("fmt")
after_check(function(option)
option:add("includedirs","$(vendor-fmt)/include")
option:add("linkdirs","$(vendor-fmt)/lib")
end)
target("core")
add_rules("mode.debug")
set_kind("shared")
add_options("vendor-boost")
add_links("boost_context", "boost_system")
add_options("vendor-curl")
add_options("vendor-fmt")
add_options("vendor-php")
add_options("vendor-phpext")
set_pcxxheader("src/core/vendor.h")
set_filename("flame-core.so")
add_files("src/core/*.cpp","src/core/extension/*.cpp")
add_links("pthread")
on_install(function(target)
local vendor_php_extension_dir, _ = os.iorun("$(vendor-php)/bin/php-config --extension-dir")
local vendor_php_include_dir, _ = os.iorun("$(vendor-php)/bin/php-config --include-dir")
vendor_php_extension_dir = vendor_php_extension_dir:trim()
vendor_php_include_dir = vendor_php_include_dir:trim() .. "/ext/flame/core"
cprint("${bright green}install extension to ${clear}'%s' ...", vendor_php_extension_dir)
os.cp(target:targetfile(), vendor_php_extension_dir)
cprint("${bright green}install header files to ${clear}'%s' ...", vendor_php_include_dir)
os.mkdir(vendor_php_include_dir)
os.cp("src/core/*.hpp", vendor_php_include_dir)
end)
target("core-test")
add_rules("mode.debug")
set_kind("binary")
add_options("vendor-boost")
add_links("boost_unit_test_framework", "boost_context", "boost_system")
add_options("vendor-curl")
add_options("vendor-fmt")
add_options("vendor-php")
add_options("vendor-phpext")
set_pcxxheader("src/core/vendor.h")
add_files("src/core/*.cpp", "tests/core/*.cpp")
add_links("pthread")
on_install(function(target)
-- 测试,无安装目标
end)