.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Alien::cmake3 3" .TH Alien::cmake3 3 2023-07-25 "perl v5.38.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Alien::cmake3 \- Find or download or build cmake 3 or better .SH VERSION .IX Header "VERSION" version 0.08 .SH SYNOPSIS .IX Header "SYNOPSIS" From Perl: .PP .Vb 2 \& use Alien::cmake3; \& use Env qw( @PATH ); \& \& unshift @PATH, Alien::cmake3\->bin_dir; \& system \*(Aqcmake\*(Aq, ...; .Ve .PP From alienfile .PP .Vb 1 \& use alienfile; \& \& share { \& # Build::CMake plugin pulls in Alien::cmake3 automatically \& plugin \*(AqBuild::CMake\*(Aq; \& build [ \& # this is the default build step, if you do not specify one. \& [ \*(Aq%{cmake3}\*(Aq, \-G => \*(Aq%{cmake_generator}\*(Aq, \*(Aq\-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true\*(Aq, \*(Aq\-DCMAKE_INSTALL_PREFIX:PATH=%{.install.prefix}\*(Aq, \*(Aq.\*(Aq ], \& \*(Aq%{make}\*(Aq, \& \*(Aq%{make} install\*(Aq, \& ]; \& }; .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" This Alien distribution provides an external dependency on the build tool \f(CW\*(C`cmake\*(C'\fR version 3.0.0 or better. \f(CW\*(C`cmake\*(C'\fR is a popular alternative to autoconf. .SH METHODS .IX Header "METHODS" .SS bin_dir .IX Subsection "bin_dir" .Vb 1 \& my @dirs = Alien::cmake3\->bin_dir; .Ve .PP List of directories that need to be added to the \f(CW\*(C`PATH\*(C'\fR in order for \f(CW\*(C`cmake\*(C'\fR to work. .SS exe .IX Subsection "exe" .Vb 1 \& my $exe = Alien::cmake3\->exe; .Ve .PP The name of the \f(CW\*(C`cmake\*(C'\fR executable. .SH HELPERS .IX Header "HELPERS" .SS cmake3 .IX Subsection "cmake3" .Vb 1 \& %{cmake3} .Ve .PP The name of the \f(CW\*(C`cmake\*(C'\fR executable. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP Alien::Build::Plugin::Build::CMake 4 .IX Item "Alien::Build::Plugin::Build::CMake" Alien::Build plugin for \f(CW\*(C`cmake\*(C'\fR This will automatically pull in Alien::cmake3 if you need it. .IP Alien::CMake 4 .IX Item "Alien::CMake" This is an older distribution that provides an alienized \f(CW\*(C`cmake\*(C'\fR. It is different in these ways: .RS 4 .IP "Alien::cmake3 is based on alienfile and Alien::Build" 4 .IX Item "Alien::cmake3 is based on alienfile and Alien::Build" It integrates better with Aliens that are based on that technology. .IP "Alien::cmake3 will provide version 3.0.0 or better" 4 .IX Item "Alien::cmake3 will provide version 3.0.0 or better" Alien::CMake will provide 2.x.x on some platforms where more recent binaries are not available. .ie n .IP "Alien::cmake3 will install on platforms where there is no system ""cmake"" and no binary ""cmake"" provided by cmake.org" 4 .el .IP "Alien::cmake3 will install on platforms where there is no system \f(CWcmake\fR and no binary \f(CWcmake\fR provided by cmake.org" 4 .IX Item "Alien::cmake3 will install on platforms where there is no system cmake and no binary cmake provided by cmake.org" It does this by building \f(CW\*(C`cmake\*(C'\fR from source. .IP "Alien::cmake3 is preferred" 4 .IX Item "Alien::cmake3 is preferred" In the opinion of the maintainer of both Alien::cmake3 and Alien::CMake for these reasons. .RE .RS 4 .RE .SH ENVIRONMENT .IX Header "ENVIRONMENT" .IP ALIEN_INSTALL_TYPE 4 .IX Item "ALIEN_INSTALL_TYPE" This is the normal Alien::Build environment variable and you can set it to one of \&\f(CW\*(C`share\*(C'\fR, \f(CW\*(C`system\*(C'\fR or \f(CW\*(C`default\*(C'\fR. .IP ALIEN_CMAKE_FROM_SOURCE 4 .IX Item "ALIEN_CMAKE_FROM_SOURCE" If set to true, and if a share install is attempted, Alien::cmake3 will not try a binary share install (even if available), and instead a source share install. .SH CAVEATS .IX Header "CAVEATS" If you do not have a system \f(CW\*(C`cmake\*(C'\fR of at least 3.0.0 available, then a share install will be attempted. .PP Binary share installs are attempted on platforms for which the latest version of \f(CW\*(C`cmake\*(C'\fR are provided. As of this writing, this includes: Windows (32/64 bit), macOS (intel/arm universal) and Linux (intel/arm 64 bit). No checks are made to ensure that your platform is supported by this binary installs. Typically the same versions supported by the operating system vendor and supported by \f(CW\*(C`cmake\*(C'\fR, so that should not be a problem. If you are using an operating system not supported by its vendor Please Stop That, this is almost certainly a security vulnerability. .PP That said if you really do need Alien::cmake3 on an unsupported system, you have some options: .ie n .IP "Install system version of ""cmake""" 4 .el .IP "Install system version of \f(CWcmake\fR" 4 .IX Item "Install system version of cmake" If you can find an older version better than 3.0.0 that is supported by your operating system. .IP "Force a source code install" 4 .IX Item "Force a source code install" Set the \f(CW\*(C`ALIEN_CMAKE_FROM_SOURCE\*(C'\fR environment variable to a true value to build a share install from source. .PP Source share installs are attempted on platforms for which the latest version of \&\f(CW\*(C`cmake\*(C'\fR are not available, like the various flavours of *BSD. This may not be ideal, and if you can install a system version of \f(CW\*(C`cmake\*(C'\fR it may work better. .SH AUTHOR .IX Header "AUTHOR" Author: Graham Ollis .PP Contributors: .PP Adriano Ferreira (FERREIRA) .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2017 by Graham Ollis. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.