`build` - Compile the software of a project and prepare it for use
build <project path> <target name>…
- The working directory must be the command directory.
: see `^*working directory$` @ `^*shell commands$` @
http://reluk.ca/project/Java/editorial_guidelines.brec
- Two or more positional arguments are required:
<project path>
/ The proper path of the project: the relative file path that identifies it universally.
E.g. for the present project, use `Makeshift` or `Makeshift/`.
: see `^*proper path$` @ http://reluk.ca/project/glossary.brec
- Tells which project to build.
<target name>…
/ The name or names of one or more build targets, each proper to the project.
- Tells which target or targets of the project to build.
/ A project’s targets are declared in a source file conventionally named
either `BuildTarget.java` or `builder/Target.java`.
: see e.g. ../template/BuildTarget.java
- Letter case is insignificant.
- Characters ‘-’ and ‘_’ are taken as equivalent.
- Abbreviation is allowed: a viable name is any substring that identifies
the target precisely, appearing in the name of no other target.
━━━━━━━━━━━━━━━━━━━
Scripting a build ─ How a project defines its builder
───────────────────
- For the common case of a Java project with a single package,
typically all you need is `BuildTarget.java`.
: see ../example/mixed_top/
>+ cd <command directory>
>+ cp Makeshift/template/BuildTarget.java <project>/
+ Edit your `BuildTarget.java`.
+ Correct the package name.
+ Delete the name of any target inapplicable to your project.
if( you need to customize the builds further )
/ E.g. you have subpackages, or a build target unsupported by the default builder.
+ Code your own `Builder.java`.
: see `a project may define its own builder` @ ../Builder.java
: see ../example/
- Typically you would subclass the default builder, overriding a method or two.
: re `default builder` see ../BuilderDefault.java
━━━━━━━━━━
Examples
──────────
- A simple build, requiring no other project to be installed,
is the `builder` target of the present project.
build Makeshift builder
- A more typical form of build is:
build Breccia/Web/imager Java_class_files
- Convenient equivalents of the above command are:
build Breccia/Web/imager java_class_files
build Breccia/Web/imager java-class-files
build Breccia/Web/imager cl
: see `^*- Letter case is insignificant`
: see `^*- Characters ‘-’ and ‘_’ are taken as equivalent`
: see `^*- Abbreviation is allowed`
━━━━━━━━━━
See also
──────────
• `clean`
: see clean.brec
\ Copyright © 2020-2022 Michael Allan. Licence MIT.