Alien-ckdl

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Alien-ckdl

0.001  2026-04-30
        - Initial CPAN release.
        - Builds ckdl from upstream main as a static library via alienfile.
        - Bypasses upstream CMake; only the C sources making up libkdl
          are compiled (no Python, Cython, C++ bindings, or test suite).

alienfile  view on Meta::CPAN

use alienfile;

# Alien::ckdl always installs from source ("share").
# Pinned to a specific upstream commit of https://github.com/tjol/ckdl
# so builds are reproducible. Bump $CKDL_COMMIT to roll forward.
# Built statically; ckdl's CMake build is intentionally bypassed so we
# do not pull in Python/Cython, the C++ bindings, or the upstream test
# suite.
probe sub { 'share' };

# Pinned upstream commit (tjol/ckdl). Update both the SHA and the short
# version tag together when bumping.
my $CKDL_COMMIT  = 'c9c33fe64446287215e80705545139d92a48f829';
my $CKDL_VERSION = '0.0.0-' . substr($CKDL_COMMIT, 0, 12);

share {
    my $tarball = "https://github.com/tjol/ckdl/archive/$CKDL_COMMIT.tar.gz";

lib/Alien/ckdl.pm  view on Meta::CPAN

This distribution downloads, builds, and installs
L<ckdl|https://github.com/tjol/ckdl>, a C11 library for reading and
writing the KDL Document Language (KDL v1 and v2). It exposes the
result to Perl XS modules through the standard L<Alien::Base>
interface.

The Alien tracks the upstream C<main> branch rather than a tagged
release, and always installs from source as a B<static> library.
The upstream CMake build is intentionally bypassed: only the C source
files that make up C<libkdl> are compiled, omitting the upstream test
suite, the Python bindings, and the C++ bindings. As a result the
build has no Python, Cython, or CMake dependency.

The primary consumer is L<Text::KDL::XS>. End users who only want to
parse or emit KDL from Perl should install C<Text::KDL::XS> directly
and let it pull in this Alien as a build-time dependency.

=head1 METHODS

This class inherits from L<Alien::Base>; see that module for the full
list of methods. The ones most useful to a consumer are:

lib/Alien/ckdl.pm  view on Meta::CPAN


=back

When used through L<Alien::Build::MM>, the C<cflags> and C<libs>
strings are spliced into the generated Makefile automatically, so a
consumer's XS code can simply C<#include E<lt>kdl/kdl.hE<gt>> and link
against C<libkdl> with no extra configuration.

=head1 SEE ALSO

L<Text::KDL::XS>, the Perl XS binding that consumes this Alien.

L<Alien::Base> and L<Alien::Build>, the framework this distribution
plugs into.

L<https://github.com/tjol/ckdl>, the upstream C library.

L<https://github.com/kdl-org/kdl>, the KDL specification.

=head1 LICENSE



( run in 1.284 second using v1.01-cache-2.11-cpan-2398b32b56e )