NAME
dtRdrBuilder - Custom build methods for dotReader
SYNOPSIS
Build Build Build Build Build Build
Build Build Build Build Build Build
Build Build Build Build Build Build
Build Build Build Build Build Build
Build Build
Build Build Build Build
Build
Build Build
Build Build Build
Build Build Build
Build
Build
Build
General Notes
The build system has occassionally been a catch-all for stuff that should maybe be a standalone utility, etc. Thus, it is subject to the same laws of chaos as the rest of the codebase, except that it has no tests.
Therefore, code with the goal of making this package smaller.
Avoid Static Dependencies
Not only do they break CPAN-based builds/tests, they also make it harder to yank-out the code and put it where it should be.
ACTIONS
- testgui
-
Run the gui tests.
- testsync
-
Run the sync tests.
- testbinary
-
Test the built binary. This runs (mostly) in the same context as a distributed .par/.app bundle.
Requires a graphical display, but (hopefully) no interaction.
- runbinary
-
Runs the binary interactively.
- par
-
This is now deprecated in favor of the mini. Still need the --mini option to get there though.
Build a binfilename() (e.g. 'binary_build/dotreader.exe') par.
By default, this has no console on windows. Use the "--nogui" option to enable console output (only matters on windows.)
build par --nogui - par_parts
-
Build the par_mini and then bundle it into an executable.
- par_mini
-
Build a '.par' archive with all of the project code.
The dependencies for this build the par_core, which builds par_deps, which builds par_wx.
These four files (the deps, plus the main archive) are all that is needed to construct a brand new executable binary on the client. More on this later.
- par_seed
- par_pl
-
Build the blib/dotReader.pl file.
This contains hardcoded version numbers for the dependency bits. It gets built into the par_mini file using the seed.par, which solves the chicken/egg problem.
- par_wx
par_blacklist
Module::ScanDeps gets a bit too agressive
$self->par_blacklist;
- par_deps
-
Bundle all of the non-core, non-wx dependencies.
- par_core
- restore_par_cache
-
Assumes ~/.dotreader_dep_cache/
- repar
-
Build and repackage the 'data/' directory for the par.
./Build repar ./Build repar nodata - datadir
-
Build the embedded par 'data/' directory in blib/pardata/.
- parmanifest
-
Extract the MANIFEST file from the current par (saves compilation time on the next BUILD par)
- starter_data
-
Assemble a default config, library, and some free books in "binary_build/dotreader-data/"
- binary
-
Builds the binary and starter data for the current platform.
- binary_package
-
Build the binary, starter data, and wrap it up.
Also takes a --bare argument
Helpers and Such
binary_package_name
Assembles platform, modifiers, version (and previewness) values into a name (without .extension)
my $packname = $self->binary_package_name;
binary_package_linux
Linux and others.
$self->binary_package_linux;
binary_package_darwin
$self->binary_package_darwin;
binary_package_MSWin32
$self->binary_package_MSWin32;
copy_package_files
$self->copy_package_files($dir); # useful for mac too
_module_map
my %map = _module_map()
run_binary
Run the binary, returns stdout and stderr strings, replaces the first_time file (if it didn't crash.)
my ($out, $err) = $self->run_binary;
binfilename
A filename for the binary.
binfilename_sys
The mac binfilename is a directory. This gets an actual binary filename. On windows and linux it is exactly binfilename().
bin_version
Same as dist_version iff --release V
$self->bin_version;
par_dep_file
Returns the basename for the par dependency file.
$file = $self->par_dep_file($tag);
update_dep_version
Returns a new version number for the dependency tag or undef if it has not changed.
$version = $self->update_dep_version($tag);
dep_version
Returns the current version number for the dependency tag. This will be the dotReader version number at which it was last changed.
$version = $self->dep_version($tag);
deplist_file
my $checkfile = $self->deplist_file($tag);
dependency_hints
my $string = $self->dependency_hints;
external_libs
@libs = $self->external_libs;
which_pp
The pp command
grab_manifest
$string = $self->grab_manifest($zipfile);
scan_deps
$self->scan_deps(
modules => \@mods,
files => \@files,
string => \$string
);
copy_from_manifest
$self->copy_from_manifest($mfile, $srcdir, $destdir);
Overridden Methods
find_pm_files
Overridden to eliminate platform-specific deps.
Also, fixes QDOS problems.
$self->find_pm_files;
AUTHOR
Eric Wilhelm <ewilhelm at cpan dot org>
http://scratchcomputing.com/
COPYRIGHT
Copyright (C) 2006 Eric L. Wilhelm and OSoft, All Rights Reserved.
NO WARRANTY
Absolutely, positively NO WARRANTY, neither express or implied, is offered with this software. You use this software at your own risk. In case of loss, neither Eric Wilhelm, nor anyone else, owes you anything whatseover. You have been warned.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 560:
You forgot a '=back' before '=head2'
- Around line 584:
'=item' outside of any '=over'