Introduce lo_get_app_data_dir() for Emscripten, too
And not just Android. Hardcoded to return "/instdir" to match what is in the emscripten_fs_image. Change-Id: I26d4ec5e02ec9900e35ca47f1565a13ad2b723b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144849 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
This commit is contained in:
parent
a510543a46
commit
de3b4b0200
11 changed files with 86 additions and 10 deletions
|
@ -335,6 +335,12 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ogltrans, \
|
|||
OGLTrans \
|
||||
))
|
||||
|
||||
ifeq ($(OS),EMSCRIPTEN)
|
||||
$(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
|
||||
lo-bootstrap \
|
||||
))
|
||||
endif
|
||||
|
||||
ifneq ($(ENABLE_WASM_STRIP_CANVAS),TRUE)
|
||||
$(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
|
||||
canvastools \
|
||||
|
|
|
@ -29,6 +29,10 @@
|
|||
#include <osl/detail/android-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#ifdef EMSCRIPTEN
|
||||
#include <osl/detail/emscripten-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
#include <iostream>
|
||||
|
@ -7106,10 +7110,8 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
|
|||
}
|
||||
else
|
||||
{
|
||||
#ifdef ANDROID
|
||||
#if defined ANDROID || defined EMSCRIPTEN
|
||||
aAppPath = OUString::fromUtf8(lo_get_app_data_dir()) + "/program";
|
||||
#elif defined __EMSCRIPTEN__
|
||||
aAppPath = OUString::fromUtf8("instdir/program");
|
||||
#else
|
||||
// Fun conversion dance back and forth between URLs and system paths...
|
||||
OUString aAppURL;
|
||||
|
|
|
@ -36,6 +36,10 @@
|
|||
#include <osl/detail/android-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#ifdef EMSCRIPTEN
|
||||
#include <osl/detail/emscripten-bootstrap.h>
|
||||
#endif
|
||||
|
||||
using namespace com::sun::star;
|
||||
|
||||
namespace {
|
||||
|
@ -215,7 +219,7 @@ void LiblangtagDataRef::teardown()
|
|||
|
||||
void LiblangtagDataRef::setupDataPath()
|
||||
{
|
||||
#if defined(ANDROID)
|
||||
#if defined(ANDROID) || defined(EMSCRIPTEN)
|
||||
maDataPath = OString(lo_get_app_data_dir()) + "/share/liblangtag";
|
||||
#else
|
||||
// maDataPath is assumed to be empty here.
|
||||
|
|
26
include/osl/detail/emscripten-bootstrap.h
Normal file
26
include/osl/detail/emscripten-bootstrap.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(EMSCRIPTEN)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
const char *lo_get_app_data_dir(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // EMSCRIPTEN
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
$(eval $(call gb_Library_Library,lo-bootstrap))
|
||||
|
||||
ifeq (ANDROID,$(OS))
|
||||
|
||||
# We explicitly *don't* want gb_STDLIBS to be linked here
|
||||
$(eval $(call gb_Library_disable_standard_system_libs,lo-bootstrap))
|
||||
|
||||
|
@ -22,6 +24,13 @@ $(eval $(call gb_Library_add_cobjects,lo-bootstrap,\
|
|||
sal/android/libreofficekit-jni \
|
||||
sal/android/lo-bootstrap \
|
||||
))
|
||||
endif
|
||||
|
||||
ifeq (EMSCRIPTEN,$(OS))
|
||||
$(eval $(call gb_Library_add_cobjects,lo-bootstrap,\
|
||||
sal/emscripten/lo-bootstrap \
|
||||
))
|
||||
endif
|
||||
|
||||
$(eval $(call gb_Library_set_include,lo-bootstrap,\
|
||||
$$(INCLUDE) \
|
||||
|
|
|
@ -37,7 +37,7 @@ $(eval $(call gb_Library_add_defs,sal,\
|
|||
))
|
||||
|
||||
$(eval $(call gb_Library_use_libraries,sal,\
|
||||
$(if $(filter ANDROID,$(OS)), \
|
||||
$(if $(filter ANDROID EMSCRIPTEN,$(OS)), \
|
||||
lo-bootstrap \
|
||||
) \
|
||||
))
|
||||
|
|
|
@ -11,7 +11,7 @@ $(eval $(call gb_Module_Module,sal))
|
|||
|
||||
$(eval $(call gb_Module_add_targets,sal,\
|
||||
$(if $(CROSS_COMPILING),,$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,Executable_cppunittester)) \
|
||||
$(if $(filter $(OS),ANDROID), \
|
||||
$(if $(filter $(OS),ANDROID EMSCRIPTEN), \
|
||||
Library_lo-bootstrap) \
|
||||
Library_sal \
|
||||
$(call gb_CondLibSalTextenc,Library_sal_textenc) \
|
||||
|
|
19
sal/emscripten/lo-bootstrap.c
Normal file
19
sal/emscripten/lo-bootstrap.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include <osl/detail/emscripten-bootstrap.h>
|
||||
|
||||
__attribute__ ((visibility("default")))
|
||||
const char *
|
||||
lo_get_app_data_dir(void)
|
||||
{
|
||||
return "/instdir";
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -50,6 +50,10 @@
|
|||
#include <osl/detail/android-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#ifdef EMSCRIPTEN
|
||||
#include <osl/detail/emscripten-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#ifdef IOS
|
||||
#include <premac.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
@ -456,7 +460,7 @@ bool Bootstrap_Impl::getValue(
|
|||
return true;
|
||||
}
|
||||
|
||||
#ifdef ANDROID
|
||||
#if defined ANDROID || defined EMSCRIPTEN
|
||||
if (key == "APP_DATA_DIR")
|
||||
{
|
||||
const char *app_data_dir = lo_get_app_data_dir();
|
||||
|
|
|
@ -5463,6 +5463,7 @@ include/osl/conditn.hxx
|
|||
include/osl/detail/android-bootstrap.h
|
||||
include/osl/detail/component-defines.h
|
||||
include/osl/detail/component-mapping.h
|
||||
include/osl/detail/emscripten-bootstrap.h
|
||||
include/osl/diagnose.h
|
||||
include/osl/diagnose.hxx
|
||||
include/osl/endian.h
|
||||
|
@ -7574,6 +7575,7 @@ sal/android/libreofficekit-jni.c
|
|||
sal/android/lo-bootstrap.c
|
||||
sal/android/uthash.h
|
||||
sal/cppunittester/cppunittester.cxx
|
||||
sal/emscripten/lo-bootstrap.c
|
||||
sal/inc/signalshared.hxx
|
||||
sal/osl/all/compat.cxx
|
||||
sal/osl/all/debugbase.cxx
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID
|
||||
#if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID && !defined EMSCRIPTEN
|
||||
# include <libintl.h>
|
||||
#endif
|
||||
|
||||
|
@ -57,6 +57,10 @@
|
|||
#include <osl/detail/android-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#ifdef EMSCRIPTEN
|
||||
#include <osl/detail/emscripten-bootstrap.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && defined(DBG_UTIL)
|
||||
#include <o3tl/char16_t2wchar_t.hxx>
|
||||
#include <prewin.h>
|
||||
|
@ -134,7 +138,7 @@ namespace Translate
|
|||
gen.characters(boost::locale::char_facet_t::char_f);
|
||||
gen.categories(boost::locale::category_t::message | boost::locale::category_t::information);
|
||||
#endif
|
||||
#if defined(ANDROID)
|
||||
#if defined(ANDROID) || defined(EMSCRIPTEN)
|
||||
OString sPath(OString(lo_get_app_data_dir()) + "/program/resource");
|
||||
#else
|
||||
OUString uri("$BRAND_BASE_DIR/$BRAND_SHARE_RESOURCE_SUBDIR/");
|
||||
|
@ -151,7 +155,7 @@ namespace Translate
|
|||
OString sPath(OUStringToOString(path, eEncoding));
|
||||
#endif
|
||||
gen.add_messages_path(sPath.getStr());
|
||||
#if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID
|
||||
#if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID && !defined EMSCRIPTEN
|
||||
// allow gettext to find these .mo files e.g. so gtk dialogs can use them
|
||||
bindtextdomain(aPrefixName.data(), sPath.getStr());
|
||||
// tdf#131069 gtk, and anything sane, always wants utf-8 strings as output
|
||||
|
|
Loading…
Reference in a new issue