Alien::...::CMake(3)

πŸ’– Alien::...::CMake β€” bestie edition πŸ’–

okay so real talk, this is Alien::Build::Plugin::Build::CMake, and it lives in the User Contributed Perl Documentation corner of your perldoc, bestie. it's giving "build plugin that actually carries". let's go πŸ¦‹


✨ NAME ✨

Alien::Build::Plugin::Build::CMake</purl> β€” the CMake plugin for Alien::Build. that's the whole name, no crumbs, periodt.

🌸 VERSION 🌸

version 2.88. yes ma'am, that's the one we're on. πŸ’…

πŸŽ€ SYNOPSIS πŸŽ€

here's the vibe, copy-paste energy:

use alienfile;

share {
  plugin 'Build::CMake';
  build [
    # this is the default build step, if you do not specify one.
    [ '%{cmake}',
        @{ meta->prop->{plugin_build_cmake}->{args} },
        # ... put extra cmake args here ...
        '%{.install.extract}'
    ],
    '%{make}',
    '%{make} install',
  ];
};
ngl that comment in there is doing unpaid labor telling you that the build array is the default build step if you don't specify one. iconic of it. πŸ‘‘

πŸ’œ DESCRIPTION πŸ’œ

so this plugin's whole job is helping you build alienized projects that use cmake. the dream? the intention is literally to make this a core Alien::Build plugin if/when it becomes stable enough. it's in its "when it's stable, we're official" era and honestly? respect. 🫢

this plugin hands you a meta property called plugin_build_cmake.args, which may change over time β€” no cap, that's the actual warning β€” but for the moment it includes:

-G %{cmake_generator}                          \
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true    \
-DCMAKE_INSTALL_PREFIX:PATH=%{.install.prefix} \
-DCMAKE_INSTALL_LIBDIR:PATH=lib                \
-DCMAKE_MAKE_PROGRAM:PATH=%{make}

that's the line-up, bestie, don't lose a single backslash. ✨

and it also supports out-of-source builds via the meta property out_of_source. yes, your source tree stays pristine, your build happens elsewhere, it's called having boundaries. 🌈


🧚 METHODS 🧚

πŸ’« cmake_generator

returns the cmake generator according to your Perl's make. that's it, that's the method. she's simple, she's efficient. ⭐

πŸ’« is_dmake

returns true if your Perl's make appears to be dmake. it's the vibe check for dmake specifically. πŸ’€


πŸ”₯ HELPERS πŸ”₯

πŸ’… cmake

this plugin replaces the default cmake helper with the one that comes from Alien::cmake3. so like, you're not getting the dusty default, you're getting the glow-up. ✨

πŸ’… cmake_generator

this is the appropriate cmake generator to use based on the make that your Perl uses. frequently it's Unix Makefiles β€” the classic, the standard, the main character. πŸ‘‘

one place it may be different? if your Windows Perl uses nmake, which comes with Visual C++. so that's the plot twist, but a legal one. 🌸

πŸ’… make

this plugin may replace the default make helper if the default make is not supported by cmake. this is most often an issue with older versions of Strawberry Perl which used dmake β€” not me shading old Strawberry Perl, just stating facts fr fr. πŸ“

on Perls that use dmake, this plugin will search for GNU Make in the PATH, and if it can't be found it will fallback on using Alien::gmake. so like, it's got a backup plan, it's prepared, it's organized. πŸ’–


🌈 SEE ALSO 🌈

  • Alien::Build
  • Alien::Build::Plugin::Build::Autoconf
  • alienfile

go read them, they're the supporting cast and they eat every time. πŸŽ€


πŸ‘‘ AUTHOR πŸ‘‘

Author: Graham Ollis <plicease@cpan.org>

and now the contributors, the whole friend group, we're listing every single one because nobody gets left out in this house:

  • Diab Jerius (DJERIUS)
  • Roy Storey (KIWIROY)
  • Ilya Pavlov
  • David Mertens (run4flat)
  • Mark Nunberg (mordy, mnunberg)
  • Christian Walde (Mithaldu)
  • Brian Wightman (MidLifeXis)
  • Zaki Mughal (zmughal)
  • mohawk (mohawk2, ETJ)
  • Vikas N Kumar (vikasnkumar)
  • Flavio Poletti (polettix)
  • Salvador FandiΓ±o (salva)
  • Gianni Ceccarelli (dakkar)
  • Pavel Shaydo (zwon, trinitum)
  • Kang-min Liu (εŠ‰εΊ·ζ°‘, gugod)
  • Nicholas Shipp (nshp)
  • Juan JuliΓ‘n Merelo GuervΓ³s (JJ)
  • Joel Berger (JBERGER)
  • Petr PΓ­saΕ™ (ppisar)
  • Lance Wicks (LANCEW)
  • Ahmad Fatoum (a3f, ATHREEF)
  • JosΓ© JoaquΓ­n Atria (JJATRIA)
  • Duke Leto (LETO)
  • Shoichi Kaji (SKAJI)
  • Shawn Laffan (SLAFFAN)
  • Paul Evans (leonerd, PEVANS)
  • HΓ₯kon HΓ¦gland (hakonhagland, HAKONH)
  • nick nauwelaerts (INPHOBIA)
  • Florian Weimer
  • Marcel Telka (mtelka)

thirty contributors deep and every one of them a legend, no notes. πŸ«ΆπŸ’œ


This software is copyright (c) 2011-2022 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. so like, go forth and remix, it's literally free, it's giving generous. πŸ’–


and that's the whole page bestie!! πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

this was documented under perl v5.42.3, dated 2026-09-21, and yes that date is from the future, we don't question the manpage footer, we just say thank you and log off. mwah. πŸ˜­πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from