./devel/samurai, Ninja-compatible build tool written in C

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.2, Package name: samurai-1.2, Maintainer: nikita

samurai is a ninja-compatible build tool written in C99 with a focus on
simplicity, speed, and portability.

samurai implements the ninja build language through version 1.9.0 except
for MSVC dependency handling (`deps = msvc`). It uses the same format
for `.ninja_log` and `.ninja_deps` as ninja, currently version 5 and 4
respectively.

It is feature-complete and supports most of the same options as ninja.

samurai requires various POSIX.1-2008 interfaces.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 31.942 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-16 10:39:48 by Nia Alarie | Files touched by this commit (2)
Log message:
samurai: Fix overlapping definition with libc.
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2020-12-17 23:01:04 by Michael Forney | Files touched by this commit (3) | Package updated
Log message:
samurai: update to 1.2

## New features

- Subtools `list`, `query`, and `commands` are now implemented.
- Dry-run execution is now supported (`-n` flag).
- The `%o` specifier is now supported in `NINJA_STATUS`, used to
  display the average rate of finished jobs.

## Bug fixes

- Fix version comparison when checking `ninja_required_version`
  with a version that has multiple digits in some component.

## Other changes

- Work around POSIX.1-2008 conformance issue on SunOS-based operating
  systems.
   2020-11-12 02:24:36 by David H. Gutteridge | Files touched by this commit (2)
Log message:
samurai: fix SunOS build
   2020-06-13 19:50:40 by Nia Alarie | Files touched by this commit (2)
Log message:
samurai: Update to 1.1

New features

    The targets subtool is now implemented. This subtool prints targets built by \ 
the project, either by rule name or depth from the final outputs.
    The compdb subtool is now implement. This subtool dumps a JSON compilation \ 
database, as specified in \ 
https://clang.llvm.org/docs/JSONCompilationDatabase.html, and allows integration \ 
with some IDEs and build tools.
    The NINJA_STATUS environment variable is now honored, allowing control over \ 
what information is included in the status line.
    The -l flag (scheduling based on load average) is now ignored for \ 
compatibility with ninja.

Bug fixes

    When a job specified depfile and deps, but did not actually write the \ 
depfile (for example, D compilers with meson), we now write an empty dependency \ 
record to .ninja_deps. This matches ninja's behavior and prevents unwanted \ 
rebuilds.
    When the manifest is dirty, but a restat = 1 action causes the manifest \ 
rebuild to be pruned, we now continue with the build. This prevents a manifest \ 
rebuild loop in these cases (for example with cmake using glob patterns), since \ 
the manifest is always dirty after reloading.

Cleanups

    When no default line is present in build.ninja, we previously scheduled all \ 
targets for building rather than just the root targets (those with no \ 
dependents). This makes no difference is practice sin

    ce we need to build all dependencies before a target anyway, but this was \ 
changed in order to implement the targets subtool.
    We now do a better job at freeing memory when the manifest is rebuilt.
    Some code style inconsistencies were fixed.

Acknowledgements

This release involved the help of a number of people who reported bugs and \ 
implemented features. Thanks to Brian Callahan, Daan De Meyer, Ethan Sommer, \ 
Rasmus Thomsen, Simon Zeni, and @angularorbit for your contributions!
   2020-04-28 13:46:30 by Nikita | Files touched by this commit (29)
Log message:
adjust maintainer to my new login
   2020-01-01 02:04:28 by ng0 | Files touched by this commit (2) | Package updated
Log message:
devel/samurai: Update to 1.0

Changelog picked from https://github.com/michaelforney/samurai/releases:

New features

* The -d keepdepfile and -d keeprsp debugging options are
  now supported to allow inspection of the generated
  dependency file and RSP file respectively.

Bug fixes

* Failed jobs weren't releasing their pool slot. This could
  cause the build to terminate early when pool depth was 1,
  and the failure limit (-k flag) had not yet been reached.
* Dependency files containing more than one output: input
  line would have the first character of the output path
  skipped on subsequent lines. This would result an error
  since all lines in the dependency file must refer to the
  same output path.
* Empty paths in build edges (e.g. expanded from an undefined
  variable) were not getting rejected, causing a NUL byte to
  be written past the end of the allocation for the path string
  when it was canonicalized as ..
* Recursive rule variable definitions were not detected and
  rejected, causing infinite recursion when attempting to expand them.

Cleanups

* Better error message for dependency log read failure,
  differentiating unexpected EOF from read error.
* Standard output is now line buffered, even when redirected
  to a pipe or regular file. This allows incremental progress
  updates in cases where the output is being saved or piped
  to another command.
* The Makefile now declares dependencies on header files, so
  that during development, objects get rebuilt when the headers change.