Alien-FLTK
view release on metacpan or search on metacpan
# 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 <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
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](https://metacpan.org/pod/Alien%3A%3AFLTK) should
create objects with the `new` constructor.
my $AF = Alien::FLTK->new( );
# Methods
After creating a new [Alien::FLTK](https://metacpan.org/pod/Alien%3A%3AFLTK) 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).
# Notes
## Requirements
Prerequisites differ by system...
- Win32
The fltk libs and [Alien::FLTK](https://metacpan.org/pod/Alien%3A%3AFLTK) 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
( run in 0.489 second using v1.01-cache-2.11-cpan-0bd6704ced7 )