if is_mode("debug") then set_symbols("debug") set_optimize("none") end if is_mode("release") then set_symbols("hidden") set_strip("all") if is_plat("iphoneos", "android") then set_optimize("smallest") else set_optimize("fastest") end end 这些看似常用的设置,如果每个项目都来一遍...
就拿-O0的编译优化flags来说,虽然有set_optimize来实现跨编译器配置,但如果用户直接设置add_cxflags("-O0")呢?gcc/clang下可以正常处理,但是msvc下就不支持了 也许我们能通过if is_plat() then来分平台处理,但很繁琐,因此xmake内置了flags的自动映射功能。 基于gcc flags的普及性,xmake采用gcc的flags命名规范,...
即使xmake提供了set_optimize简化了不同编译器的复杂配置,但是对于不同的编译模式: debug/release,还是要自己做一些繁琐的判断和配置: 代码语言:javascript 复制 ifis_mode("debug")thenset_symbols("debug")set_optimize("none")endifis_mode("release")thenset_symbols("hidden")set_strip("all")ifis_plat("...
if not target:get("optimize") then target:set("optimize", "none") end end end) rule("mode.release") after_load(function (target) if is_mode("release") then if not target:get("symbols") and target:targetkind() ~= "shared" then target:set("symbols", "hidden") end if not target...
set_toolset("mm","clang") set_toolset("mxx","clang","clang++") set_toolset("as","clang")-- ... 其中set_toolset用于挨个设置不同的工具集,比如编译器、链接器、汇编器等。 xmake默认会从xmake f --sdk=xx的sdk参数中去探测工具,当然我们也可以在xmake.lua中对每个自定义工具链调用set_sdk("/...
set_optimize("fastest") set_strip("all")endtarget("demo") set_kind("binary") add_files("src/*.c") 你只需要通过配置来切换构建模式: $ xmake f -m debug; xmake $ xmake f -m release; xmake [-m|--mode]属于内置选项,不需要自己定义option,就可使用,并且模式的值是用户自己定义和维护的,你...
就拿-O0的编译优化flags来说,虽然有set_optimize来实现跨编译器配置,但如果用户直接设置add_cxflags("-O0")呢?gcc/clang下可以正常处理,但是msvc下就不支持了 也许我们能通过if is_plat() then来分平台处理,但很繁琐,因此xmake内置了flags的自动映射功能。
ifis_mode("releasedbg")thenset_symbols("debug")set_optimize("fastest")set_strip("all")end 我们可以通过:xmake f -m releasedbg来切换到此编译模式。 mode.minsizerel 为当前工程xmake.lua添加minsizerel编译模式的配置规则,例如: 代码语言:javascript ...
set_optimize("none") -- 如果是release模式 elseif is_mode("release") then -- 隐藏符号 set_symbols("hidden") -- strip所有符号 set_strip("all") -- 开启优化为:最快速度模式 set_optimize("fastest") -- 忽略帧指针 add_cxflags("-fomit-frame-pointer") ...
set_optimize("fast") set_warnings("all", "error") target("test") set_kind("binary") add_files("src/*.c") target("test2") set_kind("binary") add_files("src2/*.c") 跟刚才的配置不同的是,此处设置放在了target的上面,此处不属于target域,是root全局设置,会影响下面的所有target目标程序的...