2013-06-22 15:16:45 +00:00
|
|
|
#!/usr/bin/perl -w
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
2014-04-28 17:23:29 +00:00
|
|
|
use ExtUtils::CppGuess;
|
2013-06-22 15:16:45 +00:00
|
|
|
use Module::Build::WithXSpp;
|
|
|
|
|
2014-04-28 17:23:29 +00:00
|
|
|
# _GLIBCXX_USE_C99 : to get the long long type for g++
|
|
|
|
# HAS_BOOL : stops Perl/lib/CORE/handy.h from doing "# define bool char" for MSVC
|
|
|
|
# NOGDI : prevents inclusion of wingdi.h which defines functions Polygon() and Polyline() in global namespace
|
|
|
|
my @cflags = qw(-D_GLIBCXX_USE_C99 -DHAS_BOOL -DNOGDI -DSLIC3RXS);
|
|
|
|
if ($ENV{SLIC3R_DEBUG}) {
|
2014-05-09 12:24:35 +00:00
|
|
|
# only on newer GCCs: -ftemplate-backtrace-limit=0
|
|
|
|
push @cflags, qw(-DSLIC3R_DEBUG -g);
|
2014-04-28 17:23:29 +00:00
|
|
|
}
|
|
|
|
if (ExtUtils::CppGuess->new->is_gcc) {
|
|
|
|
# check whether we're dealing with a buggy GCC version
|
|
|
|
# see https://github.com/alexrj/Slic3r/issues/1965
|
|
|
|
if (`cc --version` =~ / 4\.7\.[012]/) {
|
2014-05-10 15:03:05 +00:00
|
|
|
# Workaround suggested by Boost devs:
|
|
|
|
# https://svn.boost.org/trac/boost/ticket/8695
|
|
|
|
push @cflags, qw(-fno-inline-small-functions);
|
2014-04-28 17:23:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-06-22 15:16:45 +00:00
|
|
|
my $build = Module::Build::WithXSpp->new(
|
|
|
|
module_name => 'Slic3r::XS',
|
|
|
|
dist_abstract => 'XS code for Slic3r',
|
|
|
|
build_requires => {qw(
|
2013-06-23 18:05:20 +00:00
|
|
|
ExtUtils::ParseXS 3.18
|
|
|
|
ExtUtils::Typemap 1.00
|
2014-06-25 12:57:06 +00:00
|
|
|
ExtUtils::Typemaps::Default 1.05
|
2013-06-23 18:05:20 +00:00
|
|
|
ExtUtils::XSpp 0.17
|
2013-06-22 15:16:45 +00:00
|
|
|
Module::Build 0.3601
|
|
|
|
Test::More 0
|
|
|
|
)},
|
|
|
|
configure_requires => {qw(
|
|
|
|
ExtUtils::CppGuess 0.07
|
|
|
|
Module::Build 0.38
|
2013-06-23 18:05:20 +00:00
|
|
|
Module::Build::WithXSpp 0.13
|
2013-06-22 15:16:45 +00:00
|
|
|
)},
|
2014-04-28 17:23:29 +00:00
|
|
|
extra_compiler_flags => \@cflags,
|
2013-06-22 15:16:45 +00:00
|
|
|
|
|
|
|
# Provides extra C typemaps that are auto-merged
|
|
|
|
extra_typemap_modules => {
|
2014-11-22 21:20:28 +00:00
|
|
|
'ExtUtils::Typemaps::Basic' => '1.05',
|
2013-06-22 15:16:45 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
# for MSVC builds
|
|
|
|
early_includes => [qw(
|
|
|
|
cstring
|
|
|
|
cstdlib
|
|
|
|
ostream
|
2014-02-01 10:53:45 +00:00
|
|
|
sstream
|
2013-06-22 15:16:45 +00:00
|
|
|
)]
|
|
|
|
);
|
|
|
|
|
|
|
|
$build->create_build_script;
|
|
|
|
|
|
|
|
__END__
|