mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| #!/usr/bin/perl -w
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| use ExtUtils::CppGuess;
 | |
| use Module::Build::WithXSpp;
 | |
| 
 | |
| # _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}) {
 | |
|     push @cflags, qw(-DSLIC3R_DEBUG -g -ftemplate-backtrace-limit=0);
 | |
| }
 | |
| 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]/) {
 | |
|         push @cflags, qw(-O1 -fcaller-saves -fcrossjumping -fcse-follow-jumps -fdevirtualize -fexpensive-optimizations -fgcse -findirect-inlining -finline-small-functions -fipa-cp -fipa-sra -foptimize-register-move -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -free -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftree-builtin-call-dce -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp);
 | |
|     }
 | |
| }
 | |
| 
 | |
| my $build = Module::Build::WithXSpp->new(
 | |
|     module_name     => 'Slic3r::XS',
 | |
|     dist_abstract   => 'XS code for Slic3r',
 | |
|     build_requires => {qw(
 | |
|         ExtUtils::ParseXS           3.18
 | |
|         ExtUtils::Typemap           1.00
 | |
|         ExtUtils::Typemaps::Default 1.03
 | |
|         ExtUtils::XSpp              0.17
 | |
|         Module::Build               0.3601
 | |
|         Test::More                  0
 | |
|     )},
 | |
|     configure_requires => {qw(
 | |
|         ExtUtils::CppGuess          0.07
 | |
|         Module::Build               0.38
 | |
|         Module::Build::WithXSpp     0.13
 | |
|     )},
 | |
|     extra_compiler_flags => \@cflags,
 | |
|     
 | |
|     # Provides extra C typemaps that are auto-merged
 | |
|     extra_typemap_modules => {
 | |
|         'ExtUtils::Typemaps::Default' => '1.03',
 | |
|     },
 | |
|     
 | |
|     # for MSVC builds
 | |
|     early_includes => [qw(
 | |
|         cstring
 | |
|         cstdlib
 | |
|         ostream
 | |
| 		sstream
 | |
|     )]
 | |
| );
 | |
| 
 | |
| $build->create_build_script;
 | |
| 
 | |
| __END__
 | 
