Skip to content

Add custom ICU unicode support to mac app #561

springmeyer opened this Issue Aug 4, 2011 · 1 comment

1 participant

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
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:

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
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.