Provided by: libsdl-perl_2.546-3build1_amd64
NAME
Module::Build::SDL - Module::Build subclass for building SDL apps/games [not stable yet]
SYNOPSIS
When creating a new SDL application/game you can create Build.PL like this: use Module::Build::SDL; my $builder = Module::Build::SDL->new( module_name => 'Games::Demo', dist_version => '1.00', dist_abstract => 'Demo game based on Module::Build::SDL', dist_author => 'coder@cpan.org', license => 'perl', requires => { 'SDL' => 0, }, #+ others Module::Build options )->create_build_script(); Once you have created a SDL application/game via Module::Build::SDL as described above you can use some extra build targets/actions: • you can create a PAR distribution like: $ perl ./Build.PL $ ./Build $ ./Build par There are some extra parameters related to 'par' action you can pass to Module::Build::SDL->new(): parinput => 'bin/scriptname.pl' paroutput => 'filename.par.exe', parlibs => [ qw/SDL SDL_main SDL_gfx/ ], #external libraries (.so/.dll) to be included into PAR parmods => [ qw/Module::A Module::B/ ], #extra modules to be included into PAR • to run the game from distribution directory you can use: $ perl ./Build.PL $ ./Build $ ./Build run • TODO: maybe some additional actions: parexe, parmsi, deb, rpm
DESCRIPTION
Module::Build::SDL is a subclass of Module::Build created to make easy some tasks specific to SDL applications - e.g. packaging SDL application/game into PAR archive.
APPLICATION/GAME LAYOUT
Module::Build::SDL expects the following layout in project directory: #example: game with the main *.pl script + data files + modules (*.pm) Build.PL lib/ Games/ Demo.pm bin/ game-script.pl data/ whatever_data_files_you_need.jpg the most simple game should look like: #example: simple one-script apllication/game Build.PL bin/ game-script.pl In short - there are 3 expected subdirectories: • bin - one or more perl scripts (*.pl) to start the actual application/game • lib - application/game specific modules (*.pm) organized in dir structure in "usual perl manners" • data - directory for storing application data (pictures, sounds etc.). This subdirectory is handled as a "ShareDir" (see File::ShareDir for more details) • As the project is (or could be) composed as a standard perl distribution it also support standard subdirectory 't' (with tests).
RULES TO FOLLOW
When creating a SDL application/game based on Module::Build::SDL it is recommended to follow these rules: • Use the name for your game from Games::* namespace; it will make the later release to CPAN much easier. • Put all data files into data subdirectory and access the data subdir only via File::ShareDir (namely by calling distdir() function) • TODO: maybe add more