Alien-Xmake
view release on metacpan or search on metacpan
`arch`, `mode`, `kind`, `toolchain`, `toolchain_host`, `cross`, `target_os`, `sdk`, `runtimes`, `vs`,
`vs_toolset`, `vs_sdkver`, `vs_runtime`, `ndk`, `ndk_stdcxx`, `ndk_sdkver`, `android_sdk`, `mingw`, `emsdk`,
`cuda`, `qt`, `qt_host`, `vcpkg`, `wdk`, `build_toolver`, `ccache`, `ccachedir`, `debugger`, `trybuild`,
`tryconfigs`, `require`, `includedirs`, `linkdirs`, `links`, `syslinks`, `rc*`, `fc*`, ...) as well as the
compiler/flag subtables `cflags`, `cxflags`, `cxxflags`, `mflags`, `mmflags`, `mxflags`, `ldflags`, `arflags`,
`asflags`, `shflags`, and `cuflags`. Any `--key=value` pair can be passed via `set => { key => value }`.
- **clean**
Reset the configuration to defaults (`-c`).
- **check**
Only check the configuration and exit (`--check`).
- **menu**
Open the interactive configuration menu (`--menu`).
- **export**, **import**
Export/import configuration files.
- **builddir**
Alternate build directory (`-o`).
## `global( %options )`
```perl
$xmake->global(network => 'y', theme => 'default');
$xmake->global(vs => '2022');
```
Reads/writes global (user-level) configuration. Shares the platform/toolchain options from `configure( ... )` that
exist on `global` (`android_sdk`, `build_toolver`, `cuda`, `emsdk`, `mingw`, `ndk`, `ndk_sdkver`, `qt`,
`qt_host`, `vcpkg`, `vs`, `wdk`).
- **clean**
Reset global configuration to defaults (`-c`).
- **check**, **menu**
Same semantics as `configure( ... )`.
- **theme**, **debugger**, **ccache**
Global UI/terminal settings.
- **cachedir**
Global cache directory.
- **policies**
Global policy overrides (`--policies=`).
- **network**, **proxy**, **proxy\_hosts**, **proxy\_pac**
Network settings, e.g. `network => 'n'` to go offline, `insecure_ssl => 1` to skip HTTPS verification.
- **pkg\_searchdirs**, **pkg\_cachedir**, **pkg\_installdir**
Global package search/cache/install directories.
## `install( [$target], %options )`
```perl
$xmake->install;
$xmake->install('hello', installdir => './dist');
```
Installs the built binaries to a staging directory (`DESTDIR`).
- **installdir**
The install directory (`-o`); `bindir`, `libdir`, `includedir` adjust the per-kind subdirectories.
- **all**
Install all targets (`-a`).
- **group**
Install all targets in the group (`-g`).
- **binaries**, **headers**, **libraries**, **packages**
Set to `y` or `n` to enable or disable installing that kind of file.
## `uninstall( [$target], %options )`
```
$xmake->uninstall;
$xmake->uninstall('hello');
```
Uninstalls installed binaries from the install directory. Supports `installdir`, `bindir`, `libdir`, `includedir`,
`group` and `admin`.
## `package( [$target], %options )`
```perl
$xmake->package; # package release artifacts
$xmake->package('hello', outputdir => './dist');
```
Packages the built targets into distribution archives/installers. `outputdir` selects the destination, `format` the
package format (`-f`, e.g. `deb`, `rpm`, `nsis`), `all` includes dependent targets, and `homepage`,
`description`, `url`, `version` and `shasum` fill the package metadata.
## `pack( [$pkg], %options )`
```perl
$xmake->pack('libpng', formats => ['zip', 'targz'], jobs => 4);
```
Bundles an installed package from the local package cache into distribution archives. `outputdir` selects the
destination, `formats` the archive format(s) (`zip`, `targz`, ...), `basename`, `autobuild` and `jobs` tune the
archive name, rebuild behavior and parallelism.
( run in 0.324 second using v1.01-cache-2.11-cpan-aadc1410aed )