2019-04-20 02:31:53 +08:00
|
|
|
set_xmakever("2.2.5")
|
2018-11-17 20:22:06 +08:00
|
|
|
|
2018-08-19 16:51:10 +08:00
|
|
|
-- project
|
|
|
|
set_project("hikyuu")
|
|
|
|
|
|
|
|
-- version
|
2020-04-20 23:59:47 +08:00
|
|
|
set_version("1.1.5", {build="%Y%m%d%H%M"})
|
2020-04-10 01:54:49 +08:00
|
|
|
if is_mode("debug") then
|
|
|
|
set_configvar("LOG_ACTIVE_LEVEL", 0) -- 激活的日志级别
|
|
|
|
else
|
|
|
|
set_configvar("LOG_ACTIVE_LEVEL", 2) -- 激活的日志级别
|
|
|
|
end
|
2020-04-30 01:50:27 +08:00
|
|
|
set_configvar("USE_SPDLOG_LOGGER", 0) -- 是否使用spdlog作为日志输出
|
2020-04-10 01:54:49 +08:00
|
|
|
set_configvar("USE_SPDLOG_ASYNC_LOGGER", 0) -- 使用异步的spdlog
|
2019-06-16 20:49:20 +08:00
|
|
|
set_configvar("CHECK_ACCESS_BOUND", 1)
|
2020-04-10 01:54:49 +08:00
|
|
|
set_configvar("SUPPORT_SERIALIZATION", is_mode("release") and 1 or 0)
|
2019-06-16 20:49:20 +08:00
|
|
|
set_configvar("SUPPORT_TEXT_ARCHIVE", 0)
|
|
|
|
set_configvar("SUPPORT_XML_ARCHIVE", 1)
|
|
|
|
set_configvar("SUPPORT_BINARY_ARCHIVE", 1)
|
2019-12-15 01:25:00 +08:00
|
|
|
set_configvar("HKU_DISABLE_ASSERT", 0)
|
2018-08-19 16:51:10 +08:00
|
|
|
|
|
|
|
-- set warning all as error
|
2019-09-22 10:57:09 +08:00
|
|
|
if is_plat("windows") then
|
|
|
|
set_warnings("all", "error")
|
2019-09-22 16:01:15 +08:00
|
|
|
else
|
2019-09-22 10:57:09 +08:00
|
|
|
set_warnings("all")
|
|
|
|
end
|
2018-08-19 16:51:10 +08:00
|
|
|
|
|
|
|
-- set language: C99, c++ standard
|
2019-09-20 02:58:03 +08:00
|
|
|
set_languages("cxx17", "C99")
|
2018-08-19 16:51:10 +08:00
|
|
|
|
|
|
|
add_plugindirs("./xmake_plugins")
|
|
|
|
|
2019-12-15 01:25:00 +08:00
|
|
|
add_requires("fmt", {configs = {header_only = true, vs_runtime = "MD"}})
|
2020-04-07 00:29:00 +08:00
|
|
|
add_requires("spdlog", {configs = {header_only = true, fmt_external=true, vs_runtime = "MD"}})
|
2019-12-23 02:18:04 +08:00
|
|
|
add_defines("SPDLOG_DISABLE_DEFAULT_LOGGER") -- 禁用 spdlog 默认 logger
|
2019-08-03 21:53:24 +08:00
|
|
|
|
2018-08-19 16:51:10 +08:00
|
|
|
set_objectdir("$(buildir)/$(mode)/$(plat)/$(arch)/.objs")
|
|
|
|
set_targetdir("$(buildir)/$(mode)/$(plat)/$(arch)/lib")
|
|
|
|
|
2018-09-04 01:41:04 +08:00
|
|
|
add_includedirs("hikyuu_extern_libs/inc")
|
|
|
|
|
2018-08-19 16:51:10 +08:00
|
|
|
add_includedirs("$(env BOOST_ROOT)")
|
|
|
|
add_linkdirs("$(env BOOST_LIB)")
|
|
|
|
|
2019-10-19 22:25:06 +08:00
|
|
|
-- modifed to use boost static library, except boost.python
|
|
|
|
--add_defines("BOOST_ALL_DYN_LINK")
|
2019-10-23 01:59:54 +08:00
|
|
|
add_defines("BOOST_SERIALIZATION_DYN_LINK")
|
2018-08-19 16:51:10 +08:00
|
|
|
|
2018-09-09 16:43:04 +08:00
|
|
|
if is_host("linux") then
|
|
|
|
if is_arch("x86_64") then
|
|
|
|
add_linkdirs("/usr/lib/x86_64-linux-gnu")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-08-19 16:51:10 +08:00
|
|
|
if is_mode("debug") then
|
|
|
|
set_symbols("debug")
|
|
|
|
set_optimize("none")
|
|
|
|
end
|
|
|
|
|
|
|
|
-- is release now
|
|
|
|
if is_mode("release") then
|
|
|
|
if is_plat("windows") then
|
2018-08-26 18:47:06 +08:00
|
|
|
--Unix-like systems hidden symbols will cause the link dynamic libraries to failed!
|
|
|
|
set_symbols("hidden")
|
2018-08-19 16:51:10 +08:00
|
|
|
end
|
|
|
|
set_optimize("fastest")
|
|
|
|
set_strip("all")
|
|
|
|
end
|
|
|
|
|
|
|
|
-- for the windows platform (msvc)
|
|
|
|
if is_plat("windows") then
|
|
|
|
add_packagedirs("./hikyuu_extern_libs/pkg")
|
|
|
|
-- add some defines only for windows
|
|
|
|
add_defines("NOCRYPT", "NOGDI")
|
2019-06-12 22:01:45 +08:00
|
|
|
add_cxflags("-EHsc", "/Zc:__cplusplus")
|
2018-08-19 16:51:10 +08:00
|
|
|
add_cxflags("-wd4819") --template dll export warning
|
2019-10-01 18:53:37 +08:00
|
|
|
add_defines("WIN32_LEAN_AND_MEAN")
|
2018-08-19 16:51:10 +08:00
|
|
|
if is_mode("release") then
|
|
|
|
add_cxflags("-MD")
|
|
|
|
elseif is_mode("debug") then
|
2020-01-09 00:11:37 +08:00
|
|
|
add_cxflags("-Gs", "-RTC1", "/bigobj")
|
2019-10-19 22:25:06 +08:00
|
|
|
add_cxflags("-MDd")
|
2018-08-19 16:51:10 +08:00
|
|
|
end
|
2019-09-22 23:02:08 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
if not is_plat("windows") then
|
|
|
|
-- disable some compiler errors
|
|
|
|
add_cxflags("-Wno-error=deprecated-declarations", "-fno-strict-aliasing")
|
2019-10-19 22:25:06 +08:00
|
|
|
add_cxflags("-ftemplate-depth=1023", "-pthread")
|
2019-09-22 23:02:08 +08:00
|
|
|
add_shflags("-pthread")
|
|
|
|
add_ldflags("-pthread")
|
2018-08-19 16:51:10 +08:00
|
|
|
end
|
|
|
|
|
2019-09-08 21:46:52 +08:00
|
|
|
add_vectorexts("sse", "sse2", "sse3", "ssse3", "mmx", "avx")
|
2018-08-19 16:51:10 +08:00
|
|
|
|
|
|
|
if is_plat("windows") then
|
|
|
|
add_subdirs("./hikyuu_extern_libs/src/sqlite3")
|
|
|
|
end
|
|
|
|
add_subdirs("./hikyuu_cpp/hikyuu")
|
|
|
|
add_subdirs("./hikyuu_pywrap")
|
|
|
|
add_subdirs("./hikyuu_cpp/unit_test")
|
2018-09-12 01:14:16 +08:00
|
|
|
add_subdirs("./hikyuu_cpp/demo")
|
2018-09-09 16:43:04 +08:00
|
|
|
|
2019-02-17 18:59:58 +08:00
|
|
|
after_build("scripts.after_build")
|
2018-09-12 01:14:16 +08:00
|
|
|
before_install("scripts.before_install")
|
|
|
|
on_install("scripts.on_install")
|
|
|
|
before_run("scripts.before_run")
|