summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-10-25 16:46:35 +0200
committerStephan Bergmann <sbergman@redhat.com>2016-10-25 17:55:45 +0000
commit475e4b477c6d7ae114c3ae51ba4872882af67a68 (patch)
tree476d25f6a830123d0b9c98bfc72043e11e91ca35 /external
parenta3b3e336e5bd83754d9caae85dd5b9246bb4f7c1 (diff)
Move i18nlangtag lib to URELIB
...as stoc/Library_javavm.mk depends on it since 9b09a217c79e8a35fc4de54c89ef49fbf8f72752 "Resolves: #i86470# Wrong Java locale when using 'nl' and 'fr'". The i18nlangtag lib in turn depends on libs from external/liblangtag and external/icu, so those needed to be moved to URELIB, too. On Windows, the external icu package was already split into icu and icu_ure (because "libxml2 is in URE and depends on icuuc*.dll on Windows"), so use that splitting on all platforms. (However, the corresponding changes that were necessary in RepositoryExternal.mk suggest that they had been missing for the split Windows case until now, and things had happened to work by accident?) On macOS, a library's install name reflects its (URELIB, OOO, ...) layer, and in external/icu/icu4c-build.patch there is only a single place to set that for all libs from external/icu. This patch changes that from OOO to URELIB, but for the icui18n lib that should stay at OOO. The hack to make it URELIB nonetheless works for now. To clean this up again, either the whole of icu could go into URE (dropping the icu vs. icu_ure package split completely), or the macOS layers URELIB and OOO could be combined into one (as the libs end up in the same directory anyway). Change-Id: Idc262fa41481d06ba2cae86ad7629cdccb392c07 Reviewed-on: https://gerrit.libreoffice.org/30272 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'external')
-rw-r--r--external/icu/ExternalPackage_icu.mk4
-rw-r--r--external/icu/ExternalPackage_icu_ure.mk17
-rw-r--r--external/icu/ExternalProject_icu.mk13
-rw-r--r--external/icu/icu4c-build.patch2
-rw-r--r--external/liblangtag/ExternalProject_langtag.mk4
5 files changed, 27 insertions, 13 deletions
diff --git a/external/icu/ExternalPackage_icu.mk b/external/icu/ExternalPackage_icu.mk
index 4c90d8f51a35..dcd4da216920 100644
--- a/external/icu/ExternalPackage_icu.mk
+++ b/external/icu/ExternalPackage_icu.mk
@@ -29,15 +29,11 @@ endif # $(COM)
else ifeq ($(OS),ANDROID)
$(eval $(call gb_ExternalPackage_add_files,icu,$(LIBO_LIB_FOLDER),\
- source/lib/libicudatalo.so \
- source/lib/libicuuclo.so \
source/lib/libicui18nlo.so \
))
else # $(OS) != WNT/ANDROID
-$(eval $(call gb_ExternalPackage_add_file,icu,$(LIBO_LIB_FOLDER)/libicudata$(gb_Library_DLLEXT).$(ICU_MAJOR),source/lib/libicudata$(gb_Library_DLLEXT).$(icu_VERSION)))
-$(eval $(call gb_ExternalPackage_add_file,icu,$(LIBO_LIB_FOLDER)/libicuuc$(gb_Library_DLLEXT).$(ICU_MAJOR),source/lib/libicuuc$(gb_Library_DLLEXT).$(icu_VERSION)))
$(eval $(call gb_ExternalPackage_add_file,icu,$(LIBO_LIB_FOLDER)/libicui18n$(gb_Library_DLLEXT).$(ICU_MAJOR),source/lib/libicui18n$(gb_Library_DLLEXT).$(icu_VERSION)))
endif # $(OS)
diff --git a/external/icu/ExternalPackage_icu_ure.mk b/external/icu/ExternalPackage_icu_ure.mk
index a016c8c0e27d..fefe71afdc2b 100644
--- a/external/icu/ExternalPackage_icu_ure.mk
+++ b/external/icu/ExternalPackage_icu_ure.mk
@@ -7,7 +7,10 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# libxml2 is in URE and depends on icuuc*.dll on Windows - extra package needed
+# libxml2 is in URE and depends on icuuc*.dll on Windows; the i18nlangtag lib is
+# in URE and depends on the icuuc lib (which in turn depends on the icudata lib)
+# on all platforms:
+
$(eval $(call gb_ExternalPackage_ExternalPackage,icu_ure,icu))
$(eval $(call gb_ExternalPackage_use_external_project,icu_ure,icu))
@@ -27,6 +30,18 @@ $(eval $(call gb_ExternalPackage_add_files,icu_ure,$(LIBO_URE_LIB_FOLDER),\
))
endif # $(COM)
+else ifeq ($(OS),ANDROID)
+
+$(eval $(call gb_ExternalPackage_add_files,icu_ure,$(LIBO_URE_LIB_FOLDER),\
+ source/lib/libicudatalo.so \
+ source/lib/libicuuclo.so \
+))
+
+else # $(OS) != WNT/ANDROID
+
+$(eval $(call gb_ExternalPackage_add_file,icu_ure,$(LIBO_URE_LIB_FOLDER)/libicudata$(gb_Library_DLLEXT).$(ICU_MAJOR),source/lib/libicudata$(gb_Library_DLLEXT).$(icu_VERSION)))
+$(eval $(call gb_ExternalPackage_add_file,icu_ure,$(LIBO_URE_LIB_FOLDER)/libicuuc$(gb_Library_DLLEXT).$(ICU_MAJOR),source/lib/libicuuc$(gb_Library_DLLEXT).$(icu_VERSION)))
+
endif # $(OS)
endif # DISABLE_DYNLOADING
diff --git a/external/icu/ExternalProject_icu.mk b/external/icu/ExternalProject_icu.mk
index b0578c4bc590..d5d98ff6e31c 100644
--- a/external/icu/ExternalProject_icu.mk
+++ b/external/icu/ExternalProject_icu.mk
@@ -90,11 +90,14 @@ $(call gb_ExternalProject_get_state_target,icu,build) :
$(if $(filter IOS,$(OS)), \
--with-data-packaging=archive) \
&& $(MAKE) \
- $(if $(filter MACOSX,$(OS)),&& $(PERL) \
- $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
- $(gb_Package_SOURCEDIR_icu)/source/lib/libicudata$(gb_Library_DLLEXT).$(icu_VERSION) \
- $(gb_Package_SOURCEDIR_icu)/source/lib/libicuuc$(gb_Library_DLLEXT).$(icu_VERSION) \
- $(gb_Package_SOURCEDIR_icu)/source/lib/libicui18n$(gb_Library_DLLEXT).$(icu_VERSION)) \
+ $(if $(filter MACOSX,$(OS)), \
+ && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl \
+ URELIB \
+ $(gb_Package_SOURCEDIR_icu)/source/lib/libicuuc$(gb_Library_DLLEXT).$(icu_VERSION) \
+ $(gb_Package_SOURCEDIR_icu)/source/lib/libicui18n$(gb_Library_DLLEXT).$(icu_VERSION) \
+ && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl \
+ OOO \
+ $(gb_Package_SOURCEDIR_icu)/source/lib/libicudata$(gb_Library_DLLEXT).$(icu_VERSION)) \
,source)
endif
diff --git a/external/icu/icu4c-build.patch b/external/icu/icu4c-build.patch
index 1f6010b4c9d2..103e9aea5b64 100644
--- a/external/icu/icu4c-build.patch
+++ b/external/icu/icu4c-build.patch
@@ -51,7 +51,7 @@
-else
-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
-endif
-+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name @__________________________________________________OOO/$(notdir $(MIDDLE_SO_TARGET))
++LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name @__________________________________________________URELIB/$(notdir $(MIDDLE_SO_TARGET))
## Compiler switch to embed a runtime search path
LD_RPATH=
diff --git a/external/liblangtag/ExternalProject_langtag.mk b/external/liblangtag/ExternalProject_langtag.mk
index 5be74fbdeb0c..eacf41db28a4 100644
--- a/external/liblangtag/ExternalProject_langtag.mk
+++ b/external/liblangtag/ExternalProject_langtag.mk
@@ -31,7 +31,7 @@ $(call gb_ExternalProject_get_state_target,langtag,build):
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) "ac_cv_va_copy=no") \
LIBXML2_CFLAGS="$(LIBXML_CFLAGS)" \
LIBXML2_LIBS="$(if $(filter WNTMSC,$(OS)$(COM)),-L$(call gb_UnpackedTarball_get_dir,xml2)/win32/bin.msvc -llibxml2,$(LIBXML_LIBS))" \
- $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
+ $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________URELIB) \
$(if $(filter-out LINUX FREEBSD,$(OS)),,LDFLAGS="-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath,\\"\$$\$$ORIGIN) \
$(if $(filter-out SOLARIS,$(OS)),,LDFLAGS="-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-R$(COMMA)\\"\$$\$$ORIGIN) \
$(if $(filter-out WNTGCC,$(OS)$(COM)),,LDFLAGS="-Wl$(COMMA)--enable-runtime-pseudo-reloc-v2") \
@@ -42,7 +42,7 @@ $(call gb_ExternalProject_get_state_target,langtag,build):
$(MAKE) \
LIBO_TUNNEL_LIBRARY_PATH='$(subst ','\'',$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,langtag)/liblangtag/.libs))' \
$(if $(filter MACOSX,$(OS)),\
- && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
+ && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl URELIB \
$(EXTERNAL_WORKDIR)/liblangtag/.libs/liblangtag.1.dylib \
) \
)