You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, very friendly to novices, can get started quickly in a short time, allowing users to focus more on the actual project development.
9
-
10
-
This is the first version of xmake this year and the first version that is fully adapted to support Apple Silicon (macOS ARM) devices.
11
-
12
-
In this version, we mainly improved the integrated support for C/C++ dependent packages, which is more stable, and can be more flexible to achieve customized configuration compilation.
13
-
14
-
In addition, we also focused on improving the vs/vsxmake two vs project generator plugins, fixing many details, and also supporting the sub-project `group`, and now it is possible to generate a project structure similar to the following figure.
15
-
16
-

17
-
18
-
About Zig, because it has fixed a lot of problems that I have reported before in v0.7.1. Now xmake can already support the compilation of zig projects.
19
-
20
-
At the same time, we have newly developed a [luarocks-build-xmake](https://github.com/xmake-io/luarocks-build-xmake) plugin to replace luarocks' built-in build system with xmake.
21
-
22
-
Finally, in this version, we continue to improve the `xmake f --menu` graphical configuration menu, which fully supports mouse operation and scrolling support, and also supports utf8.
23
-
24
-
*[Github](https://github.com/xmake-io/xmake)
25
-
*[Document](https://xmake.io/)
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
## New feature introduction
37
-
38
7
### Add add_requireconfs to improve package configuration
39
8
40
9
Despite the previous version, we can define and configure dependent packages by `add_requires("libpng", {configs = {shared = true}})`.
@@ -468,4 +437,4 @@ We have also improved the llvm toolchain to solve the problem of the lack of isy
468
437
*[#1142](https://github.com/xmake-io/xmake/issues/1142): Fix git not found when installing packages
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
10
-
11
-
In version 2.5.2, we added a heavyweight new feature: `Pull remote cross-compilation toolchain automatically`.
12
-
13
-
Those who have done cross-compilation and have experience in C/C++ project migration should know that it is very troublesome to toss various cross-compilation toolchains
14
-
and transplant and compile projects. You need to download the corresponding toolchain yourself.
15
-
16
-
And it is easy to make mistakes in configuring the toolchain and the compilation environment to cause compilation failure.
17
-
18
-
Now, xmake can already support the automatic download of the toolchain required by the project, and then use the corresponding toolchain to directly compile the project.
19
-
The user does not need to care about how to configure the toolchain. In any case, just execute the `xmake` command to complete the compilation.
20
-
21
-

22
-
23
-
Even for the integration of C/C++ dependent packages, you can automatically switch to the corresponding toolchain to compile, install, and integrate.
24
-
Everything is fully automated and does not require users to worry about it.
25
-
26
-
In addition to the cross-compilation toolchain, we can also automatically pull toolchains, such as specific versions of llvm, llvm-mingw, zig
27
-
and other toolchains to participate in the compilation of C/C++/Zig projects.
28
-
29
-
Even cmake does not support the automatic pull of the toolchain. At most, it can only cooperate with third-party package management such as vcpkg/conan to integrate C/C++ dependent packages.
30
-
In addition, even for C/C++ dependent packages, xmake has its own native The built-in package management tool has no dependencies at all.
31
-
32
-
*[Github](https://github.com/xmake-io/xmake)
33
-
*[Document](https://xmake.io/)
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
## New feature introduction
45
-
46
7
### Automatically pull the remote cross-compilation toolchain
47
8
48
9
Starting from version 2.5.2, we can pull the specified toolchain to integrate the compilation project, and we also support switching the dependent package to the corresponding remote toolchain to participate in the compilation and integration.
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In version 2.5.3, we have been able to build linux and android bpf programs.
11
-
12
-
Although bpf has certain requirements for the compilation toolchain, such as the newer llvm/clang and android ndk toolchains, xmake can automatically pull a specific version of llvm/ndk for compilation, and it can also automatically pull libbpf dependencies. Library.
13
-
14
-
In addition, in the new version we have added support for the integration of C/C++ packages from Conda.
15
-
16
-
*[Github](https://github.com/xmake-io/xmake)
17
-
*[Document](https://xmake.io/)
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
## New feature introduction
26
-
27
7
### Build a Linux Bpf program
28
8
29
9
In the new version, we started to support the compilation of bpf programs, as well as linux and android platforms, and can automatically pull the llvm and android ndk toolchains.
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In version 2.5.4, we added support for Apt and Portage package managers. On Ubuntu/Gentoo, we can also use `add_requires` to quickly integrate the packages they provide.
11
-
12
-
And we have also improved the support for the Vcpkg package manager, and added support for the installation of arm/arm64 architecture packages.
13
-
14
-
In addition, we have also enhanced the `xrepo env shell` environment. You can load a shell environment with a specific package configuration by configuring a series of `add_requires` package configurations in `xmake.lua`.
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In version 2.5.5, we continue to improve the experience of remote package integration, realize the pre-compiled package in the cloud, and then directly download the integrated pre-compiled binary package. This can greatly reduce the installation time of some packages that are very slow to compile.
11
-
12
-
In addition, in the new version, we have also re-implemented the new version of the local package generation scheme, which fully supports `add_requires` and `add_packages` seamlessly. From then on, remote packages and local packages can be maintained in a unified way.
13
-
14
-
*[Github](https://github.com/xmake-io/xmake)
15
-
*[Document](https://xmake.io/)
16
-
17
-
## New feature introduction
18
-
19
7
### Download and install the pre-compiled package
20
8
21
9
Each time you install a package by the built-in package manager of xmake, you must download the corresponding package source code, and then perform local compilation and installation integration. This is for some large packages that compile very slowly, and some packages that rely on a lot of compilation tools. It will be very slow.
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
This is a stability fix version, which mainly fixes and improves some compatibility issues related to pre-compiled binary packages. In addition, some useful interfaces have been added to set the default compilation platform, architecture and mode, as well as the allowed compilation platform, architecture list, and so on.
11
-
12
-
*[Github](https://github.com/xmake-io/xmake)
13
-
*[Document](https://xmake.io/)
14
-
15
-
## New feature introduction
16
-
17
7
### Fix windows precompiled package compatibility
18
8
19
9
The previous version provided preliminary support for the installation of pre-compiled packages under Windows, but because the compatibility of the toolset version was not considered, if the user's VS version is too low, link problems will occur when the package is integrated.
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In this version, we have added a lot of new features. Not only did we increase the compilation support for Vala and Metal languages, we also improved the package dependency management, which can support the locking and updating of dependent packages like npm/package.lock, so The user's project will not be affected by the update and change of the upstream package repository.
11
-
12
-
In addition, we also provide some more practical rules. For example, `utils.bin2c` allows users to easily and quickly embed some binary resource files into the code, and obtain relevant data in the form of header files.
13
-
14
-
*[Github](https://github.com/xmake-io/xmake)
15
-
*[Document](https://xmake.io/)
16
-
17
-
## New feature introduction
18
-
19
7
### Added Vala language support
20
8
21
9
In this version, we can already initially support the construction of Vala programs, just apply the `add_rules("vala")` rule.
@@ -45,13 +33,6 @@ More examples: [Vala examples](https://github.com/xmake-io/xmake/tree/master/tes
45
33
46
34
This feature is similar to npm's package.lock and cargo's cargo.lock.
47
35
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
36
For example, if we quote some packages, by default, if the version is not specified, xmake will automatically pull the latest version of the package for integrated use each time, for example:
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In this version, we mainly added support for the construction of Pascal language projects and Swig modules, and for the Vala language support added in the previous version, we have also made further improvements, adding support for the construction of dynamic and static libraries.
11
-
12
-
In addition, xmake now also supports the optional Lua5.3 runtime, which provides better cross-platform support. At present, xmake has been able to run normally on the LoongArch architecture.
13
-
14
-
*[Github](https://github.com/xmake-io/xmake)
15
-
*[Document](https://xmake.io/)
16
-
17
-
## New feature introduction
18
-
19
7
### Pascal language support
20
8
21
9
Currently, we can use the cross-platform Free Pascal toolchain fpc to compile and build Pascal programs, for example:
@@ -47,12 +35,6 @@ We can also add compilation options related to Pascal code through the `add_fcfl
47
35
48
36
For more examples, see: [Pascal examples](https://github.com/xmake-io/xmake/tree/master/tests/projects/pascal)
49
37
50
-
51
-
52
-
53
-
54
-
55
-
56
38
### Vala library compilation support
57
39
58
40
In the last version, we added support for the Vala language, but before, we could only support the compilation of console programs, and could not generate library files. In this version, we have added additional compilation support for static libraries and dynamic libraries.
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In this version, we have added a lot of heavyweight new features, such as: Nim language project build support, Keil MDK, Circle and Wasi toolchain support.
11
-
12
-
In addition, we have made major improvements to C++20 Modules, not only supporting the latest gcc-11, clang and msvc compilers,
13
-
but also automatic analysis of inter-module dependencies to achieve maximum parallel compilation support.
14
-
15
-
Finally, there is a more useful feature that is Unity Build support, through which we can greatly improve the compilation speed of C++ code.
16
-
17
-
*[Github](https://github.com/xmake-io/xmake)
18
-
*[Document](https://xmake.io/)
19
-
20
-
## New feature introduction
21
-
22
7
### Nimlang project construction
23
8
24
9
Recently, we have added build support for the Nimlang project. For related issues, see: [#1756](https://github.com/xmake-io/xmake/issues/1756)
[xmake](https://github.com/xmake-io/xmake) is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
9
-
10
-
In this version, we have added a lot of heavyweight new features, such as: Nim language project build support, Keil MDK, Circle and Wasi toolchain support.
11
-
12
-
In addition, we have made major improvements to C++20 Modules, not only supporting the latest gcc-11, clang and msvc compilers,
13
-
but also automatic analysis of inter-module dependencies to achieve maximum parallel compilation support.
14
-
15
-
Finally, there is a more useful feature that is Unity Build support, through which we can greatly improve the compilation speed of C++ code.
16
-
17
-
*[Github](https://github.com/xmake-io/xmake)
18
-
*[Document](https://xmake.io/)
19
-
20
-
## New feature introduction
21
-
22
7
### Switch to Lua5.4 runtime by default
23
8
24
9
After several versions of iterative testing, we officially switched to the Lua5.4 runtime in version 2.6.1.
@@ -300,4 +285,4 @@ target("loop")
300
285
301
286
* Fix semver to parse build string with zero prefix
302
287
*[#50](https://github.com/libbpf/libbpf-bootstrap/issues/50): Fix rule and build bpf program errors
303
-
*[#1610](https://github.com/xmake-io/xmake/issues/1610): Fix `xmake f --menu` not responding in vscode and support ConPTY terminal virtkeys
288
+
*[#1610](https://github.com/xmake-io/xmake/issues/1610): Fix `xmake f --menu` not responding in vscode and support ConPTY terminal virtkeys
0 commit comments