xmake-io / xmake

🔥 A cross-platform build utility based on Lua
https://xmake.io
Apache License 2.0
10.04k stars 785 forks source link

targetdir()和installdir()行为不一致 #711

Closed x11244 closed 4 years ago

x11244 commented 4 years ago

targetdir()输出不带路径分隔符"\“或"/" installdir()输出结果带路径分隔符"\“或"/"

    after_install(function(target)
        print("target dir: " .. target:targetdir())
        print("install dir: " .. target:installdir())
    end)

输出如下:

PS C:\workspace\co> xmake install -o C:\tools\co\
installing co ...
installing to C:\tools\co\ ...
target dir: build\mingw\i386\release
install dir: C:\tools\co\
install ok!

请问是否要修复一致,还是保持目前状态。

还有,无论是binary、shared还是static项目,在使用xmake -v输出时,均为kind=static

PS C:\workspace\co> xmake -v
configure
{
    ccache = true
    ndk_stdcxx = true
    host = windows
    sdk = C:\Qt\Qt5.7.0\Tools\mingw530_32
    mingw = C:\Qt\Qt5.7.0\Tools\mingw530_32
    buildir = build
    arch = i386
    clean = true
    cxx = C:\Qt\Qt5.7.0\Tools\mingw530_32\bin\gcc
    cross =
    bin = C:\Qt\Qt5.7.0\Tools\mingw530_32\bin
    kind = static
    mode = release
    ld = C:\Qt\Qt5.7.0\Tools\mingw530_32\bin\g++
    plat = mingw
    qt = C:\Qt\Qt5.7.0
}

这个行为也与项目中set_kind行为不一致。 即使set_kind("binary")或是set_kind("shared"),-v输出永远为 kind=static 是不是这两个kind不是一个概念,还请麻烦给解释一下。

waruqi commented 4 years ago

targetdir()输出不带路径分隔符"\“或"/" installdir()输出结果带路径分隔符"\“或"/"

这个无所谓了,xmake内部对path的处理,最终都会执行 path.translate归一化去重的,即使上层用户传入的都是: xxx///dasd\\\\adasd这种混用的都没关系,通常传递到实际编译器、或者调用系统api时候,所有路径都已经是归一化过的

另外用户自己如果是调用path.join等生成的path,都是自动归一化过的。。你要是觉得看不习惯,自己上层再调用下path.translate(dir) 也可以。

这个行为也与项目中set_kind行为不一致。 即使set_kind("binary")或是set_kind("shared"),-v输出永远为 kind=static 是不是这两个kind不是一个概念,还请麻烦给解释一下。

config里面看到都是xmake config 的配置参数,xmake config --kind=static/shared

用于动态切换某个target的kind类型,例如:

target("test")
    set_kind("$(kind)")

而如果你项目都写死set_kind("shared")了,那么不管xmake f --kind=static怎么改,都是影响不到的,而默认kind的命令参数值是static,所以你如果没去传递参数改它,那就一直是这个值

x11244 commented 4 years ago

@waruqi 学习了。解决了我的困惑。也强化了我的技能。

这个xmake还是很强大,之前看cmake的说明看的头都大了。xmake用起来还是挺顺畅了,我用了大概一个星期就基本可以用来完成手头的活了。很好,支持一下。 咱们这个文档能不能照顾一下离线用户,生成一个可以下载的pdf。 github时好时坏,xmake.io也有点着急。 关键是给个离线的手册,有需要啊。强烈呼吁! 感谢你的热情。

waruqi commented 4 years ago

文档就几个md,你直接从 https://github.com/xmake-io/xmake-docs 下载下来,merge下,然后通过makrdown2pdf 的工具自己转下就好了。或者直接装个vscode的md插件预览看下也可以

另外也有其他人,把文档收录到dash上了,可以直接通过dash离线看 也是可以的 https://kapeli.com/dash

x11244 commented 4 years ago

收到。