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/.