Kaydet (Commit) 8dc27a0b authored tarafından Khaled Hosny's avatar Khaled Hosny Kaydeden (comit) Eike Rathke

Always enable liblangtag

The license should not be an issue any more since liblangtag now has an
LGPL/MPLv2 dual licence.

Change-Id: I4dfffcccf5d710bd16b21c3254c1449ae041b8ab
Reviewed-on: https://gerrit.libreoffice.org/34511Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
üst 2793561b
......@@ -926,7 +926,6 @@ endef
endif # SYSTEM_LIBXSLT
ifeq ($(ENABLE_LIBLANGTAG),TRUE)
ifneq ($(SYSTEM_LIBLANGTAG),)
......@@ -985,12 +984,6 @@ endef
endif # SYSTEM_LIBLANGTAG
else
gb_LinkTarget__use_liblangtag :=
gb_ExternalProject__use_liblangtag :=
endif # ENABLE_LIBLANGTAG
gb_ExternalProject__use_apr :=
......
......@@ -142,7 +142,6 @@ export ENABLE_GTK_PRINT=@ENABLE_GTK_PRINT@
export ENABLE_HEADLESS=@ENABLE_HEADLESS@
export ENABLE_JAVA=@ENABLE_JAVA@
export ENABLE_KDE4=@ENABLE_KDE4@
export ENABLE_LIBLANGTAG=@ENABLE_LIBLANGTAG@
export ENABLE_LPSOLVE=@ENABLE_LPSOLVE@
export ENABLE_LTO=@ENABLE_LTO@
export ENABLE_LWP=@ENABLE_LWP@
......
#ifndef CONFIG_LIBLANGTAG_H
#define CONFIG_LIBLANGTAG_H
#define ENABLE_LIBLANGTAG 0
#define LIBLANGTAG_INLINE_FIX 0
#endif
......@@ -1485,12 +1485,6 @@ libo_FUZZ_ARG_ENABLE(firebird-sdbc,
[Disable the build of the Firebird-SDBC driver if it doesn't compile for you.]),
,test "${enable_firebird_sdbc+set}" = set || enable_firebird_sdbc=yes)
libo_FUZZ_ARG_ENABLE(liblangtag,
AS_HELP_STRING([--disable-liblangtag],
[Disable use of liblangtag, and instead use an own simple
implementation.]),
)
AC_ARG_ENABLE(bogus-pkg-config,
AS_HELP_STRING([--enable-bogus-pkg-config],
[MACOSX only: on MacOSX pkg-config can cause trouble. by default if one is found in the PATH, an error is issued. This flag turn that error into a warning.]),
......@@ -11585,39 +11579,28 @@ AC_SUBST(AVAHI_LIBS)
dnl ===================================================================
dnl Test whether to use liblangtag
dnl ===================================================================
ENABLE_LIBLANGTAG=
SYSTEM_LIBLANGTAG=
AC_MSG_CHECKING([whether to use liblangtag])
if test "$enable_liblangtag" = "yes" -o "$enable_liblangtag" = ""; then
ENABLE_LIBLANGTAG=TRUE
AC_MSG_CHECKING([whether to use system liblangtag])
if test "$with_system_liblangtag" = yes; then
SYSTEM_LIBLANGTAG=TRUE
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([whether to use system liblangtag])
if test "$with_system_liblangtag" = yes; then
SYSTEM_LIBLANGTAG=TRUE
AC_MSG_RESULT([yes])
PKG_CHECK_MODULES( LIBLANGTAG, liblangtag >= 0.4.0)
dnl cf. <https://bitbucket.org/tagoh/liblangtag/commits/9324836a0d1c> "Fix a build issue with inline keyword"
PKG_CHECK_EXISTS([liblangtag >= 0.5.5], [], [AC_DEFINE([LIBLANGTAG_INLINE_FIX])])
LIBLANGTAG_CFLAGS=$(printf '%s' "$LIBLANGTAG_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
FilterLibs "${LIBLANGTAG_LIBS}"
LIBLANGTAG_LIBS="${filteredlibs}"
else
SYSTEM_LIBLANGTAG=
AC_MSG_RESULT([no])
BUILD_TYPE="$BUILD_TYPE LIBLANGTAG"
LIBLANGTAG_CFLAGS="-I${WORKDIR}/UnpackedTarball/langtag"
if test "$COM" = "MSC"; then
LIBLANGTAG_LIBS="${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs/liblangtag.lib"
else
LIBLANGTAG_LIBS="-L${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs -llangtag"
fi
fi
AC_DEFINE(ENABLE_LIBLANGTAG)
else
PKG_CHECK_MODULES( LIBLANGTAG, liblangtag >= 0.4.0)
dnl cf. <https://bitbucket.org/tagoh/liblangtag/commits/9324836a0d1c> "Fix a build issue with inline keyword"
PKG_CHECK_EXISTS([liblangtag >= 0.5.5], [], [AC_DEFINE([LIBLANGTAG_INLINE_FIX])])
LIBLANGTAG_CFLAGS=$(printf '%s' "$LIBLANGTAG_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
FilterLibs "${LIBLANGTAG_LIBS}"
LIBLANGTAG_LIBS="${filteredlibs}"
else
SYSTEM_LIBLANGTAG=
AC_MSG_RESULT([no])
LIBLANGTAG_CFLAGS="-DDISABLE_LIBLANGTAG"
BUILD_TYPE="$BUILD_TYPE LIBLANGTAG"
LIBLANGTAG_CFLAGS="-I${WORKDIR}/UnpackedTarball/langtag"
if test "$COM" = "MSC"; then
LIBLANGTAG_LIBS="${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs/liblangtag.lib"
else
LIBLANGTAG_LIBS="-L${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs -llangtag"
fi
fi
AC_SUBST(ENABLE_LIBLANGTAG)
AC_SUBST(SYSTEM_LIBLANGTAG)
AC_SUBST(LIBLANGTAG_CFLAGS)
AC_SUBST(LIBLANGTAG_LIBS)
......
......@@ -4,7 +4,6 @@
--enable-mergelibs
--disable-runtime-optimizations
--disable-database-connectivity
--disable-liblangtag
--disable-gui
--disable-gtk
--disable-gtk3
......
......@@ -24,7 +24,6 @@ ifneq ($(OS),MACOSX)
ifneq ($(OS),WNT)
$(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\
external/libetonyek/libetonyek-bundled-soname.patch.0 \
external/libetonyek/libetonyek-support-disable-liblangtag.patch.0 \
))
endif
endif
......
--- src/lib/IWORKLanguageManager.cpp.orig 2017-02-21 10:28:39.646017140 +0000
+++ src/lib/IWORKLanguageManager.cpp 2017-02-21 10:29:26.601817549 +0000
@@ -12,7 +12,9 @@
#include <cstdlib>
#include <stdexcept>
+#if !defined(DISABLE_LIBLANGTAG)
#include <liblangtag/langtag.h>
+#endif
#include "libetonyek_utils.h"
@@ -27,6 +29,7 @@
using std::string;
+#if !defined(DISABLE_LIBLANGTAG)
namespace
{
@@ -56,6 +59,7 @@
}
}
+#endif
struct IWORKLanguageManager::LangDB
{
@@ -67,6 +71,7 @@
IWORKLanguageManager::LangDB::LangDB()
: m_db()
{
+#if !defined(DISABLE_LIBLANGTAG)
shared_ptr<lt_lang_db_t> langDB(lt_db_get_lang(), lt_lang_db_unref);
shared_ptr<lt_iter_t> it(LT_ITER_INIT(langDB.get()), lt_iter_finish);
lt_pointer_t key(0);
@@ -77,6 +82,7 @@
lt_lang_t *const lang = reinterpret_cast<lt_lang_t *>(value);
m_db[lt_lang_get_name(lang)] = tag;
}
+#endif
}
IWORKLanguageManager::IWORKLanguageManager()
@@ -102,6 +108,10 @@
if (invIt != m_invalidTags.end())
return "";
+#if defined(DISABLE_LIBLANGTAG)
+ m_invalidTags.insert(tag);
+ return "";
+#else
const shared_ptr<lt_tag_t> &langTag = parseTag(tag);
if (!langTag)
{
@@ -114,6 +124,7 @@
addProperties(fullTag);
return fullTag;
+#endif
}
const std::string IWORKLanguageManager::addLanguage(const std::string &lang)
@@ -134,6 +145,10 @@
return "";
}
+#if defined(DISABLE_LIBLANGTAG)
+ m_invalidLangs.insert(lang);
+ return "";
+#else
const shared_ptr<lt_tag_t> &langTag = parseTag(langIt->second);
if (!langTag)
throw std::logic_error("cannot parse tag that came from liblangtag language DB");
@@ -143,6 +158,7 @@
addProperties(fullTag);
return fullTag;
+#endif
}
const std::string IWORKLanguageManager::addLocale(const std::string &locale)
@@ -156,6 +172,9 @@
if (invIt != m_invalidLocales.end())
return "";
+#if defined(DISABLE_LIBLANGTAG)
+ return "";
+#else
lt_error_t *error = 0;
const shared_ptr<lt_tag_t> tag(lt_tag_convert_from_locale_string(locale.c_str(), &error), lt_tag_unref);
if ((error && lt_error_is_set(error, LT_ERR_ANY)) || !tag)
@@ -170,14 +189,19 @@
addProperties(fullTag);
return fullTag;
+#endif
}
const std::string IWORKLanguageManager::getLanguage(const std::string &tag) const
{
+#if defined(DISABLE_LIBLANGTAG)
+ return "";
+#else
const shared_ptr<lt_tag_t> &langTag = parseTag(tag);
if (!langTag)
throw std::logic_error("cannot parse tag that has been successfully parsed before");
return lt_lang_get_name(lt_tag_get_language(langTag.get()));
+#endif
}
const IWORKLanguageManager::LangDB &IWORKLanguageManager::getLangDB() const
@@ -189,6 +213,9 @@
void IWORKLanguageManager::addProperties(const std::string &tag)
{
+#if defined(DISABLE_LIBLANGTAG)
+ return;
+#else
const shared_ptr<lt_tag_t> &langTag = parseTag(tag);
if (!langTag)
throw std::logic_error("cannot parse tag that has been successfully parsed before");
@@ -205,6 +232,7 @@
props.insert("fo:script", lt_script_get_tag(script));
m_propsMap[tag] = props;
+#endif
}
void IWORKLanguageManager::writeProperties(const std::string &tag, librevenge::RVNGPropertyList &props) const
......@@ -21,7 +21,6 @@ $(eval $(call gb_CppunitTest_use_libraries,i18nlangtag_test_languagetag,\
$(gb_UWINAPI) \
))
ifeq ($(ENABLE_LIBLANGTAG),TRUE)
$(eval $(call gb_CppunitTest_use_externals,i18nlangtag_test_languagetag,\
liblangtag \
libxml2 \
......@@ -32,7 +31,6 @@ $(eval $(call gb_CppunitTest_add_defs,i18nlangtag_test_languagetag,-DSYSTEM_LIBL
else
$(eval $(call gb_CppunitTest_use_package,i18nlangtag_test_languagetag,liblangtag_data))
endif
endif
$(eval $(call gb_CppunitTest_add_exception_objects,i18nlangtag_test_languagetag,\
i18nlangtag/qa/cppunit/test_languagetag \
......
......@@ -35,7 +35,6 @@ $(eval $(call gb_Library_add_exception_objects,i18nlangtag,\
))
ifeq ($(ENABLE_LIBLANGTAG),TRUE)
$(eval $(call gb_Library_use_external,i18nlangtag,liblangtag))
$(eval $(call gb_Library_use_external,i18nlangtag,libxml2))
$(eval $(call gb_Library_use_system_win32_libs,i18nlangtag,\
......@@ -43,6 +42,5 @@ $(eval $(call gb_Library_use_system_win32_libs,i18nlangtag,\
kernel32 \
) \
))
endif
# vim: set noet sw=4 ts=4:
......@@ -17,7 +17,6 @@
#include <i18nlangtag/mslangid.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <config_liblangtag.h>
#include <rtl/ustring.hxx>
#include <rtl/ustrbuf.hxx>
#include <osl/file.hxx>
......@@ -51,7 +50,6 @@ void TestLanguageTag::testAllTags()
OUString aBcp47 = de_DE.getBcp47();
lang::Locale aLocale = de_DE.getLocale();
LanguageType nLanguageType = de_DE.getLanguageType();
#if ENABLE_LIBLANGTAG
CPPUNIT_ASSERT_EQUAL_MESSAGE("Default script should be stripped after canonicalize.", OUString("de-DE"), aBcp47 );
CPPUNIT_ASSERT_EQUAL( OUString("de"), aLocale.Language );
CPPUNIT_ASSERT_EQUAL( OUString("DE"), aLocale.Country );
......@@ -61,18 +59,6 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT_EQUAL( OUString("DE"), de_DE.getCountry() );
CPPUNIT_ASSERT( de_DE.getScript().isEmpty() );
CPPUNIT_ASSERT_EQUAL( OUString("de"), de_DE.getLanguageAndScript() );
#else
// The simple replacement code doesn't do any fancy stuff.
CPPUNIT_ASSERT_MESSAGE("Default script was stripped after canonicalize!?!", aBcp47 == s_de_Latn_DE );
CPPUNIT_ASSERT( aLocale.Language == "qlt" );
CPPUNIT_ASSERT( aLocale.Country == "DE" );
CPPUNIT_ASSERT( aLocale.Variant == "de-Latn-DE" );
CPPUNIT_ASSERT( LanguageTag::isOnTheFlyID( nLanguageType) ); // XXX not canonicalized!
CPPUNIT_ASSERT( de_DE.getLanguage() == "de" );
CPPUNIT_ASSERT( de_DE.getCountry() == "DE" );
CPPUNIT_ASSERT( de_DE.getScript() == "Latn" );
CPPUNIT_ASSERT( de_DE.getLanguageAndScript() == "de-Latn" );
#endif
CPPUNIT_ASSERT_EQUAL( OUString("de-DE"), de_DE.makeFallback().getBcp47() );
}
......@@ -80,7 +66,6 @@ void TestLanguageTag::testAllTags()
OUString s_klingon( "i-klingon" );
LanguageTag klingon( s_klingon, true );
lang::Locale aLocale = klingon.getLocale();
#if ENABLE_LIBLANGTAG
CPPUNIT_ASSERT_EQUAL( OUString("tlh"), klingon.getBcp47() );
CPPUNIT_ASSERT_EQUAL( OUString("tlh"), aLocale.Language );
CPPUNIT_ASSERT( aLocale.Country.isEmpty() );
......@@ -92,19 +77,6 @@ void TestLanguageTag::testAllTags()
LanguageType nLang = klingon.getLanguageType();
LanguageTag klingon_id( nLang);
CPPUNIT_ASSERT_EQUAL( OUString("tlh"), klingon_id.getBcp47() );
#else
CPPUNIT_ASSERT( klingon.getBcp47() == s_klingon );
CPPUNIT_ASSERT( aLocale.Language == "qlt" );
CPPUNIT_ASSERT_EQUAL( OUString(), aLocale.Country );
CPPUNIT_ASSERT( aLocale.Variant == s_klingon );
CPPUNIT_ASSERT( LanguageTag::isOnTheFlyID( klingon.getLanguageType()) );
CPPUNIT_ASSERT( klingon.isValidBcp47() );
CPPUNIT_ASSERT( !klingon.isIsoLocale() );
CPPUNIT_ASSERT( !klingon.isIsoODF() );
LanguageType nLang = klingon.getLanguageType();
LanguageTag klingon_id( nLang);
CPPUNIT_ASSERT( klingon_id.getBcp47() == s_klingon );
#endif
}
{
......@@ -462,7 +434,6 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT_EQUAL( OUString("en"), en_GB_oxendict_Fallbacks[4]);
}
#if ENABLE_LIBLANGTAG
// 'zh-yue-HK' uses redundant 'zh-yue' and should be preferred 'yue-HK'
#if 0
/* XXX Disabled because liblangtag in lt_tag_canonicalize() after replacing
......@@ -491,7 +462,6 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( zh_yue_HK_Fallbacks[0] == "yue-HK");
CPPUNIT_ASSERT( zh_yue_HK_Fallbacks[1] == "yue");
}
#endif
#endif
// 'qtz' is a local use known pseudolocale for key ID resource
......@@ -651,7 +621,6 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( LanguageTag::isValidBcp47( "en-US", &aCanonicalized, true) && aCanonicalized == "en-US" );
CPPUNIT_ASSERT( !LanguageTag::isValidBcp47( "x-foobar", &aCanonicalized, true) && aCanonicalized == "x-foobar" );
CPPUNIT_ASSERT( LanguageTag::isValidBcp47( "qaa", &aCanonicalized, true) && aCanonicalized == "qaa" );
#if ENABLE_LIBLANGTAG
CPPUNIT_ASSERT( LanguageTag::isValidBcp47( "de-Latn-DE", &aCanonicalized) && aCanonicalized == "de-DE" );
/* TODO: at least some (those we know) grandfathered tags should be
* recognized by the replacement code. */
......@@ -659,9 +628,6 @@ void TestLanguageTag::testAllTags()
// en-GB-oed has become deprecated in updated language-subtag-registry database
// (liblangtag 0.5.7)
CPPUNIT_ASSERT( ( aCanonicalized == "en-GB-oxendict" ) || ( aCanonicalized == "en-GB-oed" ) );
#else
CPPUNIT_ASSERT( LanguageTag::isValidBcp47( "de-Latn-DE", &aCanonicalized) && aCanonicalized == "de-Latn-DE" );
#endif
}
}
......
......@@ -24,19 +24,10 @@
//#define erDEBUG
#if ENABLE_LIBLANGTAG
#if LIBLANGTAG_INLINE_FIX
#define LT_HAVE_INLINE
#endif
#include <liblangtag/langtag.h>
#else
/* Replacement code for LGPL phobic and Android systems.
* For iOS we could probably use NSLocale instead, that should have more or
* less required functionality. If it is good enough, it could be used for Mac
* OS X, too.
*/
#include "simple-langtag.cxx"
#endif
using namespace com::sun::star;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment