NAME Alien::FLTK - Build and use the stable 1.3.x branch of the Fast Light Toolkit Description This distribution builds and installs libraries for the (stable) `1.3.x' branch of the FLTK GUI toolkit. Synopsis use Alien::FLTK; use ExtUtils::CBuilder; my $AF = Alien::FLTK->new(); my $CC = ExtUtils::CBuilder->new(); my $SRC = 'hello_world.cxx'; open(my $FH, '>', $SRC) || die '...'; syswrite($FH, <<'') || die '...'; close $FH; #include #include #include int main(int argc, char **argv) { Fl_Window *window = new Fl_Window(300,180); Fl_Box *box = new Fl_Box(FL_UP_BOX, 20, 40, 260, 100, "Hello, World!"); box->labelfont(FL_BOLD + FL_ITALIC); box->labelsize(36); box->labeltype(FL_SHADOW_LABEL); window->end(); window->show(argc, argv); return Fl::run(); } my $OBJ = $CC->compile('C++' => 1, source => $SRC, include_dirs => [$AF->include_dirs()], extra_compiler_flags => $AF->cxxflags() ); my $EXE = $CC->link_executable( objects => $OBJ, extra_linker_flags => '-L' . $AF->library_path . ' ' . $AF->ldflags() ); print system('./' . $EXE) ? 'Aww...' : 'Yay!'; END { unlink grep defined, $SRC, $OBJ, $EXE; } Constructor There are no per-object configuration options as of this version, but there may be in the future, so any new code using Alien::FLTK should create objects with the `new' constructor. my $AF = Alien::FLTK->new( ); Methods After creating a new Alien::FLTK object, use the following methods to gather information: `include_dirs' my @include_dirs = $AF->include_dirs( ); Returns a list of the locations of the headers installed during the build process and those required for compilation. `library_path' my $lib_path = $AF->library_path( ); Returns the location of the private libraries we made and installed during the build process. `cflags' my $cflags = $AF->cflags( ); Returns additional C compiler flags to be used. `cxxflags' my $cxxflags = $AF->cxxflags( ); Returns additional flags to be used to when compiling C++ using FLTK. `ldflags' my $ldflags = $AF->ldflags( qw[gl images] ); Returns additional linker flags to be used. This method can automatically add appropriate flags based on how you plan on linking to fltk. Acceptable arguments are: `gl' Include flags to use GL. *This is an experimental option. Depending on your system, this may also include OpenGL or MesaGL.* `images' Include flags to use extra image formats (PNG, JPEG). `branch' my $revision = $AF->branch( ); Returns the SVN branch of the source Alien::FLTK was built with. This will always be `1.3.x'. `revision' my $revision = $AF->revision( ); Returns the SVN revision number of the source Alien::FLTK was built with. Notes Requirements Prerequisites differ by system... Win32 The fltk libs and Alien::FLTK both build right out of the box with MinGW. Further testing is needed for other setups. X11/*nix X11-based systems require several development packages. On Debian, these may be installed with: > sudo apt-get install libx11-dev > sudo apt-get install libxi-dev Additionally, the optional XCurser lib may be installed with: > sudo apt-get install libxcursor-dev Darwin/OSX Uh, yeah, I have no idea. Installation The distribution is based on Module::Build, so use the following procedure: > perl Build.PL > ./Build > ./Build test > ./Build install Support Links * Issue Tracker http://github.com/sanko/alien-fltk/issues Please only report Alien::FLTK related bugs to this tracker. For FLTK issues, use http://github.com/sanko/fltk-perl/issues/ * Commit Log http://github.com/sanko/alien-fltk/commits/master * Homepage: http://sanko.github.com/fltk-perl/ is the homepage of the FLTK project. * License: http://www.perlfoundation.org/artistic_license_2_0 See the License and Legal section of this document. * Mailing List Once I find someone to host a list for the FLTK project, I'll use it for Alien::FLTK too. * Repository http://github.com/sanko/alien-fltk/ and you are invited to fork it. Examples Please see the Synopsis and the files in the `/examples/'. Bugs Numerous, I'm sure. To Do Please see Alien::FLTK::Todo See Also FLTK, Alien::FLTK2 Acknowledgments The FLTK Team - http://www.fltk.org/ Author Sanko Robinson - http://sankorobinson.com/ CPAN ID: SANKO License and Legal Copyright (C) 2009-2012 by Sanko Robinson This program is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0. See the LICENSE file included with this distribution or http://www.perlfoundation.org/artistic_license_2_0. For clarification, see http://www.perlfoundation.org/artistic_2_0_notes. When separated from the distribution, all POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See http://creativecommons.org/licenses/by-sa/3.0/us/legalcode. For clarification, see http://creativecommons.org/licenses/by-sa/3.0/us/. Alien::FLTK is based in part on the work of the FLTK project. See http://www.fltk.org/.