Build::Hopen::App - hopen build system command-line interface
hopen [options] [--] [destination dir [project dir]]
If no project directory is specified, the current directory is used.
If no destination directory is specified, <project dir>/built is used.
<project dir>/built
A hash from internal name to array reference of [getopt-name, getopt-options, optional default-value].
If default-value is a reference, it will be the destination for that value.
Takes {into=>hash ref, from=>array ref}. Fills in the hash with the values from the command line, keyed by the keys in "%CMDLINE_OPTS".
The hashref of the current data we have built up by processing hopen files.
Set to truthy if MY.hopen.pl sets the phase.
Execute a single hopen file, but do not run the DAG. Usage:
_execute_hopen_file($filename[, options...])
This function takes input from "$_hrData" unless a DATA=>{...} option is given. This function updates "$_hrData" based on the results.
DATA=>{...}
Options are:
If given, force the phase to be the one specified.
If truthy, suppress extra output.
If given, it must be an arrayref of directories. Each of those will be turned into a use lib statement (see lib) in the generated source.
use lib
Run a phase by executing the hopen files and running the DAG. Reads from and writes to "$_hrData", which must be initialized by the caller. Usage:
my $hrDagOutput = _run_phase(files=>[...][, options...])
Options phase, quiet, and libs are as "_execute_hopen_file". Other options are:
phase
quiet
libs
(Required) An arrayref of filenames to run
(Optional) if truthy, do not run the DAG. Note that the DAG will also not be run if it is empty.
Do the work for one invocation of hopen(1). Dies on failure. Main() then translates the die() into a print and error return.
Command-line runner. Call as Build::Hopen::App::Main(\@ARGV).
Build::Hopen::App::Main(\@ARGV)
architecture
Specify the architecture. This is an arbitrary string interpreted by the generator or toolset.
Perl code
Add the Perl code as if it were a hopen file. -e files are processed after all other hopen files, so can modify anything that has been set up by those files. Can be specified more than once.
-e
Start a fresh build --- ignore any MY.hopen.pl file that may exist in the destination directory.
MY.hopen.pl
project dir
Specify the project directory. Overrides a project directory given as a positional argument.
generator
Specify the generator. The given generator should be either a full package name or the part after Build::Hopen::Gen::.
Build::Hopen::Gen::
toolset
Specify the toolset. The given toolset should be either a full package name or the part after Build::Hopen::T::.
Build::Hopen::T::
destination dir
Specify the destination directory. Overrides a destination directory given as a positional argument.
Specify which phase of the process to run. Note that this overrides whatever is specified in any MY.hopen.pl file, so may cause unexpected results!
If --phase is given, no other hopen file can set the phase, and hopen will terminate if a file attempts to do so.
--phase
Produce no output (quiet). Overrides -v.
-v
Verbose. Specify more v's for more verbosity. At present, -vv (equivalently, --verbose=2) gives you detailed traces of the data, and -vvv gives you more detailed code tracebacks on error.
v
-vv
--verbose=2
-vvv
Print the version of hopen and exit
Christopher White, cxwembedded at gmail.com
cxwembedded at gmail.com
You can find documentation for this module with the perldoc command.
perldoc Build::Hopen::App For command-line options perldoc Build::Hopen For the README perldoc Build::Hopen::Conventions For terminology and workflow
You can also look for information at:
GitHub: The project's main repository and issue tracker
https://github.com/cxw42/hopen
MetaCPAN
https://metacpan.org/pod/Build::Hopen::App
Copyright (c) 2018--2019 Christopher White. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
To install Build::Hopen, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Build::Hopen
CPAN shell
perl -MCPAN -e shell install Build::Hopen
For more information on module installation, please visit the detailed CPAN module installation guide.