mirror of
https://gitee.com/fasiondog/hikyuu.git
synced 2024-12-02 20:08:26 +08:00
75 lines
2.8 KiB
Lua
75 lines
2.8 KiB
Lua
option("pyver")
|
||
set_default("3.9")
|
||
set_showmenu(true)
|
||
set_category("hikyuu")
|
||
set_description("Use python version xy")
|
||
option_end()
|
||
|
||
target("core")
|
||
set_kind("shared")
|
||
if is_mode("debug") then
|
||
set_default(false) --会默认禁用这个target的编译,除非显示指定xmake build _hikyuu才会去编译,但是target还存在,里面的files会保留到vcproj
|
||
--set_enable(false) --set_enable(false)会彻底禁用这个target,连target的meta也不会被加载,vcproj不会保留它
|
||
end
|
||
|
||
add_options("stackstrace")
|
||
|
||
add_deps("hikyuu")
|
||
add_packages("boost", "fmt", "spdlog", "flatbuffers", "cpp-httplib")
|
||
if is_plat("windows") then
|
||
set_filename("core.pyd")
|
||
add_cxflags("-wd4251")
|
||
else
|
||
set_filename("core.so")
|
||
end
|
||
|
||
if is_plat("windows") and is_mode("release") then
|
||
add_defines("HKU_API=__declspec(dllimport)")
|
||
add_cxflags("-wd4566")
|
||
end
|
||
|
||
local cc = get_config("cc")
|
||
local cxx = get_config("cxx")
|
||
if (cc and string.find(cc, "clang")) or (cxx and string.find(cxx, "clang")) then
|
||
add_cxflags("-Wno-error=parentheses-equality -Wno-error=missing-braces")
|
||
end
|
||
|
||
add_includedirs("../hikyuu_cpp")
|
||
add_files("./**.cpp")
|
||
|
||
add_rpathdirs("$ORIGIN", "$ORIGIN/lib", "$ORIGIN/../lib")
|
||
|
||
-- on_load(function(target)
|
||
-- import("lib.detect.find_tool")
|
||
-- import("lib.detect.find_path")
|
||
-- local python = assert(find_tool("python3", {version = true}), "python not found, please install it first! note: python version must > 3.0")
|
||
-- local exepath = path.directory(python.program)
|
||
-- if is_host("windows") then
|
||
-- includepath = find_path("Python.h", {exepath}, {suffixes = {"include"}})
|
||
-- else
|
||
-- local pyver = python.version:match("%d+.%d+")
|
||
-- includepath = find_path("Python.h", {path.directory(exepath)}, {suffixes = {"include/python" .. pyver}})
|
||
-- end
|
||
-- target:add("includedirs", includepath)
|
||
-- end)
|
||
|
||
after_build(function(target)
|
||
if is_plat("macosx") then
|
||
os.run(format("install_name_tool -change @rpath/libhikyuu.dylib @loader_path/libhikyuu.dylib %s/%s", target:targetdir(), "core.so"))
|
||
end
|
||
|
||
local dst_dir = "$(projectdir)/hikyuu/cpp/"
|
||
if is_plat("windows") then
|
||
os.cp(target:targetdir() .. '/core.pyd', dst_dir)
|
||
os.cp(target:targetdir() .. '/*.dll', dst_dir)
|
||
elseif is_plat("macosx") then
|
||
os.cp(target:targetdir() .. '/core.so', dst_dir)
|
||
os.cp(target:targetdir() .. '/libhikyuu.dylib', dst_dir)
|
||
else
|
||
os.trycp(target:targetdir() .. '/*.so', dst_dir)
|
||
os.trycp(target:targetdir() .. '/*.so.*', dst_dir)
|
||
end
|
||
end)
|
||
|
||
|