-
-
Notifications
You must be signed in to change notification settings - Fork 776
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v3.0 Roadmap #5527
Comments
Support dynamical script load, so we can distribute some xmake scripts by packages. This would be useful when sharing some scripts between projects. |
This key point is difficult to be implemented because the package is not yet installed when it is first compiled. We can currently only distribute packages rules. |
A better way for xmake packages to pull off info from their build xmake.lua, to avoid having to duplicate defines and such |
I think it is very important to improve the documentation, now the documentation of a few more serious problems |
支持对apt,pkg-config等系统库指定使用动态库或静态库 |
elements of targetRe-consider relationship of rules, toolchains, config variables, values and policies. Table below shows which entity can hold which element:
Optionshould option be a type of task, or just a object like value? should option checks itself? |
new document, https://docs.xmake.io/en-us/index.html But I don't have a lot of time alone to update and perfect it. |
Maybe we can use document generators like LDoc and embed the document into annotations. |
Supports specifying the use of dynamic libraries or static libraries for system libraries such as apt and pkg-config. |
Remove support for built-in variables in script scope, support it only in the description scope, Poll: #5529 |
A way to reuse rules in a project that uses xmake, but in a package definition without duplicating work. If such a thing requires some modifications on the lib side, that's fine. |
Rename |
Poll: #5533 |
For my project xmake-rs, I wanted xmake to send the resolved list of a target's links to the rust part. This way the user wouldn't need to link anything in the |
Use ninja generator for cmake package by default. |
Poll: #5545 |
Add a way to really clean everything. Sometimes, I need to delete |
|
A way to change config without having to respecify all config, maybe separate some configs such as mode from other configs. It's quite painful to work with a lot of config because of that. |
希望option域里面 能够支持 add_rules 接口 |
It is hoped that the add_rules interface can be supported in the option domain. |
希望定义option时可以直接指定default值,而不用这样再包一层 https://github.com/xmake-io/xmake-repo/blob/dev/packages/a/angle/port/6288/xmake.lua |
I hope that when defining options, I can directly specify the default value without having to wrap it up again https://github.com/xmake-io/xmake-repo/blob/dev/packages/a/angle/port/6288/xmake.lua |
原本就可以直接指定,这里的问题是你用了 is_plat ,想要在 option 里用,只能在脚本域。这个是本身机制决定的,没法在描述域实现 |
跑测试的时候,是否有必要把所有的config也测试到呢? 或者说写包描述的时候可以给config添加一个字段指定是否对这个config进行自动测试 |
这个不太现实,新增一个config ,排列组合下,ci 的测试 job 是数量级暴增的,一个 config 如果不是 boolean 值,是 string values 的,组合就更多, 还可能引入各种 deps 编译,没这么多资源,不仅耗时,耗ci资源,跑出问题,也没这么多人力修。 |
This is not realistic. If you add a new config, the number of ci test jobs will increase by orders of magnitude under the permutation and combination. Without so many resources, it will not only be time-consuming, but also consume ci resources. If problems occur, there will not be so many manpower to repair them. |
每个项目都用不同的toolchain吗?一般有一两个全局虚拟环境就可以了吧 |
Does each project use a different toolchain? Generally, one or two global virtual environments will suffice. |
现在是这样, 我现在是希望xmake不管我在环境变量中加的这个msys2中的库 |
This is now the case, I now hope that xmake will ignore the library in msys2 that I added in the environment variable. |
这个很奇怪啊,msys2的库名字是xxx.dll.a,msvc是.lib,格式都不一样不应该链接上的,除非用了msys2 gfortran之类工具;这种情况把自己的flang/intel fortran放gfortran前面也能解决问题。感觉根本问题不在环境变量,在xmake找系统toolchain/library的机制 |
This is very strange. The library name of msys2 is xxx.dll.a, and msvc is .lib. The formats are different and should not be linked, unless tools such as msys2 gfortran are used; in this case, replace your own flang/intel fortran Putting it in front of gfortran can also solve the problem. I feel that the fundamental problem is not in the environment variables. I am looking for the system toolchain/library mechanism in xmake. |
找到了,是这个issue 主要问题应该是“path 里面加了 pkg-config”,xmake会使用这个msys下的pkg-config |
Found it, it’s this issue |
这个是可以判断的,parse完linkdir之后 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/pkgconfig/find_package.lua#L88-L89 这里区分一下后缀名.a/.lib就行了。尽管这里msys2的zlib msvc也能用,但混用mingw格式包的这种行为还是默认禁用为好,实在要用可以加一个policy 控制 是否对msvc启用mingw格式的包 |
可以新开一个issue |
This can be judged after parse linkdir https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/pkgconfig/find_package.lua#L88-L89 Let’s distinguish the suffix names here .a/.lib will do. Although zlib msvc of msys2 can also be used here, the behavior of mixing mingw format packages is better to be disabled by default. If you really want to use it, you can add a policy to control whether to enable mingw format packages for msvc. |
You can open a new issue |
这个到 #4479 里面去讨论,或者新开 issues 就行了。 |
Just discuss this in #4479, or open a new issue. |
支持,现在的musl.cc工具链只能从linux上跨平台/架构编译。这个工具链能大大扩展交叉编译的能力 |
Supported, the current musl.cc toolchain can only be compiled cross-platform/architecture from Linux. This tool chain can greatly expand cross-compilation capabilities |
We can use |
New Poll: Autobuild when calling |
Now we can use |
我需要一个接口来遍历我的项目依赖的三方库的列表,我需要将三方库的二进制打包到我的安装包中。
但是这只能获取到三方库的库文件,对于一些拥有插件或者工具的三方库,例如gstreamer、ffmpeg、qt,我需要用到他们的工具和插件,并将其打包到安装包中。目前我没有办法做到直接从xmake的脚本域中找到它们 又或者为package的包管理中添加一个on_export_runtime(),可以用于一键导出三方库的运行时? |
I need an interface to traverse the list of third-party libraries that my project depends on, and I need to package the binaries of the third-party libraries into my installation package.
But this can only obtain the library files of third-party libraries. For some third-party libraries with plug-ins or tools, such as gstreamer, ffmpeg, and qt, I need to use their tools and plug-ins and package them into the installation package. Currently I have no way to find them directly from xmake's script domain Or add an on_export_runtime() to the package management of the package, which can be used to export the runtime of third-party libraries with one click? |
这种问题,没必要在这里问,可以到 discussion 里提,target:pkgs() ,pkg:installdir() 原本就能取到。 |
There is no need to ask this kind of question here. You can mention it in the discussion. Target:pkgs() and pkg:installdir() can be obtained originally. |
If there are proposed changes that you would like to see introduced in xmake v3.0, you can submit them here.
It will be adopted if the vote result >= 80%.
we can use
set_policy("compatibility.version", "3.0")
orxmake f --policies=compatibility.version:3.0
to attempt v3.0Roadmap (Adopted)
Roadmap (Draft)
xmake run
The text was updated successfully, but these errors were encountered: