Unicode handling:

Removed the Perl dependencies on Encode, Encode::Locale and Unicode::Normalize.
Added dependency on boost::locale.
Added encode_path, decode_path, normalize_utf8 functions to Slic3r.xs

Slic3r.xs has been made mostly utf8 safe by using the boost::nowide library,
thanks to @alexrj for the idea.

Simplified the encode_path / decode_path stuff:
wxWidgets are unicode already, so there is no need to decode_path() from it.
Perl / win32 interfacing is non-unicode, so decode_path() is executed
on ARGV just at the beginning of the perl scripts.
This commit is contained in:
bubnikv 2017-08-03 17:31:31 +02:00
parent 31085fb1d7
commit 1385018724
33 changed files with 236 additions and 186 deletions

View file

@ -129,11 +129,11 @@ if (defined $ENV{BOOST_LIBRARYDIR}) {
# In order to generate the -l switches we need to know how Boost libraries are named
my $have_boost = 0;
my @boost_libraries = qw(system thread filesystem log); # we need these
my @boost_libraries = qw(system thread filesystem locale log); # we need these
if (!$ENV{SLIC3R_STATIC}) {
# Dynamic linking of boost libraries.
push @cflags, qw(-DBOOST_LOG_DYN_LINK);
push @cflags, qw(-DBOOST_LOG_DYN_LINK -DBOOST_LOCALE_DYN_LINK);
if (! $mswin) {
# Check without explicit lib path (works on Linux and OSX).
$have_boost = 1
@ -193,10 +193,10 @@ path through the BOOST_DIR environment variable:
Or you may specify BOOST_INCLUDEDIR and BOOST_LIBRARYDIR separatly, which
is handy, if you have built Boost libraries with mutliple settings.
Following boost libraries are needed by Slic3r Prusa Edition: system, filesystem, thread, log.
Following boost libraries are needed by Slic3r Prusa Edition: system, filesystem, thread, locale, log.
On Debian, you need to run
sudo apt-get install libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-log-dev
sudo apt-get install libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-locale-dev libboost-log-dev
EOF