App::hopen - hopen build system command-line interface
(Note: most features are not yet implemented ;) . However it will generate
a Makefile for a basic Hello, World program at this point!)
hopen is a cross-platform software build generator. It makes files you can pass to Make, Ninja, Visual Studio, or other build tools, to compile and link your software. hopen gives you:
- A full, Turing-complete, robust programming language to write your build scripts (specifically, Perl 5.14+)
- No hidden magic! All your data is visible and accessible in a build graph.
- Context-sensitivity. Your users can tweak their own builds for their own platforms without affecting your project.
See App::hopen::Conventions for details of the input format.
Why Perl? Because (1) you probably already have it installed, and (2) it is the original write-once, run-everywhere language!
USAGE
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.
See App::hopen::Conventions for more details.
OPTIONS
-
-a
architectureSpecify the architecture. This is an arbitrary string interpreted by the generator or toolset.
-
-e
Perl codeAdd the
Perl codeas if it were a hopen file.-efiles 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. -
--fresh
Start a fresh build --- ignore any
MY.hopen.plfile that may exist in the destination directory. -
--from
project dirSpecify the project directory. Overrides a project directory given as a positional argument.
-
-g
generatorSpecify the generator. The given
generatorshould be either a full package name or the part afterApp::hopen::Gen::. -
-t
toolsetSpecify the toolset. The given
toolsetshould be either a full package name or the part afterApp::hopen::T::. -
--to
destination dirSpecify the destination directory. Overrides a destination directory given as a positional argument.
-
--phase
phaseSpecify 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
--phaseis given, no other hopen file can set the phase, and hopen will terminate if a file attempts to do so. -
-q
Produce no output (quiet). Overrides
-v. -
-v, --verbose=n
Verbose. Specify more
v's for more verbosity. At present,-vv(equivalently,--verbose=2) gives you detailed traces of the data, and-vvvgives you more detailed code tracebacks on error. -
--version
Print the version of hopen and exit
AUTHOR
Christopher White, cxwembedded at gmail.com
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc App::hopen For command-line options
perldoc App::hopen::Conventions For terminology and workflow
perldoc Data::Hopen For internals
You can also look for information at:
-
GitHub: The project's main repository and issue tracker
-
MetaCPAN
LICENSE AND COPYRIGHT
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