Skip to content

Add custom ICU unicode support to mac app #561

Closed
springmeyer opened this Issue Aug 4, 2011 · 1 comment

1 participant

@springmeyer
Mapbox member

Currently the mac app build process links against /usr/lib/libicucore.dylib (which hits the .dat files in /usr/share/icu/). The reason for this is that 1) it saves ~15-20 MB of space that would otherwise be needed if ICU was bundled in the app, and 2) libicucore works perfectly for mapnik while past efforts by @springmeyer at compiling ICU 64bit on 10.6 have lead to a variety of broken unicode features in mapnik.

However, we should avoid usage of libicucore.dylib if possible because technically apple does not provide headers for this library meaning it is a private api and should not be used.

So, steps ahead are:

  • compile ICU libraries (libicuuc,libicudata,libicui18n) so that unicode text labels in mapnik work
  • recompile boost regex against this new icu
  • figure out how to allow icu to be portable by either using @loader_path to libicudata or building a .dat file and leveraging u_setDataDirectory() in node-mapnik or setting ICU_DATA at runtime
@springmeyer springmeyer was assigned Aug 4, 2011
@springmeyer
Mapbox member

turns out that it is not the 64bit build of ICU that is troublesome, but rather universal. After much deducing I've got a testcase that fails (as the icu::Collator breaks) simply by passing two archflags: https://gist.github.com/1474002.

So, the easiest solution here is to drop 32bit support: #918

@springmeyer springmeyer added a commit that closed this issue Apr 11, 2012
@springmeyer springmeyer set ICU_DATA, PROJ_LIB, and GDAL_DATA on the fly in the os x app in a…
…nticipation of bundling this data for the 0.9.1 release - closes #560 and closes #561
35fdd6a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.