Alien-Xmake

 view release on metacpan or  search on metacpan

Changes.md  view on Meta::CPAN

# Changelog

All notable changes to Alien::Xmake will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v1.0.3] - 2026-09-20

### Fixed

- Retry `config`/`build`/`clean` actions on Windows when there's no `--toolchain` setting because xmake has a hard time with the non-standard location of `gcc` from a Strawberry Perl install.

## [v1.0.2] - 2026-09-18

### Changed

- Compiler discovery in `_test_tools` now uses `Capture::Tiny` with a temp source file instead of `open3`/`gensym`, dropping the `Symbol` and `IPC::Open3` dependencies.

### Fixed

- Windows on Arm uses `PROCESSOR_ARCHITEW6432` env var when selecting the installer bundle, so emulated x64 perl (read: Strawberry Perl) downloads the native ARM64 build instead of the wrong win64 one.
- `_get_xmake_version` now warns when the downloaded binary cannot be spawned (e.g. wrong-architecture on Windows Arm) instead of silently returning `v0.0.0`.
- `./configure` on Unix is now run through `bash` when available, fixing builds on platforms whose default `/bin/sh` lacks POSIX features (Solaris and maybe others).

## [v1.0.1] - 2026-09-08

### Fixed

- xmake's core C engine prioritizes the `XMAKE_PROGRAM_DIR` env var over its own bundled Lua scripts creating situations where our local sharedir install attempts to run old, incompatible .lua from the system install.

## [v1.0.0] - 2026-09-07

No changes from previous release.

## [v0.9.5] - 2026-09-07

Looking for a reason not to make this v1.0.0...

### Changed

- Split `Alien::Xrepo` out into its own distribution and repo
- `Alien::Xmake::exe` returns the bare executable path without embedded quotes; the quote-on-demand sites now do their own quoting, and every list-form `system @cmd` / `Capture::Tiny` spawn avoids quote characters that made `CreateProcess` fail for p...

## [v0.9.4] - 2026-09-04

### Added

- `Alien::Xmake::target_info( $name )` wraps the per-target detail of `xmake show -t <target>` as a hashref by default or the raw text with `plain => 1`.

### Changed
- Removed the deprecated `json => 1` option from `Alien::Xmake::show`; the upstream bare `--json` flag is deprecated in favour of `--format=json`, so callers use `format => 'json'`.

### Fixed
- v0.9.x has had a broken install step that just plain ignored the share directory.

## [v0.9.3] - 2026-09-03

### Fixed

- Fixed file permissions when copying directories

## [v0.9.2] - 2026-09-02

Aliens based on `xrepo` install only what end users need (libs, binaries, etc.) and not all the tools installed along the way (compilers, cmake, python, etc.).

### Added

- Just a bunch of examples in the docs.

### Changed

- `::Base::Builder::_resolve_alien` now re-exports installed packages with (`xrepo export -k shared --shallow`) to avoid extra toolchain clutter in the sharedir install. This might not be the *best* place to do it but it's the current place.
- `::Base` avoids reinstalling everything when running unit tests

## [v0.9.1] - 2026-09-02

More polish as I inch towards v1.0.0.

### Added

- Multi-package support in `Alien::Xrepo::Base` (borrowing from `Alien::Build`:



( run in 1.177 second using v1.01-cache-2.11-cpan-e623d60df62 )