office-gobmx/config_host.mk.in

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

820 lines
33 KiB
Makefile
Raw Normal View History

# config variable for LibreOffice
# this file is intended to be able to be included in a Makefile
# and not to be sourced in a shell session
#
# Horrible hack to prepend spaces to expansions
# Spaces are usually eaten by make parser but not if variable expands to space.
# Space prefix is desirable because system CFLAGS may be completely empty,
# which means that the variables defined here would need extra twiddling
# to get them into invoked external configures and override pkg-config there.
gb_SPACE:=$(gb_SPACE) $(gb_SPACE)
export SRC_ROOT=@SRC_ROOT@
export BUILDDIR=@BUILDDIR@
@x_AFLAGS@ export AFLAGS=@AFLAGS@
export ABW_CFLAGS=$(gb_SPACE)@ABW_CFLAGS@
export ABW_LIBS=$(gb_SPACE)@ABW_LIBS@
android: Use property instead of ANDROID_NDK_HOME env var Write an `ndk.dir` property with the directory path to `android/source/local.properties` instead, similar to how it's done for `sdk.dir`. Also, rename the `ANDROID_NDK_HOME` variable that's assigned in configure.ac that holds the corresponding value to `ANDROID_NDK_DIR`, because the gradle warning still shows up if that environment variable is set in addition to having an `ndk.dir` property in `local.properties`. This makes the following gradle warning disappear: > > Task :stripStrippedUIDebugDebugSymbols > WARNING: Support for ANDROID_NDK_HOME is deprecated and will be removed in the future. Use android.ndkVersion in build.gradle instead. > Support for ANDROID_NDK_HOME is deprecated and will be removed in the future. Use android.ndkVersion in build.gradle instead. Note however, that with this approach of using the `ndk.dir` property instead of the suggested `android.ndkVersion` (with the latter having the stricter requirement that the `ndk` dir would have to be a subdir of the SDK dir), doing the actual upgrade to a newer Gradle (plugin) version in follow-up commit Change-Id Ia982d72d877e229c3006c6d528b830d16c88481f "android: Update Android Gradle Plugin to 7.1.3" revealed that the use of the `ndk.dir` property is deprecated in newer Gradle (plugin) versions as well, resulting in this warning. > > Task :stripStrippedUIDebugDebugSymbols > [CXX5106] NDK was located by using ndk.dir property. This method is > deprecated and will be removed in a future release. Please delete > ndk.dir from local.properties and set android.ndkVersion to > [20.0.5594570] in all native modules in the project. > https://developer.android.com/r/studio-ui/ndk-dir It might make sense to address that in a follow-up step, but for now, it's an improvement and keeps it working after the upgrade without potentially causing any incompatibility problems with existing autogen configurations, while support for the `ANDROID_NDK_HOME` env var that was used so far seems to have been dropped, resulting in > > Task :stripStrippedUIDebugDebugSymbols > Unable to strip the following libraries, packaging them as they are: > libc++_shared.so, libfreebl3.so, liblo-native-code.so, libnspr4.so, > libnss3.so, libnssckbi.so, libnssdbm3.so, libnssutil3.so, > libplc4.so, libplds4.so, libsmime3.so, libsoftokn3.so, > libsqlite3.so, libssl3.so. instead if upgrading gradle without switching to the use of the property. Change-Id: I4a090e8736dac80777f69b0e12819b9c056f582b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133177 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-04-19 08:18:49 -05:00
export ANDROID_NDK_DIR=@ANDROID_NDK_DIR@
android: Set android.ndkVersion for Gradle Set the `android.ndkVersion` property [1] for the Android Gradle Plugin, in addition to `android.ndkPath` that is set there already. This addresses the warning > Task :stripStrippedUIEditingDebugDebugSymbols [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. Unable to strip the following libraries, packaging them as they are: libc++_shared.so, libfreebl3.so, liblo-native-code.so, libnspr4.so, libnss3.so, libnssckbi.so, libnssdbm3.so, libnssutil3.so, libplc4.so, libplds4.so, libsmime3.so, libsoftokn3.so, libsqlite3.so, libssl3.so. that started to show up in a local `--with-android-ndk=$HOME/Android/Sdk/ndk/25.1.8937393` Android build after commit 1610ebc06b34263bf3e525babe1e583b932f6242 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon May 13 10:47:49 2024 +0200 android: Update Android Gradle Plugin to 8.4.0 ... and gradle to 8.6, as suggested by Android Studio. As described at [2], that Android Gradle Plugin defaults to NDK 26.1.10909125. [1] https://developer.android.com/studio/projects/install-ndk#apply-specific-version [2] https://developer.android.com/build/releases/gradle-plugin Change-Id: Ied81f13f535303f9578177646f177b4ef791eefa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167715 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-15 21:51:47 -05:00
export ANDROID_NDK_VERSION=@ANDROID_NDK_VERSION@
export ANDROID_API_LEVEL=@ANDROID_API_LEVEL@
export ANDROID_APP_ABI=@ANDROID_APP_ABI@
export ANDROID_SDK_DIR=@ANDROID_SDK_DIR@
export ANDROID_SYSROOT_PLATFORM=@ANDROID_SYSROOT_PLATFORM@
export ANDROID_PACKAGE_NAME=@ANDROID_PACKAGE_NAME@
export ANDROID_TOOLCHAIN=@ANDROID_TOOLCHAIN@
export ANDROID_GCC_TOOLCHAIN_VERSION=@ANDROID_GCC_TOOLCHAIN_VERSION@
export ANT=@ANT@
export ANT_HOME=@ANT_HOME@
export ANT_LIB=@ANT_LIB@
export AR=@AR@
export ASSERT_ALWAYS_ABORT=@ASSERT_ALWAYS_ABORT@
export ATL_INCLUDE=@ATL_INCLUDE@
export ATL_LIB=@ATL_LIB@
export ATOMIC_LIB=@ATOMIC_LIB@
vcl gtk3: Introduce AT-SPI2 tests for the GTK3 accessibility layer Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-04-05 08:39:25 -05:00
export ATSPI2_CFLAGS=$(gb_SPACE)@ATSPI2_CFLAGS@
export ATSPI2_LIBS=$(gb_SPACE)@ATSPI2_LIBS@
export AVAHI_CFLAGS=$(gb_SPACE)@AVAHI_CFLAGS@
export AVAHI_LIBS=$(gb_SPACE)@AVAHI_LIBS@
export LIBATOMIC_OPS_CFLAGS=$(gb_SPACE)@LIBATOMIC_OPS_CFLAGS@
export LIBATOMIC_OPS_LIBS=$(gb_SPACE)@LIBATOMIC_OPS_LIBS@
export BACKTRACE_CFLAGS=@BACKTRACE_CFLAGS@
export BACKTRACE_LIBS=@BACKTRACE_LIBS@
export BINDIR=@BINDIR@
export BISON=@BISON@
export BOOST_CPPFLAGS=@BOOST_CPPFLAGS@
export BOOST_CXXFLAGS=@BOOST_CXXFLAGS@
export BOOST_LOCALE_LIB=@BOOST_LOCALE_LIB@
export BOOST_DATE_TIME_LIB=@BOOST_DATE_TIME_LIB@
export BOOST_FILESYSTEM_LIB=@BOOST_FILESYSTEM_LIB@
export BOOST_IOSTREAMS_LIB=@BOOST_IOSTREAMS_LIB@
export BOOST_LDFLAGS=@BOOST_LDFLAGS@
export BOOST_SYSTEM_LIB=@BOOST_SYSTEM_LIB@
export BOX2D_CFLAGS=@BOX2D_CFLAGS@
export BOX2D_LIBS=@BOX2D_LIBS@
export BRAND_INTRO_IMAGES=@BRAND_INTRO_IMAGES@
export BREAKPAD_SYMBOL_CONFIG=@BREAKPAD_SYMBOL_CONFIG@
export BSH_JAR=@BSH_JAR@
export BUILD_PLATFORM=@build@
export BUILD_POSTGRESQL_SDBC=@BUILD_POSTGRESQL_SDBC@
export BUILD_TYPE=@BUILD_TYPE@
export BUILD_X64=@BUILD_X64@
export BUILD_X86=@BUILD_X86@
export BUILDING_PCH_WITH_OBJ=@BUILDING_PCH_WITH_OBJ@
export BZIP2_CFLAGS=$(gb_SPACE)@BZIP2_CFLAGS@
export BZIP2_LIBS=$(gb_SPACE)@BZIP2_LIBS@
export CAIRO_CFLAGS=$(gb_SPACE)@CAIRO_CFLAGS@
export CAIRO_LIBS=$(gb_SPACE)@CAIRO_LIBS@
export CC=@CC@
export CC_FOR_BUILD=@CC_FOR_BUILD@
export CCACHE_DEPEND_MODE=@CCACHE_DEPEND_MODE@
export CDR_CFLAGS=$(gb_SPACE)@CDR_CFLAGS@
export CDR_LIBS=$(gb_SPACE)@CDR_LIBS@
@x_CFLAGS@ export CFLAGS=@CFLAGS@
export CLANG_USE_LD=@CLANG_USE_LD@
export CLANGDIR=@CLANGDIR@
Support loplugin in clang-cl This works at least with a recent Clang trunk (towards Clang 6.0). In order for the plugin.dll to find the LLVM/Clang symbols, it needs to be loaded into clang.exe not clang-cl.exe, so set CC/CXX to 'clang.exe --driver-mode=cl ...'. Buidling the plugin requires some linker flags that must go at the very end of the COMPILER_PLUGINS_CXX command line, after a /link switch, so introduce another COMPILER_PLUGINS_CXX_LINKFLAGS variable for that. Also, clang.lib is not installed as part of LLVM's 'cmake --build ... --target install' step, so is not available under CLANGDIR and needs to be taken from the build tree instead, so introduce another CLANGLIBDIR variable for that. autogen.input settings that work for me on Windows 8.1 with Microsoft Visual Studio 14.0 are: > CLANGDIR=C:/llvm/inst > CLANGLIBDIR=C:/llvm/build/lib > COMPILER_PLUGINS_CXX=C:/PROGRA~2/MICROS~3.0/VC/bin/amd64/cl.exe /IC:\PROGRA~2\MICROS~3.0\VC\INCLUDE /IC:\PROGRA~2\MICROS~3.0\VC\ATLMFC\INCLUDE /IC:\PROGRA~2\WI3CF2~1\10\include\100102~1.0\ucrt /IC:\PROGRA~2\WI3CF2~1\NETFXSDK\46D346~1.1\include\um /IC:\PROGRA~2\WI3CF2~1\8.1\include\shared /IC:\PROGRA~2\WI3CF2~1\8.1\include\um /IC:\PROGRA~2\WI3CF2~1\8.1\include\winrt > COMPILER_PLUGINS_CXX_LINKFLAGS=/LIBPATH:C:/PROGRA~2/MICROS~3.0/VC/LIB/amd64 /LIBPATH:C:/PROGRA~2/MICROS~3.0/VC/ATLMFC/LIB/amd64 /LIBPATH:C:/PROGRA~2/WI3CF2~1/10/lib/100102~1.0/ucrt/x64 /LIBPATH:C:/PROGRA~2/WI3CF2~1/NETFXSDK/46D346~1.1/lib/um/x64 /LIBPATH:C:/PROGRA~2/WI3CF2~1/8.1/lib/winv6.3/um/x64 (The last two are "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/ amd64/cl.exe" and translations of %INCLUDE% and %LIB% as set in the "VS2015 x64 Native Tools Command Prompt" shell. AC_CHECK_HEADER(clang/AST/RecursiveASTVisitor.h, ...) in configure.ac wouldn't like CXX to start with INCLUDE=... LIB=... environment variable settings, so it wouldn't work to instead pass %INCLUDE% and %LIB% to cl.exe that way. See <https://wiki.documentfoundation.org/Development/clang-cl> for general information about building with clang-cl on Windows.) There's still some room for improvement marked "TODO". (And some of the unused* plugins, which are not run by default anyway, use Unix-style functionality, so have been disabled for now.) Change-Id: I6c28bdeb801af39ce2bae03111f455e2338d66c9 Reviewed-on: https://gerrit.libreoffice.org/42931 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-29 01:37:45 -05:00
export CLANGLIBDIR=@CLANGLIBDIR@
export CLANGSYSINCLUDE=@CLANGSYSINCLUDE@
export CLANGTOOLLIBS=@CLANGTOOLLIBS@
export CLUCENE_CFLAGS=$(gb_SPACE)@CLUCENE_CFLAGS@
export CLUCENE_LIBS=$(gb_SPACE)@CLUCENE_LIBS@
export LIBCMIS_CFLAGS=$(gb_SPACE)@LIBCMIS_CFLAGS@
export LIBCMIS_LIBS=$(gb_SPACE)@LIBCMIS_LIBS@
export COM=@COM@
export COMPATH=@COMPATH@
export COMPILER_PLUGINS=@COMPILER_PLUGINS@
Add --disable-compiler-plugins-analyzer-pch for Jenkins/linux_clang_dbgutil_64 <https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/54883/> had been a case I noticed of a "Gerrit Linux clang/dbgutil" build failing due to stale PCH information: [...] > [build GEN] compilerplugins/clang/sharedvisitor/makeshared.plugininfo > fatal error: file '/usr/include/asm-generic/errno.h' has been modified since the precompiled header '/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/compilerplugins/clang/sharedvisitor/clang.pch' was built > note: please rebuild precompiled header '/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/compilerplugins/clang/sharedvisitor/clang.pch' [...] and this issue had apparently caused all those Gerrit Jenkins builds to fail for at least a day. For unmaintained builds like those, I think it is better to have a more robust setup, where stale PCH information cannot break the build. Also, as those builds do not make compilerplugins.clean and rather share it across builds, there should not be much of a performance impact when disabling PCH in the analyzer. (It turns out that compilerplugins/clang/sharedvisitor/analyzer.cxx would always have enabled PCH, as compilerplugins/Makefile-clang.mk always passes in some definition of LO_CLANG_USE_ANALYZER_PCH. Fixed that now.) Change-Id: I7b8b24c1049c501634bd59c5fb482bec72427cf6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90211 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2020-03-09 05:25:29 -05:00
export COMPILER_PLUGINS_ANALYZER_PCH=@COMPILER_PLUGINS_ANALYZER_PCH@
export COMPILER_PLUGINS_COM_IS_CLANG=@COMPILER_PLUGINS_COM_IS_CLANG@
export COMPILER_PLUGINS_CXX=@COMPILER_PLUGINS_CXX@
export COMPILER_PLUGINS_CXXFLAGS=@COMPILER_PLUGINS_CXXFLAGS@
Support loplugin in clang-cl This works at least with a recent Clang trunk (towards Clang 6.0). In order for the plugin.dll to find the LLVM/Clang symbols, it needs to be loaded into clang.exe not clang-cl.exe, so set CC/CXX to 'clang.exe --driver-mode=cl ...'. Buidling the plugin requires some linker flags that must go at the very end of the COMPILER_PLUGINS_CXX command line, after a /link switch, so introduce another COMPILER_PLUGINS_CXX_LINKFLAGS variable for that. Also, clang.lib is not installed as part of LLVM's 'cmake --build ... --target install' step, so is not available under CLANGDIR and needs to be taken from the build tree instead, so introduce another CLANGLIBDIR variable for that. autogen.input settings that work for me on Windows 8.1 with Microsoft Visual Studio 14.0 are: > CLANGDIR=C:/llvm/inst > CLANGLIBDIR=C:/llvm/build/lib > COMPILER_PLUGINS_CXX=C:/PROGRA~2/MICROS~3.0/VC/bin/amd64/cl.exe /IC:\PROGRA~2\MICROS~3.0\VC\INCLUDE /IC:\PROGRA~2\MICROS~3.0\VC\ATLMFC\INCLUDE /IC:\PROGRA~2\WI3CF2~1\10\include\100102~1.0\ucrt /IC:\PROGRA~2\WI3CF2~1\NETFXSDK\46D346~1.1\include\um /IC:\PROGRA~2\WI3CF2~1\8.1\include\shared /IC:\PROGRA~2\WI3CF2~1\8.1\include\um /IC:\PROGRA~2\WI3CF2~1\8.1\include\winrt > COMPILER_PLUGINS_CXX_LINKFLAGS=/LIBPATH:C:/PROGRA~2/MICROS~3.0/VC/LIB/amd64 /LIBPATH:C:/PROGRA~2/MICROS~3.0/VC/ATLMFC/LIB/amd64 /LIBPATH:C:/PROGRA~2/WI3CF2~1/10/lib/100102~1.0/ucrt/x64 /LIBPATH:C:/PROGRA~2/WI3CF2~1/NETFXSDK/46D346~1.1/lib/um/x64 /LIBPATH:C:/PROGRA~2/WI3CF2~1/8.1/lib/winv6.3/um/x64 (The last two are "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/ amd64/cl.exe" and translations of %INCLUDE% and %LIB% as set in the "VS2015 x64 Native Tools Command Prompt" shell. AC_CHECK_HEADER(clang/AST/RecursiveASTVisitor.h, ...) in configure.ac wouldn't like CXX to start with INCLUDE=... LIB=... environment variable settings, so it wouldn't work to instead pass %INCLUDE% and %LIB% to cl.exe that way. See <https://wiki.documentfoundation.org/Development/clang-cl> for general information about building with clang-cl on Windows.) There's still some room for improvement marked "TODO". (And some of the unused* plugins, which are not run by default anyway, use Unix-style functionality, so have been disabled for now.) Change-Id: I6c28bdeb801af39ce2bae03111f455e2338d66c9 Reviewed-on: https://gerrit.libreoffice.org/42931 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-29 01:37:45 -05:00
export COMPILER_PLUGINS_CXX_LINKFLAGS=@COMPILER_PLUGINS_CXX_LINKFLAGS@
export COMPILER_PLUGINS_DEBUG=@COMPILER_PLUGINS_DEBUG@
export COMPILER_PLUGINS_TOOLING_ARGS=@COMPILER_PLUGINS_TOOLING_ARGS@
export COMPRESSIONTOOL=@COMPRESSIONTOOL@
export COM_IS_CLANG=@COM_IS_CLANG@
New --with-coredumpctl to obtain core dumps of crashed tests from coredumpctl ...for (Linux) systems that don't store core.* files in the current working directory. When enabled, this wraps test execution in `systemd-run --scope --user --unit=...` with unit values unique per individual test invocation, so that solenv/bin/gdb-core-bt.sh can query coredumpctl for matching core dumps. (See the mailing list thread starting at <https://lists.freedesktop.org/archives/systemd-devel/2023-March/048884.html> "[systemd-devel] coredumpctl: matching by e.g. env var?" for further details.) The used --unit=... scheme is a best effort to produce system-wide unique values, combining the target location path of the given test with a second-granularity date/time and the current PID. (In case there would be multiple invocations of the same test per second, which then hopefully wouldn't reuse the same PID. The date/time and PID could be replaced with a high-resolution system-wide monotonic clock/counter if one were easily available. The advantage of the current scheme is that it only uses Posix features.) The overall length of the unit value (incl. the appended ".scope" suffix) must not exceed 256 characters, or else systemd-run would fail with "Failed to mangle scope name: Invalid argument". It might look more natural to pass the unit value into gdb-core-bt.sh as a fourth positional argument rather than via a new LIBO_TEST_UNIT env var. But for one, the unit value is most easily computed from within the recipe shell command lines, where an env var is the most natural fit. And for another, this avoids having to tunnel yet another value through the tearDown method in unotest/source/java/org/openoffice/test/OfficeConnection.java to the given postprocesscommand. Change-Id: Idcb20cd1e1141d8ec7f10947e5edc70aa2aa7d32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149690 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-29 06:55:11 -05:00
export COREDUMPCTL=@COREDUMPCTL@
Handle CPDB lib in configure/build system In preparation of Biswadeep's upcoming GSoC changes (see [1]) to update the CPDB (Common Print Dialog Backends) support to the latest version and use the CPDB C API, add a corresponding `--enable-cpdb` autogen option (disabled by default). When CPDB is enabled, check for the cpdb-frontend library, define `ENABLE_CPDB` and set the compiler and linker flags for building the `CPDManager` (in vcl/unx/generic/printer/cpdmgr.cxx). Add checks for existing code using `CPDBManager`, so it only gets used when when CPDB is actually enabled. While the cpdb-frontend library is currently not actually used in `CPDManager` yet (as the previous approach tried to use some DBUs API directly), it will be in Biswadeep's upcoming changes. With this commit in place, an `--enable-cpdb` build works with this additional local test change in place to actually make use of the library: diff --git a/vcl/unx/generic/printer/cpdmgr.cxx b/vcl/unx/generic/printer/cpdmgr.cxx index 7dc17cede353..0c3b71d519db 100644 --- a/vcl/unx/generic/printer/cpdmgr.cxx +++ b/vcl/unx/generic/printer/cpdmgr.cxx @@ -22,6 +22,8 @@ #include <cstddef> #include <unistd.h> +#include <cpdb/cpdb-frontend.h> + #include <unx/cpdmgr.hxx> #include <osl/file.h> @@ -259,6 +261,7 @@ CPDManager* CPDManager::tryLoadCPD() } } #endif + cpdbPrintFile(nullptr, nullptr); return pManager; } [1] https://lists.freedesktop.org/archives/libreoffice/2024-May/091911.html Change-Id: Ifc50d2cd6496346bea55c73cb703e3c2d3eb44b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168656 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Biswadeep Purkayastha <bpdps95@hotmail.com>
2024-06-11 00:31:07 -05:00
export CPDB_CFLAGS=@CPDB_CFLAGS@
export CPDB_LIBS=@CPDB_LIBS@
export CPPU_ENV=@CPPU_ENV@
export CPPU_ENV_FOR_BUILD=@CPPU_ENV_FOR_BUILD@
export CPPUNIT_CFLAGS=$(gb_SPACE)@CPPUNIT_CFLAGS@
export CPPUNIT_LIBS=$(gb_SPACE)@CPPUNIT_LIBS@
export CPUNAME=@CPUNAME@
export CROSS_COMPILING=@CROSS_COMPILING@
export CURL=@CURL@
export CURL_CFLAGS=$(gb_SPACE)@CURL_CFLAGS@
export CURL_LIBS=$(gb_SPACE)@CURL_LIBS@
export CUSTOM_BRAND_DIR=@CUSTOM_BRAND_DIR@
export CUSTOM_BRAND_IMAGES=@CUSTOM_BRAND_IMAGES@
export CXX=@CXX@
export CXX_FOR_BUILD=@CXX_FOR_BUILD@
export CXX_X64_BINARY=@CXX_X64_BINARY@
export CXX_X86_BINARY=@CXX_X86_BINARY@
@x_CXXFLAGS@ export CXXFLAGS=@CXXFLAGS@
export CXXFLAGS_CXX11=@CXXFLAGS_CXX11@
export CXXFLAGS_INTRINSICS_SSE2=@CXXFLAGS_INTRINSICS_SSE2@
export CXXFLAGS_INTRINSICS_SSSE3=@CXXFLAGS_INTRINSICS_SSSE3@
export CXXFLAGS_INTRINSICS_SSE41=@CXXFLAGS_INTRINSICS_SSE41@
export CXXFLAGS_INTRINSICS_SSE42=@CXXFLAGS_INTRINSICS_SSE42@
export CXXFLAGS_INTRINSICS_AVX=@CXXFLAGS_INTRINSICS_AVX@
export CXXFLAGS_INTRINSICS_AVX2=@CXXFLAGS_INTRINSICS_AVX2@
export CXXFLAGS_INTRINSICS_AVX512=@CXXFLAGS_INTRINSICS_AVX512@
export CXXFLAGS_INTRINSICS_AVX512F=@CXXFLAGS_INTRINSICS_AVX512F@
export CXXFLAGS_INTRINSICS_F16C=@CXXFLAGS_INTRINSICS_F16C@
export CXXFLAGS_INTRINSICS_FMA=@CXXFLAGS_INTRINSICS_FMA@
export DATADIR=@DATADIR@
export DBUS_CFLAGS=$(gb_SPACE)@DBUS_CFLAGS@
export DBUS_LIBS=$(gb_SPACE)@DBUS_LIBS@
export DBUS_GLIB_CFLAGS=$(gb_SPACE)@DBUS_GLIB_CFLAGS@
export DBUS_GLIB_LIBS=$(gb_SPACE)@DBUS_GLIB_LIBS@
export DBUS_HAVE_GLIB=@DBUS_HAVE_GLIB@
vcl gtk3: Introduce AT-SPI2 tests for the GTK3 accessibility layer Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-04-05 08:39:25 -05:00
export DBUS_LAUNCH=@DBUS_LAUNCH@
export DCONF_CFLAGS=@DCONF_CFLAGS@
export DCONF_LIBS=@DCONF_LIBS@
export DEFAULT_BRAND_IMAGES=@DEFAULT_BRAND_IMAGES@
export DICT_SYSTEM_DIR=@DICT_SYSTEM_DIR@
export DISABLE_CVE_TESTS=@DISABLE_CVE_TESTS@
DISABLE_NAN_TESTS=@DISABLE_NAN_TESTS@
export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@
export DISABLE_PYTHON=@DISABLE_PYTHON@
export DOCDIR=@DOCDIR@
DOTNET=@DOTNET@
DOTNET_ROOT=@DOTNET_ROOT@
export DOXYGEN=@DOXYGEN@
export DO_FETCH_TARBALLS=@DO_FETCH_TARBALLS@
export DRAGONBOX_CFLAGS=@DRAGONBOX_CFLAGS@
export FROZEN_CFLAGS=@FROZEN_CFLAGS@
export DPKG=@DPKG@
export EBOOK_CFLAGS=$(gb_SPACE)@EBOOK_CFLAGS@
export EBOOK_LIBS=$(gb_SPACE)@EBOOK_LIBS@
export EMSDK_FILE_PACKAGER=@EMSDK_FILE_PACKAGER@
export EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS=@EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS@
export EMSCRIPTEN_WORKERJS=@EMSCRIPTEN_WORKERJS@
export ENABLE_ANDROID_LOK=@ENABLE_ANDROID_LOK@
export ENABLE_ANDROID_EDITING=@ENABLE_ANDROID_EDITING@
export ENABLE_AVAHI=@ENABLE_AVAHI@
export ENABLE_MSVC_ANALYZE=@ENABLE_MSVC_ANALYZE@
export ENABLE_BREAKPAD=@ENABLE_BREAKPAD@
export DEFAULT_CRASHDUMP_VALUE=@DEFAULT_CRASHDUMP_VALUE@
export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@
export ENABLE_CAIRO_RGBA=@ENABLE_CAIRO_RGBA@
export ENABLE_CIPHER_OPENSSL_BACKEND=@ENABLE_CIPHER_OPENSSL_BACKEND@
export ENABLE_CLI=@ENABLE_CLI@
export ENABLE_CLUCENE=@ENABLE_CLUCENE@
export ENABLE_LIBCMIS=@ENABLE_LIBCMIS@
export ENABLE_COINMP=@ENABLE_COINMP@
SYSTEM_COINMP=@SYSTEM_COINMP@
export COINMP_CFLAGS=@COINMP_CFLAGS@
export COINMP_LIBS=@COINMP_LIBS@
vcl gtk3: Introduce AT-SPI2 tests for the GTK3 accessibility layer Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-04-05 08:39:25 -05:00
export ENABLE_ATSPI_TESTS=@ENABLE_ATSPI_TESTS@
Handle CPDB lib in configure/build system In preparation of Biswadeep's upcoming GSoC changes (see [1]) to update the CPDB (Common Print Dialog Backends) support to the latest version and use the CPDB C API, add a corresponding `--enable-cpdb` autogen option (disabled by default). When CPDB is enabled, check for the cpdb-frontend library, define `ENABLE_CPDB` and set the compiler and linker flags for building the `CPDManager` (in vcl/unx/generic/printer/cpdmgr.cxx). Add checks for existing code using `CPDBManager`, so it only gets used when when CPDB is actually enabled. While the cpdb-frontend library is currently not actually used in `CPDManager` yet (as the previous approach tried to use some DBUs API directly), it will be in Biswadeep's upcoming changes. With this commit in place, an `--enable-cpdb` build works with this additional local test change in place to actually make use of the library: diff --git a/vcl/unx/generic/printer/cpdmgr.cxx b/vcl/unx/generic/printer/cpdmgr.cxx index 7dc17cede353..0c3b71d519db 100644 --- a/vcl/unx/generic/printer/cpdmgr.cxx +++ b/vcl/unx/generic/printer/cpdmgr.cxx @@ -22,6 +22,8 @@ #include <cstddef> #include <unistd.h> +#include <cpdb/cpdb-frontend.h> + #include <unx/cpdmgr.hxx> #include <osl/file.h> @@ -259,6 +261,7 @@ CPDManager* CPDManager::tryLoadCPD() } } #endif + cpdbPrintFile(nullptr, nullptr); return pManager; } [1] https://lists.freedesktop.org/archives/libreoffice/2024-May/091911.html Change-Id: Ifc50d2cd6496346bea55c73cb703e3c2d3eb44b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168656 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Biswadeep Purkayastha <bpdps95@hotmail.com>
2024-06-11 00:31:07 -05:00
export ENABLE_CPDB=@ENABLE_CPDB@
export ENABLE_CUPS=@ENABLE_CUPS@
export ENABLE_CURL=@ENABLE_CURL@
clean up configure options for debugging build By default a product (non-developer) build is done. Code is optimized and no debugging information is included (may be overriden though, see below). Developers should preferably build with --enable-dbgutil , or at least --enable-debug. The --enable-symbols switch has been removed. Use explicit CFLAGS/CXXFLAGS/LDFLAGS instead if needed. With --enable-debug optimizations are turned off and debugging information is included (in order to make it possible to examine the code in a debugger). Additionally assertions and logging is enabled (see SAL_WARN/SAL_INFO documentation for details and better control). This switch should primarily by used for occassional development (such as when it is needed to debug one module in a non-debug build, see also 'make DEBUG=true' below). Using --enable-dbgutil is the recommended developer option. In addition to --enable-debug it also enables additional checks, such as debugging mode for STL or checking compiler plugins. This switch may also enable additional logging from obsolete debugging tools (which should be converted to SAL_WARN/SAL_INFO for better control). Note that this option makes the build binary incompatible from a --disable-dbgutil build, so it is not possible to mix them. When using --enable-debug/--enable-dbgutil , the build is noticeably larger because of the included debugging information (compiler -g option). When disk space is an issue (or the computer is not very powerful), the --enable-selective-debuginfo option allow specifying where the debugging information should or should not be used. The option takes a list of arguments, where all means everything, - prepended means not to enable, / appended means everything in the directory; there is no ordering, more specific overrides more general, and disabling takes precedence). For example, --enable-selective-debuginfo="all -sw/ -Library_sc" enables debugginfo for everything except for anything in the sw module and the sc library. Explicitly specified CFLAGS/CXXFLAGS/LDFLAGS override optimization and debugging options (can be now also passed to configure which will make the build system use them). If in a non-debug build it is needed to temporary build something as a debug build, 'make DEBUG=true' temporarily works as if --enable-debug was specified. It also temporarily overrides debuginfo disabled using --enable-selective-debuginfo. Old code using old logging functionality also has a concept of a debug level, forced using 'make DBGLEVEL=2'. Using a debug level of 2 (or higher) enables additional logging output. New code should use SAL_WARN/SAL_INFO and use extra areas for additional logging output that can be selectively enabled/disabled using SAL_LOG variable. (Some smaller parts of this design will be implemented by separate follow-up commits.) Change-Id: Ia6420ee3c99c217ead648e8967165eed7f632258
2012-10-19 05:47:37 -05:00
export ENABLE_DBGUTIL=@ENABLE_DBGUTIL@
export ENABLE_DBUS=@ENABLE_DBUS@
export ENABLE_DCONF=@ENABLE_DCONF@
clean up configure options for debugging build By default a product (non-developer) build is done. Code is optimized and no debugging information is included (may be overriden though, see below). Developers should preferably build with --enable-dbgutil , or at least --enable-debug. The --enable-symbols switch has been removed. Use explicit CFLAGS/CXXFLAGS/LDFLAGS instead if needed. With --enable-debug optimizations are turned off and debugging information is included (in order to make it possible to examine the code in a debugger). Additionally assertions and logging is enabled (see SAL_WARN/SAL_INFO documentation for details and better control). This switch should primarily by used for occassional development (such as when it is needed to debug one module in a non-debug build, see also 'make DEBUG=true' below). Using --enable-dbgutil is the recommended developer option. In addition to --enable-debug it also enables additional checks, such as debugging mode for STL or checking compiler plugins. This switch may also enable additional logging from obsolete debugging tools (which should be converted to SAL_WARN/SAL_INFO for better control). Note that this option makes the build binary incompatible from a --disable-dbgutil build, so it is not possible to mix them. When using --enable-debug/--enable-dbgutil , the build is noticeably larger because of the included debugging information (compiler -g option). When disk space is an issue (or the computer is not very powerful), the --enable-selective-debuginfo option allow specifying where the debugging information should or should not be used. The option takes a list of arguments, where all means everything, - prepended means not to enable, / appended means everything in the directory; there is no ordering, more specific overrides more general, and disabling takes precedence). For example, --enable-selective-debuginfo="all -sw/ -Library_sc" enables debugginfo for everything except for anything in the sw module and the sc library. Explicitly specified CFLAGS/CXXFLAGS/LDFLAGS override optimization and debugging options (can be now also passed to configure which will make the build system use them). If in a non-debug build it is needed to temporary build something as a debug build, 'make DEBUG=true' temporarily works as if --enable-debug was specified. It also temporarily overrides debuginfo disabled using --enable-selective-debuginfo. Old code using old logging functionality also has a concept of a debug level, forced using 'make DBGLEVEL=2'. Using a debug level of 2 (or higher) enables additional logging output. New code should use SAL_WARN/SAL_INFO and use extra areas for additional logging output that can be selectively enabled/disabled using SAL_LOG variable. (Some smaller parts of this design will be implemented by separate follow-up commits.) Change-Id: Ia6420ee3c99c217ead648e8967165eed7f632258
2012-10-19 05:47:37 -05:00
export ENABLE_DEBUG=@ENABLE_DEBUG@
ENABLE_DOTNET=@ENABLE_DOTNET@
SYSTEM_DRAGONBOX=@SYSTEM_DRAGONBOX@
SYSTEM_FROZEN=@SYSTEM_FROZEN@
export ENABLE_EMSCRIPTEN_JSPI=@ENABLE_EMSCRIPTEN_JSPI@
export ENABLE_EMSCRIPTEN_PROXY_POSIX_SOCKETS=@ENABLE_EMSCRIPTEN_PROXY_POSIX_SOCKETS@
export ENABLE_EMSCRIPTEN_PROXY_TO_PTHREAD=@ENABLE_EMSCRIPTEN_PROXY_TO_PTHREAD@
export ENABLE_EPOXY=@ENABLE_EPOXY@
export ENABLE_EOT=@ENABLE_EOT@
export ENABLE_EVOAB2=@ENABLE_EVOAB2@
export ENABLE_FIREBIRD_SDBC=@ENABLE_FIREBIRD_SDBC@
export ENABLE_FORMULA_LOGGER=@ENABLE_FORMULA_LOGGER@
export ENABLE_GDB_INDEX=@ENABLE_GDB_INDEX@
export ENABLE_GEN=@ENABLE_GEN@
export ENABLE_GIO=@ENABLE_GIO@
export ENABLE_GPGMEPP=@ENABLE_GPGMEPP@
export ENABLE_GSTREAMER_1_0=@ENABLE_GSTREAMER_1_0@
export ENABLE_GTK3=@ENABLE_GTK3@
export ENABLE_GTK4=@ENABLE_GTK4@
export ENABLE_GTKTILEDVIEWER=@ENABLE_GTKTILEDVIEWER@
export DISABLE_GUI=@DISABLE_GUI@
export ENABLE_HARDENING_FLAGS=@ENABLE_HARDENING_FLAGS@
export HARDENING_CFLAGS=@HARDENING_CFLAGS@
export HARDENING_OPT_CFLAGS=@HARDENING_OPT_CFLAGS@
configure: Refactor platform defaults The main idea was to move complexity from source (and Makefiles) into configure.ac, because otherwise these must replicate the "same" branching, often resulting in diversions. Better to keep the logic in one place (configure.ac) and set additional variables to be used directly by source code and Makefiles. Notably this introduce the "using_*" platform flags, which should be considered constants. There is USING_X11, which actually tells, if the build uses the platform's X11 (and I opted for the removal of HAVE_FEATURE_X11). I also consider variables constant, after they have been exported by AC_SUBST, which should never be conditional, or some AC_DEFINE set them for a config header. A large block of defaults depends on $using_x11, so we set them to the same value, but just if the platform doesn't set it. The other important flag is $using_freetype_fontconfig, if the platform uses freetype and fontconfig. The headless plugin uses cairo for its drawing operations and freetype+fontconfig for text, so $test_cairo = $using_freetype_fontconfig. This is independent from a the cairo canvas! The OpenGL X11 code now depends on USING_X11, but it doesn't yet reflect the filter in Library_vcl.mk protecting glx. I don't know how correct this glx filter is, seeing that the source code just checked for "UNX - some non-X11 targets". Change-Id: Id1ba1a967a5d8d10ee217458be879ed00459f7e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116440 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-05-30 11:19:40 -05:00
export ENABLE_HEADLESS=@ENABLE_HEADLESS@
export ENABLE_HTMLHELP=@ENABLE_HTMLHELP@
export ENABLE_JAVA=@ENABLE_JAVA@
export ENABLE_JUMBO_SHEETS=@ENABLE_JUMBO_SHEETS@
export ENABLE_LDAP=@ENABLE_LDAP@
export ENABLE_LPSOLVE=@ENABLE_LPSOLVE@
export ENABLE_LTO=@ENABLE_LTO@
export ENABLE_LWP=@ENABLE_LWP@
export ENABLE_MACOSX_SANDBOX=@ENABLE_MACOSX_SANDBOX@
export ENABLE_MEDIAWIKI=@ENABLE_MEDIAWIKI@
export ENABLE_MARIADBC=@ENABLE_MARIADBC@
export ENABLE_NSS=@ENABLE_NSS@
export ENABLE_ONLINE_UPDATE=@ENABLE_ONLINE_UPDATE@
export ENABLE_ONLINE_UPDATE_MAR=@ENABLE_ONLINE_UPDATE_MAR@
export ENABLE_EXTENSION_UPDATE=@ENABLE_EXTENSION_UPDATE@
export ENABLE_OOENV=@ENABLE_OOENV@
export ENABLE_OPENGL_TRANSITIONS=@ENABLE_OPENGL_TRANSITIONS@
export ENABLE_OPENGL_CANVAS=@ENABLE_OPENGL_CANVAS@
export ENABLE_OPENSSL=@ENABLE_OPENSSL@
export ENABLE_OPTIMIZED=@ENABLE_OPTIMIZED@
export ENABLE_OPTIMIZED_DEBUG=@ENABLE_OPTIMIZED_DEBUG@
export ENABLE_PAGEIN=@ENABLE_PAGEIN@
export ENABLE_PCH=@ENABLE_PCH@
export ENABLE_PDFIMPORT=@ENABLE_PDFIMPORT@
export ENABLE_PDFIUM=@ENABLE_PDFIUM@
export ENABLE_POPPLER=@ENABLE_POPPLER@
export ENABLE_QT5=@ENABLE_QT5@
qt6: Add a qt6 VCL plugin This adds a new "qt6" VCL plugin based on Qt 6. Building the plugin is enabled by autogen option '--enable-qt6' (and optionally setting 'QT6DIR' as needed). Use the 'SAL_USE_VCLPLUGIN=qt6' environment variable before running LO to select this VCL plugin. Taking qt6 into account at all relevant places certainly still requires follow-up changes, but this builds and runs with a self-compiled qtbase from the 'dev' git branch as of commit 3ce0672143d2eb3c3809f82998a4d71c5800d77a. I didn't see anything obviously broken in a quick run, but didn't test much. This reuses and shares the qt5 VCL plugin code; the qt6 headers and sources for now just '#include' the qt5 ones. Version checks are used for the code places that need different handling to be built against Qt 6. The build system parts in this commit were mostly done by copying the qt5 equivalents, then adapting as needed. Some notes on things I came across while porting to qt6: 1) At least in my self-compiled Qt versions, 'moc' (the meta-object compiler) is located in the 'libexec' subdirectory in 'QT6DIR', while the Qt 5 equivalent is located in the "bin" subdirectory of 'QT5DIR', so the configure.ac check uses the former. 2) moc does not process classes from the included headers. Since the headers in 'vcl/inc/qt6' just '#include' the ones from 'vcl/inc/qt5', running moc on the qt6 headers doesn't work, so moc is currently run on the qt5 headers for qt6 as well (s. 'vcl/CustomTarget_qt6_moc.mk'). That will have to be adapted in case the qt6 VCL plugin uses "own" headers instead of just including the qt5 ones at some point. 3) QX11Extras has been removed from Qt 6. [1] says: > Changes to Qt X11 Extras > > The QX11Info class has been removed. > > Clients that still rely on the functionality can include the private > header <QtGui/private/qtx11extras_p.h> as a stopgap solution. To enable > private headers use QT += core-private with qmake, or add a project > dependency to Qt::CorePrivate with CMake. I didn't take any closer look, just dropped the use of QtX11Extras for qt6 for now. 4) XCB_ICCCM is no longer needed. It is only used in qt5 to workaround a Qt bug fixed in Qt 5.12, s. commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca Author: Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> Date: Tue Dec 3 08:32:58 2019 +0100 Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUP 5) X11-specific code is still used for key modifier handling. Therefore, still check for the XCB headers when 'USING_X11' is set in configure.ac, and use a 'QT6_USING_X11' define (as qt5 uses 'QT5_USING_X11'). 6) There's currently no Qt 6 video sink for GStreamer. As of today, qt-gstreamer is unmaintained and there is no Qt 6 version. The project's README [2] says: > 0. Maintenance Notice > --------------------- > > This code is unmaintained. You can use it at your own risk. > > If you want to integrate video display in your QML-based UI, > you should consider using 'qmlglsink', from gst-plugins-good. > This is a well supported video sink that uses the generic > gstreamer-gl stack and is in many ways superior to 'qtquick2videosink' > that is provided by qt-gstreamer. You can use this code as an example: > https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink > > If you are not interested in using QML in your UI, then you > may use one of the other elements provided by this module > (see below). If you do that, it would be helpful to let us > know that this code is still useful to you. We may consider > adding these elements in one of the core gstreamer modules. > > If you are here for the Qt-style bindings, I'm sorry to disappoint you. > The alternative is to use the C API, or the GStreamermm C++ API. > Qt-style bindings are cool, but unfortunately they are very hard > to maintain because they are written by hand. If you are interested > in continuing this project, you are welcome to implement a > generator for them, probably based on GObject-Introspection. > I am happy to provide directions if you want to pursue such a thing. Therefore, the Qt video sink handling is qt5-only and the corresponding handling for GOBJECT (used for the GStreamer video sink handling) was not taken over for qt6. This presumably means that video playback in Impress presentations does not work when using qt6 with they Qt Wayland plugin, s. tdf#125219 for the corresponding bug for qt5/kf5. (I did not build the qtwayland module to actually test this, though. Video playback with the Qt xcb plugin in a Wayland session works.) [1] https://doc-snapshots.qt.io/qt6-dev/extras-changes-qt6.html [2] https://cgit.freedesktop.org/gstreamer/qt-gstreamer/tree/README Change-Id: Ib105ccfb2c3630ec5d5403793a3cd9ba31d85bdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122808 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-29 04:09:51 -05:00
export ENABLE_QT6=@ENABLE_QT6@
tdf#145735 avmedia qt: Use QtMultimedia for Qt 6 media playback Similar to the way that GTK 4's native facilities for video playback are used for the gtk4 VCL plugin, initially added in commit commit d0a527ec09516bc7215baf229adb90cd21ffa27a Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Feb 10 12:55:18 2022 +0000 first cut at using Gtk4 built in video playback , implement media playback using QtMultimedia for the Qt 6 based VCL plugins (qt6/kf6) via a new service "com.sun.star.comp.avmedia.Manager_Qt". Video playback with the mechanism used for qt5 no longer works with qt6, as "qwidget5videosink" that gets used on Wayland for qt5 wasn't ported to Qt 6 and is unmaintained, s. the commit message of commit 88d57cf241209ffec9eaed3e523942ab51af6db6 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Sep 29 11:09:51 2021 +0200 qt6: Add a qt6 VCL plugin for more details. Additionally, this also doesn't work properly any more on X11/with the xcb Qt QPA platform, see tdf#145735 comment 7. Instead of using GStreamer directly, let Qt handle the low-level stuff by using the QtMultimedia module [1] instead. This adds a new dependency on QtMultimedia. For building, this requires installing the Qt 6 QtMultimedia development headers (e.g. package `qt6-multimedia-dev` on current Debian testing). Except for WASM, the use of QtMultimedia is enabled by default when building with autogen options `--enable-qt6` or `--enable-kf6`, but can explicitly be disabled using `--disable-qt6-multimedia`. In tests with the qt6 VCL plugin on Debian testing, with a sample presentation containing an embedded video, attachment 145517 from tdf#120452, video playback generally works for both, the xcb and the wayland Qt QPA platforms: * Video and audio are played as expected on the external screen in presentation mode when using the presenter console * Video and audio playback work in non-presentation mode by clicking on the video and using the controls in the Impress sidebar (play, pause,...). However, the following issues were observed with the current implementation: * There's an odd frame/margin around the video. * In non-presentation mode, the placeholder shown until the video gets started using the controls in the sidebar is just an "audio icon", not a frame from the actual video. (This might be related to the fact that `QtPlayer::createFrameGrabber` currently returns an empty reference.) * At least on Wayland (issue not observed with QT_QPA_PLATFORM=xcb so far), when using the presenter console, video playback in the presenter console (i.e. on the non-presentation screen) is unreliable: The video sometimes shows, but sometimes doesn't. At least the (more important) one on the presentation screen was reliably shown in my tests, however. Tested with git dev versions of qtbase (as of commit 8d5e7d50d8dbf1ad79bd8ff9f6ef6028eba481c9), qtwayland (as of commit 6f0ebd916f176f6fbe35af28caeb52b62768ac94) and qtmultimedia (as of commit 264b7e8d7d5683252102b5e5149685c8b8a70c2d). [1] https://doc.qt.io/qt-6/qtmultimedia-index.html Change-Id: I29c3c7ded01c61b49b192fa5c313d8a92c942185 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167869 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-20 09:25:09 -05:00
export ENABLE_QT6_MULTIMEDIA=@ENABLE_QT6_MULTIMEDIA@
export ENABLE_KF5=@ENABLE_KF5@
export ENABLE_KF6=@ENABLE_KF6@
Introduce gtk3_kde5 vcl plugin This is a hybrid plugin which mostly wraps the GTK3 vclplug. Only the file and folder picker are replaced by KDE dialogs. This gives us a well-maintained GTK LO base with basic KDE integration with minimum effort. To prevent issues with nested event loops, the KDE dialogs are launched from a separate process, the new lo_kde5filepicker helper executable. A trivial stdin/stdout IPC mechanism transfers the data between LO and the Qt/KDE helper. The usage of an external process also allows us to copy'n'paste between LO and the KDE file dialog without freezing the UI, as would happen when one would do this in-process. This is in general also the architecture applied by the kmozillahelper, which is used to integrate KDE file dialogs into Firefox. While the KDE dialog is shown, the GTK3 main window is disabled and close requests are ignored. The KDE dialog in turn also sets the LO window as transient parent. Together, this makes the illusion perfect and the KDE dialog behaves like a modal dialog. This works properly also with multiple LO main windows, and only individual windows will get blocked as one would expect. Functionality wise, most of the features of the KDE4 dialog are supported. You can pick files and folders, and save files under a new name. Some custom checkbox widgets are supported, but lists, buttons and preview widgets are not yet implemented. Also, loading remote files via KIO is not possible yet. Change-Id: I1a97cf7c272307a19ace4222d5f12253bc722829 Reviewed-on: https://gerrit.libreoffice.org/47718 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-01-10 10:50:43 -06:00
export ENABLE_GTK3_KDE5=@ENABLE_GTK3_KDE5@
export ENABLE_RANDR=@ENABLE_RANDR@
export ENABLE_RELEASE_BUILD=@ENABLE_RELEASE_BUILD@
export ENABLE_REPORTBUILDER=@ENABLE_REPORTBUILDER@
export ENABLE_RUNTIME_OPTIMIZATIONS=@ENABLE_RUNTIME_OPTIMIZATIONS@
export ENABLE_SAL_LOG=@ENABLE_SAL_LOG@
export ENABLE_SCRIPTING_BEANSHELL=@ENABLE_SCRIPTING_BEANSHELL@
export ENABLE_SCRIPTING_JAVASCRIPT=@ENABLE_SCRIPTING_JAVASCRIPT@
export ENABLE_SDREMOTE=@ENABLE_SDREMOTE@
export ENABLE_SDREMOTE_BLUETOOTH=@ENABLE_SDREMOTE_BLUETOOTH@
Generally determine Rdb content from gb_*_set_componentfile calls ...instead of by listing the content somewhat redundantly in the Rdb_*.mk files, to avoid duplication of logic for components that are only built conditionally (and thus should only be included conditionally in the corresponding Rdb). To achieve that, add an "rdb" parameter to gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros that internally call gb_ComponentTarget_ComponentTarget), which is used to make the appropriate gb_Rdb_add_component call internally from within gb_ComponentTarget_ComponentTarget. (As a special case, gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that has already been done by the corresponding gb_Library_set_componentfile call, so allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to support that special case.) Most Rdb_*.mk files are thus mostly empty now. One exception is i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as needed during the build in CustomTarget_i18npool/localedata. 1c9a40299d328c78c035ca63ccdf22c5c669a03b "gbuild: create services.rdb from built components" had already tried to do something similar (in addition to other things) under a new --enable-services-rdb-from-build option. However, that approach had four drawbacks that this approach here addresses (and which thus partly reverts 1c9a40299d328c78c035ca63ccdf22c5c669a03b): 1 Rdb_services shall not contain the component files of all libraries that are built. While that commit filtered out the component files that go into Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files that go into others like Rdb_postgresql-sdbc (connectivity/Rdb_postgresql-sdbc.mk). 2 The code added by that commit to Makefile.gbuild codified the knowledge that there is an Rdb_services, which is brittle. 3 The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge (for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle. 4 Introducing an --enable-services-rdb-from-build option needlessly provided two different ways how the content of Rdb_services is assembled. The changes done here would leave --enable-services-rdb-from-build as a misnomer, as it no longer controls how Rdb_services is assembled. I thus renamed it to --enable-customtarget-components, as that is apparently what it still does now. Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-12-09 03:15:05 -06:00
export ENABLE_CUSTOMTARGET_COMPONENTS=@ENABLE_CUSTOMTARGET_COMPONENTS@
export ENABLE_SILENT_MSI=@ENABLE_SILENT_MSI@
export ENABLE_SKIA=@ENABLE_SKIA@
export ENABLE_SKIA_DEBUG=@ENABLE_SKIA_DEBUG@
export ENABLE_SYMBOLS_FOR=@ENABLE_SYMBOLS_FOR@
export ENABLE_VALGRIND=@ENABLE_VALGRIND@
export ENABLE_WASM_STRIP_ACCESSIBILITY=@ENABLE_WASM_STRIP_CALC@
export ENABLE_WASM_STRIP_BASIC_DRAW_MATH_IMPRESS=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_WRITER=@ENABLE_WASM_STRIP_WRITER@
export ENABLE_WASM_STRIP_CALC=@ENABLE_WASM_STRIP_CALC@
export ENABLE_WASM_STRIP_CANVAS=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_CHART=
export ENABLE_WASM_STRIP_DBACCESS=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_EPUB=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_EXTRA=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_GUESSLANG=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_HUNSPELL=
export ENABLE_WASM_STRIP_LANGUAGETOOL=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_LOCALES=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_PINGUSER=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_PREMULTIPLY=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_RECENT=
export ENABLE_WASM_STRIP_RECOVERYUI=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_SPLASH=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_SWEXPORTS=@ENABLE_WASM_STRIP@
export ENABLE_WASM_STRIP_SCEXPORTS=@ENABLE_WASM_STRIP@
export ENABLE_WERROR=@ENABLE_WERROR@
ENABLE_WIX=@ENABLE_WIX@
export ENABLE_Z7_DEBUG=@ENABLE_Z7_DEBUG@
export ENDIANNESS=@ENDIANNESS@
export EPM=@EPM@
export EPM_FLAGS=@EPM_FLAGS@
export EPUBGEN_CFLAGS=$(gb_SPACE)@EPUBGEN_CFLAGS@
export EPUBGEN_LIBS=$(gb_SPACE)@EPUBGEN_LIBS@
export ETONYEK_CFLAGS=$(gb_SPACE)@ETONYEK_CFLAGS@
export ETONYEK_LIBS=$(gb_SPACE)@ETONYEK_LIBS@
export debug=@ENABLE_DEBUG@
export FIND=@FIND@
export FIREBIRD_CFLAGS=$(gb_SPACE)@FIREBIRD_CFLAGS@
export FIREBIRD_LIBS=$(gb_SPACE)@FIREBIRD_LIBS@
export FLEX=@FLEX@
export FLUTE_JAR=@FLUTE_JAR@
export FONTCONFIG_CFLAGS=$(gb_SPACE)@FONTCONFIG_CFLAGS@
export FONTCONFIG_LIBS=$(gb_SPACE)@FONTCONFIG_LIBS@
export FONTFORGE=@FONTFORGE@
export FREEHAND_CFLAGS=$(gb_SPACE)@FREEHAND_CFLAGS@
export FREEHAND_LIBS=$(gb_SPACE)@FREEHAND_LIBS@
export FREETYPE_CFLAGS=$(gb_SPACE)@FREETYPE_CFLAGS@
export FREETYPE_LIBS=$(gb_SPACE)@FREETYPE_LIBS@
export GCC_VERSION=@GCC_VERSION@
export GIO_CFLAGS=$(gb_SPACE)@GIO_CFLAGS@
export GIO_LIBS=$(gb_SPACE)@GIO_LIBS@
export GIT_REFERENCE_SRC=@GIT_REFERENCE_SRC@
export GIT_LINK_SRC=@GIT_LINK_SRC@
export GIT_NEEDED_SUBMODULES=@GIT_NEEDED_SUBMODULES@
export EPOXY_CFLAGS=$(gb_SPACE)@EPOXY_CFLAGS@
export EPOXY_LIBS=$(gb_SPACE)@EPOXY_LIBS@
export GLM_CFLAGS=$(gb_SPACE)@GLM_CFLAGS@
export GPG_ERROR_CFLAGS=$(gb_SPACE)@GPG_ERROR_CFLAGS@
export GPG_ERROR_LIBS=$(gb_SPACE)@GPG_ERROR_LIBS@
export GPGMEPP_CFLAGS=$(gb_SPACE)@GPGMEPP_CFLAGS@
export GPGMEPP_LIBS=$(gb_SPACE)@GPGMEPP_LIBS@
export PARALLELISM?=@PARALLELISM@
@x_GNUCP@ export GNUCOPY=@GNUCP@
export GNUPATCH=@GNUPATCH@
export GNUTAR=@GNUTAR@
export GOBJECT_CFLAGS=$(gb_SPACE)@GOBJECT_CFLAGS@
export GOBJECT_LIBS=$(gb_SPACE)@GOBJECT_LIBS@
export GPERF=@GPERF@
export GRAPHITE_CFLAGS=$(gb_SPACE)@GRAPHITE_CFLAGS@
export GRAPHITE_LIBS=$(gb_SPACE)@GRAPHITE_LIBS@
export HARFBUZZ_CFLAGS=$(gb_SPACE)@HARFBUZZ_CFLAGS@
export HARFBUZZ_LIBS=$(gb_SPACE)@HARFBUZZ_LIBS@
@x_Cygwin@ export GREP=@WIN_GREP@
export GSSAPI_LIBS=@GSSAPI_LIBS@
export GSTREAMER_1_0_CFLAGS=$(gb_SPACE)@GSTREAMER_1_0_CFLAGS@
export GSTREAMER_1_0_LIBS=$(gb_SPACE)@GSTREAMER_1_0_LIBS@
export GTK3_CFLAGS=$(gb_SPACE)@GTK3_CFLAGS@
export GTK3_LIBS=$(gb_SPACE)@GTK3_LIBS@
export GTK4_CFLAGS=$(gb_SPACE)@GTK4_CFLAGS@
export GTK4_LIBS=$(gb_SPACE)@GTK4_LIBS@
export USING_X11=@USING_X11@
export HAMCREST_JAR=@HAMCREST_JAR@
export HAVE_ASM_END_BRANCH_INS_SUPPORT=@HAVE_ASM_END_BRANCH_INS_SUPPORT@
Slience bogus -Werror=maybe-uninitialized ...as emitted by at least GCC 8.2 with --enable-optimized, e.g. at: > In file included from include/rtl/ustring.hxx:37, > from include/cppuhelper/factory.hxx:26, > from unoxml/source/rdf/librdf_repository.hxx:24, > from unoxml/source/rdf/librdf_repository.cxx:20: > include/rtl/string.hxx: In static member function ‘static std::shared_ptr<{anonymous}::librdf_TypeConverter::Node> {anonymous}::librdf_TypeConverter::extractNode_NoLock(const com::sun::star::uno::Reference<com::sun::star::rdf::XNode>&)’: > include/rtl/string.hxx:294:27: error: ‘*((void*)(& type)+8).rtl::OString::pData’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > rtl_string_release( pData ); > ~~~~~~~~~~~~~~~~~~^~~~~~~~~ > unoxml/source/rdf/librdf_repository.cxx:2094:30: note: ‘*((void*)(& type)+8).rtl::OString::pData’ was declared here > boost::optional<OString> type; > ^~~~ This appears to be a common pattern of false positives with uses of boost::optional, common enough to disable the warning globally for affected compilers, even if there would also be useful findings by that warning (e.g., <https://gerrit.libreoffice.org/#/c/66619/> "Fix -Werror=maybe-uninitialized"). I didn't bother to file a GCC bug for the reproducer used in configure.ac, <https://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=maybe-uninitialized> already shows lots of open bugs in that area, and the documentation at <https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Warning-Options.html> states that "GCC may not be able to determine when the code is correct in spite of appearing to have an error." (Clang appears to not support -Wmaybe-uninitialized at all, so exclude it from the configure.ac check, to not have the check's failure result in an unsupported -Wno-maybe-uninitialized end up on the compiler command line.) Change-Id: Ifb9ca4c342750eae54f7e1a01506101310484c7e Reviewed-on: https://gerrit.libreoffice.org/66621 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-18 09:13:57 -06:00
export HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=@HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED@
export HAVE_BROKEN_GCC_WSTRINGOP_OVERFLOW=@HAVE_BROKEN_GCC_WSTRINGOP_OVERFLOW@
export HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR=@HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR@
export HAVE_CXX20_ATOMIC_REF=@HAVE_CXX20_ATOMIC_REF@
export HAVE_DLLEXPORTINLINES=@HAVE_DLLEXPORTINLINES@
export HAVE_EXTERNAL_DWARF=@HAVE_EXTERNAL_DWARF@
export HAVE_LO_CLANG_DLLEXPORTINLINES=@HAVE_LO_CLANG_DLLEXPORTINLINES@
export HAVE_GCC_AVX=@HAVE_GCC_AVX@
export HAVE_GCC_BUILTIN_ATOMIC=@HAVE_GCC_BUILTIN_ATOMIC@
export HAVE_GCC_FNO_ENFORCE_EH_SPECS=@HAVE_GCC_FNO_ENFORCE_EH_SPECS@
export HAVE_GCC_FNO_SIZED_DEALLOCATION=@HAVE_GCC_FNO_SIZED_DEALLOCATION@
export HAVE_GCC_GGDB2=@HAVE_GCC_GGDB2@
aarch64 callVirtualFunction needs to be compiled w/o -fstack-clash-protection At least when doing an aarch64 Flatpak build against org.freedesktop.Sdk//19.08, which uses GCC 9.2.0 and passes in `CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection`, callVirtualMethod (in bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx) would decrement the stack pointer another 16 bytes after the stackargs = alloca(...); and before the asm block, so in the called virtual function, arguments read from the stack would read garbage (and CustomTarget_testtools/uno_test would fail with SIGSEGV at > #0 0x0000ffffb733eb48 in rtl::OUString::operator= (this=0xaaaaf9c1ac30, str=...) at /run/build/libreoffice/include/rtl/ustring.hxx:453 > #1 0x0000ffffb733a7bc in bridge_object::assign (rData=..., bBool=true, cChar=64 u'@', nByte=17 '\021', nShort=4660, nUShort=65244, nLong=305419896, nULong=4275878552, nHyper=0, nUHyper=187651311381888, fFloat=17.0814991, fDouble=3.1415926358999999, eEnum=-1698898192, rStr=..., xTest=..., rAny=...) at /run/build/libreoffice/testtools/source/bridgetest/cppobj.cxx:99 > #2 0x0000ffffb733a87c in bridge_object::assign (rData=..., bBool=true, cChar=64 u'@', nByte=17 '\021', nShort=4660, nUShort=65244, nLong=305419896, nULong=4275878552, nHyper=0, nUHyper=187651311381888, fFloat=17.0814991, fDouble=3.1415926358999999, eEnum=-1698898192, rStr=..., xTest=..., rAny=..., rSequence=...) at /run/build/libreoffice/testtools/source/bridgetest/cppobj.cxx:115 > #3 0x0000ffffb733ade4 in bridge_object::Test_Impl::setValues (this=0xaaaaf9c1abb0, bBool=1 '\001', cChar=64 u'@', nByte=17 '\021', nShort=4660, nUShort=65244, nLong=305419896, nULong=4275878552, nHyper=0, nUHyper=187651311381888, fFloat=17.0814991, fDouble=3.1415926358999999, eEnum=-1698898192, rStr=..., xTest=..., rAny=..., rSequence=..., rStruct=...) at /run/build/libreoffice/testtools/source/bridgetest/cppobj.cxx:548 > #4 0x0000ffffb740bff4 in callVirtualFunction (function=281473755360772, gpr=0xffffd1ab1f28, fpr=0xffffd1ab1f68, stack=0xffffd1ab1d40, sp=8, ret=0xffffd1ab22c0) at /run/build/libreoffice/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx:63 > #5 0x0000ffffb740ca70 in (anonymous namespace)::call (proxy=0xaaaaf9c291c0, slot=..., returnType=0xaaaaf9c00770, count=17, parameters=0xaaaaf9c3a210, returnValue=0xffffd1ab22c0, arguments=0xffffd1ab2230, exception=0xffffd1ab2370) at /run/build/libreoffice/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx:178 > #6 0x0000ffffb740d4c4 in bridges::cpp_uno::shared::unoInterfaceProxyDispatch (pUnoI=0xaaaaf9c291c0, pMemberDescr=0xaaaaf9c55950, pReturn=0xffffd1ab22c0, pArgs=0xffffd1ab2230, ppException=0xffffd1ab2370) at /run/build/libreoffice/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx:361 > #7 0x0000ffffb740720c in (anonymous namespace)::call (proxy=0xaaaaf9c549c0, description=..., returnType=0xaaaaf9c00770, count=17, parameters=0xaaaaf9c3a210, gpr=0xffffd1ab2510, fpr=0xffffd1ab2550, stack=0xffffd1ab2590, indirectRet=0xffffb7d24790) at /run/build/libreoffice/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx:120 > #8 0x0000ffffb74079a0 in (anonymous namespace)::vtableCall (functionIndex=40, vtableOffset=0, gpr=0xffffd1ab2510, fpr=0xffffd1ab2550, stack=0xffffd1ab2590, indirectRet=0xffffb7d24790) at /run/build/libreoffice/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx:291 > #9 0x0000ffffb7407b00 in (anonymous namespace)::vtableSlotCall (gpr0=187651311618536, gpr1=1, gpr2=64, gpr3=17, gpr4=4660, gpr5=65244, gpr6=305419896, gpr7=4275878552, fpr0=5.4321266044931319e-315, fpr1=3.1415926358999999, fpr2=0, fpr3=4.0039072046065485, fpr4=0, fpr5=4.003911019303815, fpr6=8.9589789687541617e+102, fpr7=-4.4588500238274385e-308) at /run/build/libreoffice/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx:348 > #10 0x0000ffffb739e60c in bridge_test::performTest (xContext=..., xLBT=..., noCurrentContext=false) at /run/build/libreoffice/testtools/source/bridgetest/bridgetest.cxx:378 > #11 0x0000ffffb73a3d58 in bridge_test::TestBridgeImpl::run (this=0xaaaaf9c18550, rArgs=...) at /run/build/libreoffice/testtools/source/bridgetest/bridgetest.cxx:1162 > #12 0x0000aaaad292a3ec in sal_main () at /run/build/libreoffice/cpputools/source/unoexe/unoexe.cxx:509 > #13 0x0000aaaad29297a0 in main (argc=8, argv=0xffffd1ab31b8) at /run/build/libreoffice/cpputools/source/unoexe/unoexe.cxx:349 .) By experiment, I found the problematic thing to be -fstack-clash-protection, which can apparently be cancelled with a subsequent -fno-stack-clash-protection at least on that GCC 9.2.0. (And -f[no-]stack-clash-protection appears to only be available since GCC 8, and not at all for Clang, so check for it with HAVE_GCC_STACK_CLASH_PROTECTION.) Change-Id: If667fdf704b1ba20a04593b38d2d1f079280df41 Reviewed-on: https://gerrit.libreoffice.org/80701 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-11 16:50:19 -05:00
export HAVE_GCC_STACK_CLASH_PROTECTION=@HAVE_GCC_STACK_CLASH_PROTECTION@
export HAVE_LD_BSYMBOLIC_FUNCTIONS=@HAVE_LD_BSYMBOLIC_FUNCTIONS@
export HAVE_LD_HASH_STYLE=@HAVE_LD_HASH_STYLE@
export HAVE_LIBCPP=@HAVE_LIBCPP@
export HAVE_LIBSTDCPP=@HAVE_LIBSTDCPP@
export HAVE_POSIX_FALLOCATE=@HAVE_POSIX_FALLOCATE@
export HAVE_WDEPRECATED_COPY_DTOR=@HAVE_WDEPRECATED_COPY_DTOR@
export HELP_ONLINE=@HELP_ONLINE@
export HELP_OMINDEX_PAGE=@HELP_OMINDEX_PAGE@
export HOST_PLATFORM=@HOST_PLATFORM@
export HSQLDB_JAR=@HSQLDB_JAR@
export HUNSPELL_CFLAGS=$(gb_SPACE)@HUNSPELL_CFLAGS@
export HUNSPELL_LIBS=$(gb_SPACE)@HUNSPELL_LIBS@
export HYPHEN_LIB=$(gb_SPACE)@HYPHEN_LIB@
export HYPH_SYSTEM_DIR=@HYPH_SYSTEM_DIR@
export ICECREAM_RUN=@ICECREAM_RUN@
@x_ICECC_VERSION@ export ICECC_VERSION=@ICECC_VERSION@
export ICU_CFLAGS=$(gb_SPACE)@ICU_CFLAGS@
export ICU_LIBS=$(gb_SPACE)@ICU_LIBS@
export ICU_MAJOR=@ICU_MAJOR@
export ICU_MINOR=@ICU_MINOR@
export INTROSPECTION_SCANNER=@INTROSPECTION_SCANNER@
export ILIB=@ILIB@
export ILIB_FOR_BUILD=@ILIB_FOR_BUILD@
export INSTALLDIR=@INSTALLDIR@
export INSTALLDIRNAME=@INSTALLDIRNAME@
export INSTALL_NAME_TOOL=@INSTALL_NAME_TOOL@
export INSTDIR=@INSTDIR@
export INSTDIR_FOR_BUILD=@INSTDIR_FOR_BUILD@
export INSTROOT=@INSTROOT@
export INSTROOTBASE=@INSTROOTBASE@
export INSTROOT_FOR_BUILD=@INSTROOT_FOR_BUILD@
export JAVACOMPILER=@JAVACOMPILER@
export JAVADOC=@JAVADOC@
export JAVADOCISGJDOC=@JAVADOCISGJDOC@
export JAVACFLAGS=@JAVACFLAGS@
export JAVAIFLAGS=@JAVAIFLAGS@
export JAVAIFLAGS_FOR_BUILD=@JAVAIFLAGS_FOR_BUILD@
export JAVAINTERPRETER=@JAVAINTERPRETER@
export JAVA_HOME=@JAVA_HOME@
export JAVA_HOME_FOR_BUILD=@JAVA_HOME_FOR_BUILD@
export JAVA_SOURCE_VER=@JAVA_SOURCE_VER@
export JAVA_TARGET_VER=@JAVA_TARGET_VER@
export JAWTLIB=@JAWTLIB@
export JDK=@JDK@
export JDK_FOR_BUILD=@JDK_FOR_BUILD@
Allow building against JDK 18 ...where ExternalProject_hsqldb failed with > [java] java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release > [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194) > [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:891) > [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:231) > [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) > [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) > [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299) > [java] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) > [java] at java.base/java.lang.reflect.Method.invoke(Method.java:577) > [java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99) > [java] at org.apache.tools.ant.Task.perform(Task.java:350) > [java] at org.apache.tools.ant.Target.execute(Target.java:449) > [java] at org.apache.tools.ant.Target.performTasks(Target.java:470) > [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401) > [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1374) > [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1264) > [java] at org.apache.tools.ant.Main.runBuild(Main.java:818) > [java] at org.apache.tools.ant.Main.startAnt(Main.java:223) > [java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284) > [java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101) > [java] Caused by: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release > [java] at java.base/java.lang.System.setSecurityManager(System.java:416) > [java] at org.apache.tools.ant.types.Permissions.setSecurityManager(Permissions.java:103) > [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:216) > [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:155) > [java] ... 19 more while building target switchtojdk17 (but then unfortunately carried on, without the source modifications that should have been done by that target, leading to confusing errors like > [javac] workdir/UnpackedTarball/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java:426: error: jdbcConnection is not abstract and does not override abstract method createStruct(String,Object[]) in Connection that should have been under control at least ever since 7dbfc0012cc75e7dac9a416b53149ad8ec33f071 "make hsqldb build with java 1.7".) Unconditionally passing ANT_OPTS -Djava.security.manager=allow would cause older JDK versions (like Java 11) to fail with a java.lang.Error "Could not create SecurityManager" caused by a java.lang.ClassNotFoundException "allow", so introduce JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD. This should allow us to keep building against at least JDK 18, even though later versions of Java may remove the Security Manager completely, but in which case hopefully an updated version of Apache Ant will become available. Change-Id: I9d143d8bcfff67870017bb1c874eec53e0ff9672 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132558 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2022-04-05 01:09:59 -05:00
export JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD=@JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD@
export JFREEREPORT_JAR=@JFREEREPORT_JAR@
export JITC_PROCESSOR_TYPE=@JITC_PROCESSOR_TYPE@
JOM=@JOM@
New --with-coredumpctl to obtain core dumps of crashed tests from coredumpctl ...for (Linux) systems that don't store core.* files in the current working directory. When enabled, this wraps test execution in `systemd-run --scope --user --unit=...` with unit values unique per individual test invocation, so that solenv/bin/gdb-core-bt.sh can query coredumpctl for matching core dumps. (See the mailing list thread starting at <https://lists.freedesktop.org/archives/systemd-devel/2023-March/048884.html> "[systemd-devel] coredumpctl: matching by e.g. env var?" for further details.) The used --unit=... scheme is a best effort to produce system-wide unique values, combining the target location path of the given test with a second-granularity date/time and the current PID. (In case there would be multiple invocations of the same test per second, which then hopefully wouldn't reuse the same PID. The date/time and PID could be replaced with a high-resolution system-wide monotonic clock/counter if one were easily available. The advantage of the current scheme is that it only uses Posix features.) The overall length of the unit value (incl. the appended ".scope" suffix) must not exceed 256 characters, or else systemd-run would fail with "Failed to mangle scope name: Invalid argument". It might look more natural to pass the unit value into gdb-core-bt.sh as a fourth positional argument rather than via a new LIBO_TEST_UNIT env var. But for one, the unit value is most easily computed from within the recipe shell command lines, where an env var is the most natural fit. And for another, this avoids having to tunnel yet another value through the tearDown method in unotest/source/java/org/openoffice/test/OfficeConnection.java to the given postprocesscommand. Change-Id: Idcb20cd1e1141d8ec7f10947e5edc70aa2aa7d32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149690 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-29 06:55:11 -05:00
export JQ=@JQ@
export JVM_ONE_PATH_CHECK=@JVM_ONE_PATH_CHECK@
export KF5_CFLAGS=$(gb_SPACE)@KF5_CFLAGS@
export KF5_LIBS=$(gb_SPACE)@KF5_LIBS@
export KF6_CFLAGS=$(gb_SPACE)@KF6_CFLAGS@
export KF6_LIBS=$(gb_SPACE)@KF6_LIBS@
export KRB5_LIBS=@KRB5_LIBS@
export JAVA_WEBSOCKET_JAR=@JAVA_WEBSOCKET_JAR@
export LCMS2_CFLAGS=$(gb_SPACE)@LCMS2_CFLAGS@
export LCMS2_LIBS=$(gb_SPACE)@LCMS2_LIBS@
export LD=@LD@
export LD_GC_SECTIONS=@LD_GC_SECTIONS@
export LD_PLUGIN=@LD_PLUGIN@
@x_LDFLAGS@ export LDFLAGS=@LDFLAGS@
export LFS_CFLAGS=@LFS_CFLAGS@
export LIBASSUAN_CFLAGS=$(gb_SPACE)@LIBASSUAN_CFLAGS@
export LIBASSUAN_LIBS=$(gb_SPACE)@LIBASSUAN_LIBS@
export LIBBASE_JAR=@LIBBASE_JAR@
export LIBCPP_DEBUG=@LIBCPP_DEBUG@
export LIBDIR=@LIBDIR@
export LIBEOT_CFLAGS=$(gb_SPACE)@LIBEOT_CFLAGS@
export LIBEOT_LIBS=$(gb_SPACE)@LIBEOT_LIBS@
export LIBEXSLT_CFLAGS=$(gb_SPACE)@LIBEXSLT_CFLAGS@
export LIBEXSLT_LIBS=$(gb_SPACE)@LIBEXSLT_LIBS@
export LIBEXTTEXTCAT_CFLAGS=$(gb_SPACE)@LIBEXTTEXTCAT_CFLAGS@
export LIBEXTTEXTCAT_LIBS=$(gb_SPACE)@LIBEXTTEXTCAT_LIBS@
export LIBFONTS_JAR=@LIBFONTS_JAR@
export LIBFORMULA_JAR=@LIBFORMULA_JAR@
export LIBJPEG_CFLAGS=$(gb_SPACE)@LIBJPEG_CFLAGS@
export LIBJPEG_LIBS=$(gb_SPACE)@LIBJPEG_LIBS@
export LIBLANGTAG_CFLAGS=$(gb_SPACE)@LIBLANGTAG_CFLAGS@
export LIBLANGTAG_LIBS=$(gb_SPACE)@LIBLANGTAG_LIBS@
export LIBLAYOUT_JAR=@LIBLAYOUT_JAR@
export LIBLOADER_JAR=@LIBLOADER_JAR@
export LIBNUMBERTEXT_CFLAGS=$(gb_SPACE)@LIBNUMBERTEXT_CFLAGS@
export LIBNUMBERTEXT_LIBS=$(gb_SPACE)@LIBNUMBERTEXT_LIBS@
Upgrade fuzzers to LIB_FUZZING_ENGINE And check that LIB_FUZZING_ENGINE is set during configure. Because: 1. It's easier to build locally this way (you don't need to build or hack a libFuzzingEngine.a - instead you can just specify LIB_FUZZING_ENGINE=-fsanitize=fuzzer to produce a valid build). 2. Using -lFuzzingEngine is deprecated [1] for various reasons [2]. The old behaviour can be emulated if desired by setting LIB_FUZZING_ENGINE=-lFuzzingEngine . This patch was tested as follows: - Building LO within oss-fuzz via: python infra/helper.py build_fuzzers --sanitizer address libreoffice </path/to/patched-libreoffice-core> python infra/helper.py check_build libreoffice - Building LO fuzzers standalone via: export CC="clang-11" export CXX="clang++-11 -stdlib=libc++" export CFLAGS="-fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" export CXXFLAGS="$CFLAGS -stdlib=libc++" export LDFLAGS="$CFLAGS -Wl,--compress-debug-sections,zlib -lpthread" export LIB_FUZZING_ENGINE=-fsanitize=fuzzer ./autogen.sh --with-distro=LibreOfficeOssFuzz --with-system-libxml make fuzzers (--with-system-libxml only appears to be needed because of issues specific to my build environment/Suse 15.2. I'm invoking clang-11 simply because that's the most modern clang I have installed, plain clang should also work on most sufficiently modern systems). [1] https://github.com/google/oss-fuzz/blob/481280c65048fd12fb2141b9225af511a9ef7ed2/infra/presubmit.py#L46 [2] https://github.com/google/oss-fuzz/issues/2164 Change-Id: Iddb577c30a39620e72372ef6c2d3fda67f8aabdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111691 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-27 07:21:56 -06:00
export LIB_FUZZING_ENGINE=@LIB_FUZZING_ENGINE@
export LIBO_BIN_FOLDER=@LIBO_BIN_FOLDER@
export LIBO_BIN_FOLDER_FOR_BUILD=@LIBO_BIN_FOLDER_FOR_BUILD@
export LIBO_ETC_FOLDER=@LIBO_ETC_FOLDER@
export LIBO_LIB_FOLDER=@LIBO_LIB_FOLDER@
export LIBO_LIB_FOLDER_FOR_BUILD=@LIBO_LIB_FOLDER_FOR_BUILD@
export LIBO_LIB_PYUNO_FOLDER=@LIBO_LIB_PYUNO_FOLDER@
export LIBO_SHARE_FOLDER=@LIBO_SHARE_FOLDER@
export LIBO_SHARE_HELP_FOLDER=@LIBO_SHARE_HELP_FOLDER@
LIBO_SHARE_DOTNET_FOLDER=@LIBO_SHARE_DOTNET_FOLDER@
export LIBO_SHARE_JAVA_FOLDER=@LIBO_SHARE_JAVA_FOLDER@
export LIBO_SHARE_PRESETS_FOLDER=@LIBO_SHARE_PRESETS_FOLDER@
export LIBO_SHARE_READMES_FOLDER=@LIBO_SHARE_READMES_FOLDER@
export LIBO_SHARE_RESOURCE_FOLDER=@LIBO_SHARE_RESOURCE_FOLDER@
export LIBO_URE_BIN_FOLDER=@LIBO_URE_BIN_FOLDER@
export LIBO_URE_ETC_FOLDER=@LIBO_URE_ETC_FOLDER@
export LIBO_URE_LIB_FOLDER=@LIBO_URE_LIB_FOLDER@
export LIBO_URE_LIB_FOLDER_FOR_BUILD=@LIBO_URE_LIB_FOLDER_FOR_BUILD@
export LIBO_URE_MISC_FOLDER=@LIBO_URE_MISC_FOLDER@
export LIBO_URE_MISC_FOLDER_FOR_BUILD=@LIBO_URE_MISC_FOLDER_FOR_BUILD@
export LIBO_URE_SHARE_JAVA_FOLDER=@LIBO_URE_SHARE_JAVA_FOLDER@
export LIBO_VERSION_MAJOR=@LIBO_VERSION_MAJOR@
export LIBO_VERSION_MICRO=@LIBO_VERSION_MICRO@
export LIBO_VERSION_MINOR=@LIBO_VERSION_MINOR@
export LIBO_VERSION_PATCH=@LIBO_VERSION_PATCH@
export LIBO_VERSION_SUFFIX=@LIBO_VERSION_SUFFIX@
export LIBO_VERSION_SUFFIX_SUFFIX=@LIBO_VERSION_SUFFIX_SUFFIX@
export LIBPNG_CFLAGS=$(gb_SPACE)@LIBPNG_CFLAGS@
export LIBPNG_LIBS=$(gb_SPACE)@LIBPNG_LIBS@
export LIBREPOSITORY_JAR=@LIBREPOSITORY_JAR@
export LIBSERIALIZER_JAR=@LIBSERIALIZER_JAR@
export LIBTIFF_CFLAGS=$(gb_SPACE)@LIBTIFF_CFLAGS@
export LIBTIFF_LIBS=$(gb_SPACE)@LIBTIFF_LIBS@
firebird: build fixes (incl. parallel build) The main idea is to get rid of the "unset MAKEFLAGS". AFAI can see, the whole CPU stuff isn't used anymore. So we can drop the whole FB_CPU_ARG handling. Since LO doesn't use any of make's implicit rules, the build breaks, but luckily it just requires a single rule for the btyacc build - just a Firebuild build tool. Then there is the whole broken handling of LIBTOMMATH and LIBATOMIC_OPS already in LO's configure.ac. I don't know if any internal build of Firebird with these as system libs would work. I guess people either have a system Firebird or also build with internal libtommath and libatomic_ops. This fixes just the obvious errors. I didn't try to build it, so there might still be typos (TBH I thought hard about just dropping the system build of these libraries, after seeing the broken configure.ac). And I'm not sure our / the system boost preprocessor library is ever used over the Firebird-internal copy. It also looks like it's also just used in an other build tool and nothing of the Firebird DB itself depends on it. Then there is the movement of the install_name_tool / otool patching on MacOS from the patch into the ExternalProject to further shrink the patches, as the build doesn't depend on it. This also introduces a different debug build mode for the gcc-/g++-wrapper: MSVC_USE_INDIVIDUAL_PDBS. It uses -Fd to write a separate PDB per output file instead of using -FS to use sync writes to a single PDB, which might work around the PDB access failures seen by Jenkins for linking executables. In theory it's also faster and should work with all the other wrapper users, but I don't want to open that can of additional build errors (yet), for eventually marginal gains. Change-Id: I8d4c5d2f17def9e840a67ef1004787e8baaffa83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105902 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-11-15 12:57:48 -06:00
export LIBTOMMATH_CFLAGS=@LIBTOMMATH_CFLAGS@
export LIBTOMMATH_LIBS=@LIBTOMMATH_LIBS@
export LIBTOOL=@LIBTOOL@
export LIBWEBP_CFLAGS=$(gb_SPACE)@LIBWEBP_CFLAGS@
export LIBWEBP_LIBS=$(gb_SPACE)@LIBWEBP_LIBS@
export LIBXML_CFLAGS=$(gb_SPACE)@LIBXML_CFLAGS@
export LIBXML_JAR=@LIBXML_JAR@
export LIBXML_LIBS=$(gb_SPACE)@LIBXML_LIBS@
export LIBXSLT_CFLAGS=$(gb_SPACE)@LIBXSLT_CFLAGS@
export LIBXSLT_LIBS=$(gb_SPACE)@LIBXSLT_LIBS@
export LIBFIXMATH_LIBS=$(gb_SPACE)@LIBFIXMATH_LIBS@
export LOCKFILE=@LOCKFILE@
export LO_CLANG_CC=@LO_CLANG_CC@
export LO_CLANG_CXX=@LO_CLANG_CXX@
export LO_CLANG_CXXFLAGS_INTRINSICS_SSE2=@LO_CLANG_CXXFLAGS_INTRINSICS_SSE2@
export LO_CLANG_CXXFLAGS_INTRINSICS_SSSE3=@LO_CLANG_CXXFLAGS_INTRINSICS_SSSE3@
export LO_CLANG_CXXFLAGS_INTRINSICS_SSE41=@LO_CLANG_CXXFLAGS_INTRINSICS_SSE41@
export LO_CLANG_CXXFLAGS_INTRINSICS_SSE42=@LO_CLANG_CXXFLAGS_INTRINSICS_SSE42@
export LO_CLANG_CXXFLAGS_INTRINSICS_AVX=@LO_CLANG_CXXFLAGS_INTRINSICS_AVX@
export LO_CLANG_CXXFLAGS_INTRINSICS_AVX2=@LO_CLANG_CXXFLAGS_INTRINSICS_AVX2@
export LO_CLANG_CXXFLAGS_INTRINSICS_AVX512=@LO_CLANG_CXXFLAGS_INTRINSICS_AVX512@
export LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F=@LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F@
export LO_CLANG_CXXFLAGS_INTRINSICS_F16C=@LO_CLANG_CXXFLAGS_INTRINSICS_F16C@
export LO_CLANG_CXXFLAGS_INTRINSICS_FMA=@LO_CLANG_CXXFLAGS_INTRINSICS_FMA@
export LO_CLANG_SHOWINCLUDES_PREFIX=@LO_CLANG_SHOWINCLUDES_PREFIX@
export LO_CLANG_VERSION=@LO_CLANG_VERSION@
@x_LO_ELFCHECK_ALLOWLIST@ export LO_ELFCHECK_ALLOWLIST=@LO_ELFCHECK_ALLOWLIST@
@x_Cygwin@ export LS=@WIN_LS@
export MACOSX_BUNDLE_IDENTIFIER=@MACOSX_BUNDLE_IDENTIFIER@
export MACOSX_CODESIGNING_IDENTITY=@MACOSX_CODESIGNING_IDENTITY@
export MACOSX_DEPLOYMENT_TARGET=@MACOSX_DEPLOYMENT_TARGET@
export MACOSX_PACKAGE_SIGNING_IDENTITY=@MACOSX_PACKAGE_SIGNING_IDENTITY@
export MACOSX_PROVISIONING_PROFILE=@MACOSX_PROVISIONING_PROFILE@
export MACOSX_SDK_PATH=@MACOSX_SDK_PATH@
export MAC_OS_X_VERSION_MIN_REQUIRED=@MAC_OS_X_VERSION_MIN_REQUIRED@
export MANDIR=@MANDIR@
export MARIADBC_MAJOR=@MARIADBC_MAJOR@
export MARIADBC_MICRO=@MARIADBC_MICRO@
export MARIADBC_MINOR=@MARIADBC_MINOR@
export MARIADB_CFLAGS=$(gb_SPACE)@MARIADB_CFLAGS@
export MARIADB_LIBS=$(gb_SPACE)@MARIADB_LIBS@
export LIBMARIADB=@LIBMARIADB@
export LIBMARIADB_PATH=@LIBMARIADB_PATH@
export BUNDLE_MARIADB_CONNECTOR_C=@BUNDLE_MARIADB_CONNECTOR_C@
export MDDS_CFLAGS=$(gb_SPACE)@MDDS_CFLAGS@
export MDDS_LIBS=$(gb_SPACE)@MDDS_LIBS@
export MERGELIBS=@MERGELIBS@
export MERGELIBS_MORE=@MERGELIBS_MORE@
export ML_EXE=@ML_EXE@
export MOC5=@MOC5@
qt6: Add a qt6 VCL plugin This adds a new "qt6" VCL plugin based on Qt 6. Building the plugin is enabled by autogen option '--enable-qt6' (and optionally setting 'QT6DIR' as needed). Use the 'SAL_USE_VCLPLUGIN=qt6' environment variable before running LO to select this VCL plugin. Taking qt6 into account at all relevant places certainly still requires follow-up changes, but this builds and runs with a self-compiled qtbase from the 'dev' git branch as of commit 3ce0672143d2eb3c3809f82998a4d71c5800d77a. I didn't see anything obviously broken in a quick run, but didn't test much. This reuses and shares the qt5 VCL plugin code; the qt6 headers and sources for now just '#include' the qt5 ones. Version checks are used for the code places that need different handling to be built against Qt 6. The build system parts in this commit were mostly done by copying the qt5 equivalents, then adapting as needed. Some notes on things I came across while porting to qt6: 1) At least in my self-compiled Qt versions, 'moc' (the meta-object compiler) is located in the 'libexec' subdirectory in 'QT6DIR', while the Qt 5 equivalent is located in the "bin" subdirectory of 'QT5DIR', so the configure.ac check uses the former. 2) moc does not process classes from the included headers. Since the headers in 'vcl/inc/qt6' just '#include' the ones from 'vcl/inc/qt5', running moc on the qt6 headers doesn't work, so moc is currently run on the qt5 headers for qt6 as well (s. 'vcl/CustomTarget_qt6_moc.mk'). That will have to be adapted in case the qt6 VCL plugin uses "own" headers instead of just including the qt5 ones at some point. 3) QX11Extras has been removed from Qt 6. [1] says: > Changes to Qt X11 Extras > > The QX11Info class has been removed. > > Clients that still rely on the functionality can include the private > header <QtGui/private/qtx11extras_p.h> as a stopgap solution. To enable > private headers use QT += core-private with qmake, or add a project > dependency to Qt::CorePrivate with CMake. I didn't take any closer look, just dropped the use of QtX11Extras for qt6 for now. 4) XCB_ICCCM is no longer needed. It is only used in qt5 to workaround a Qt bug fixed in Qt 5.12, s. commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca Author: Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> Date: Tue Dec 3 08:32:58 2019 +0100 Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUP 5) X11-specific code is still used for key modifier handling. Therefore, still check for the XCB headers when 'USING_X11' is set in configure.ac, and use a 'QT6_USING_X11' define (as qt5 uses 'QT5_USING_X11'). 6) There's currently no Qt 6 video sink for GStreamer. As of today, qt-gstreamer is unmaintained and there is no Qt 6 version. The project's README [2] says: > 0. Maintenance Notice > --------------------- > > This code is unmaintained. You can use it at your own risk. > > If you want to integrate video display in your QML-based UI, > you should consider using 'qmlglsink', from gst-plugins-good. > This is a well supported video sink that uses the generic > gstreamer-gl stack and is in many ways superior to 'qtquick2videosink' > that is provided by qt-gstreamer. You can use this code as an example: > https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink > > If you are not interested in using QML in your UI, then you > may use one of the other elements provided by this module > (see below). If you do that, it would be helpful to let us > know that this code is still useful to you. We may consider > adding these elements in one of the core gstreamer modules. > > If you are here for the Qt-style bindings, I'm sorry to disappoint you. > The alternative is to use the C API, or the GStreamermm C++ API. > Qt-style bindings are cool, but unfortunately they are very hard > to maintain because they are written by hand. If you are interested > in continuing this project, you are welcome to implement a > generator for them, probably based on GObject-Introspection. > I am happy to provide directions if you want to pursue such a thing. Therefore, the Qt video sink handling is qt5-only and the corresponding handling for GOBJECT (used for the GStreamer video sink handling) was not taken over for qt6. This presumably means that video playback in Impress presentations does not work when using qt6 with they Qt Wayland plugin, s. tdf#125219 for the corresponding bug for qt5/kf5. (I did not build the qtwayland module to actually test this, though. Video playback with the Qt xcb plugin in a Wayland session works.) [1] https://doc-snapshots.qt.io/qt6-dev/extras-changes-qt6.html [2] https://cgit.freedesktop.org/gstreamer/qt-gstreamer/tree/README Change-Id: Ib105ccfb2c3630ec5d5403793a3cd9ba31d85bdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122808 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-29 04:09:51 -05:00
export MOC6=@MOC6@
MODULAR_JAVA=@MODULAR_JAVA@
export MPL_SUBSET=@MPL_SUBSET@
migrate to boost::gettext * all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl * all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string") * ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching MODULE .mo files * UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui goes from l10n target to normal one, so the res/lang.zips of UI files go away * translation via Translation::get(hrc-define-key, imbued-std::locale) * python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there to keep finding the .hrc file uniform) so magic numbers can go away there * java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation mechanism * en-US res files go away, their strings are now the .hrc keys in the source code * remaining .res files are replaced by .mo files * in .res/.ui-lang-zip files, the old scheme missing translations of strings results in inserting the english original so something can be found, now the standard fallback of using the english original from the source key is used, so partial translations shrink dramatically in size * extract .hrc strings with hrcex which backs onto xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap * extract .ui strings with uiex which backs onto xgettext --add-comments --no-wrap * qtz for gettext translations is generated at runtime as ascii-ified crc32 of content + "|" + msgid * [API CHANGE] remove deprecated binary .res resouce loader related uno apis com::sun::star::resource::OfficeResourceLoader com::sun::star::resource::XResourceBundleLoader com::sun::star::resource::XResourceBundle when translating strings via uno apis com.sun.star.resource.StringResourceWithLocation can continue to be used Change-Id: Ia2594a2672b7301d9c3421fdf31b6cfe7f3f8d0a
2017-06-11 14:56:30 -05:00
export MSGFMT=@MSGFMT@
export MSGUNIQ=@MSGUNIQ@
export MSM_PATH=@MSM_PATH@
export MSPUB_CFLAGS=$(gb_SPACE)@MSPUB_CFLAGS@
export MSPUB_LIBS=$(gb_SPACE)@MSPUB_LIBS@
export MSVC_CXX=@MSVC_CXX@
export MSVC_DLLS=@MSVC_DLLS@
export MSVC_DLL_PATH=@MSVC_DLL_PATH@
export MSVC_USE_DEBUG_RUNTIME=@MSVC_USE_DEBUG_RUNTIME@
export MWAW_CFLAGS=$(gb_SPACE)@MWAW_CFLAGS@
export MWAW_LIBS=$(gb_SPACE)@MWAW_LIBS@
export MYTHES_CFLAGS=$(gb_SPACE)@MYTHES_CFLAGS@
export MYTHES_LIBS=$(gb_SPACE)@MYTHES_LIBS@
export NASM=@NASM@
export NAFLAGS=@NAFLAGS@
export NM=@NM@
export NSS_CFLAGS=$(gb_SPACE)@NSS_CFLAGS@
export NSS_LIBS=$(gb_SPACE)@NSS_LIBS@
export NUMBERTEXT_EXTENSION_PACK=@NUMBERTEXT_EXTENSION_PACK@
export nodep=@nodep@
@x_OBJCFLAGS@ export OBJCFLAGS=@OBJCFLAGS@
@x_OBJCXXFLAGS@ export OBJCXXFLAGS=@OBJCXXFLAGS@
export OBJDUMP=@OBJDUMP@
export ODFGEN_CFLAGS=$(gb_SPACE)@ODFGEN_CFLAGS@
export ODFGEN_LIBS=$(gb_SPACE)@ODFGEN_LIBS@
export ODFVALIDATOR=@ODFVALIDATOR@
export OFFICEOTRON=@OFFICEOTRON@
export BFFVALIDATOR=@BFFVALIDATOR@
export ONLINEUPDATE_MAR_BASEURL=@ONLINEUPDATE_MAR_BASEURL@
export ONLINEUPDATE_MAR_CERTIFICATEDER=@ONLINEUPDATE_MAR_CERTIFICATEDER@
export ONLINEUPDATE_MAR_CERTIFICATENAME=@ONLINEUPDATE_MAR_CERTIFICATENAME@
export ONLINEUPDATE_MAR_CERTIFICATEPATH=@ONLINEUPDATE_MAR_CERTIFICATEPATH@
export OOO_JUNIT_JAR=@OOO_JUNIT_JAR@
export OOO_VENDOR=@OOO_VENDOR@
export OPENSSL_CFLAGS=$(gb_SPACE)@OPENSSL_CFLAGS@
export OPENSSL_LIBS=$(gb_SPACE)@OPENSSL_LIBS@
export ORCUS_CFLAGS=$(gb_SPACE)@ORCUS_CFLAGS@
export ORCUS_LIBS=$(gb_SPACE)@ORCUS_LIBS@
export OS=@OS@
export OS_FOR_BUILD=@OS_FOR_BUILD@
export PATH=@LO_PATH@
export LIBO_PATH_SEPARATOR=@P_SEP@
export PAGEMAKER_CFLAGS=$(gb_SPACE)@PAGEMAKER_CFLAGS@
export PAGEMAKER_LIBS=$(gb_SPACE)@PAGEMAKER_LIBS@
export PCH_INSTANTIATE_TEMPLATES=@PCH_INSTANTIATE_TEMPLATES@
export PCH_CODEGEN=@PCH_CODEGEN@
export PCH_DEBUGINFO=@PCH_DEBUGINFO@
export PCH_NO_CODEGEN=@PCH_NO_CODEGEN@
export PERL=@PERL@
export PKGFORMAT?=@PKGFORMAT@
export PKGMK=@PKGMK@
export PKG_CONFIG=@PKG_CONFIG@
ifneq (@PKG_CONFIG_PATH@,)
export PKG_CONFIG_PATH=@PKG_CONFIG_PATH@
else
unexport PKG_CONFIG_PATH
endif
ifneq (@PKG_CONFIG_LIBDIR@,)
export PKG_CONFIG_LIBDIR=@PKG_CONFIG_LIBDIR@
else
unexport PKG_CONFIG_LIBDIR
endif
export PLATFORMID=@PLATFORMID@
export POPPLER_CFLAGS=$(gb_SPACE)@POPPLER_CFLAGS@
export POPPLER_LIBS=$(gb_SPACE)@POPPLER_LIBS@
export POSTGRESQL_INC=@POSTGRESQL_INC@
export POSTGRESQL_LIB=@POSTGRESQL_LIB@
export PREFIXDIR=@PREFIXDIR@
export PRIVACY_POLICY_URL=@PRIVACY_POLICY_URL@
export PRODUCTNAME=@PRODUCTNAME@
export PRODUCTNAME_WITHOUT_SPACES=@PRODUCTNAME_WITHOUT_SPACES@
export PRODUCTVERSION=@PRODUCTVERSION@
export PROGRESSBARCOLOR=@PROGRESSBARCOLOR@
export PROGRESSFRAMECOLOR=@PROGRESSFRAMECOLOR@
export PROGRESSPOSITION=@PROGRESSPOSITION@
export PROGRESSSIZE=@PROGRESSSIZE@
export PROGRESSTEXTBASELINE=@PROGRESSTEXTBASELINE@
export PROGRESSTEXTCOLOR=@PROGRESSTEXTCOLOR@
export PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
export PTHREAD_LIBS=@PTHREAD_LIBS@
export PYTHON_CFLAGS=$(gb_SPACE)@PYTHON_CFLAGS@
export PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
export PYTHON_LIBS=$(gb_SPACE)@PYTHON_LIBS@
export PYTHON_VERSION=@PYTHON_VERSION@
export PYTHON_VERSION_MAJOR=@PYTHON_VERSION_MAJOR@
export PYTHON_VERSION_MINOR=@PYTHON_VERSION_MINOR@
export PYTHONWARNINGS=@PYTHONWARNINGS@
export ENABLE_ZXING=@ENABLE_ZXING@
export ZXING_CFLAGS=$(gb_SPACE)@ZXING_CFLAGS@
export ZXING_LIBS=$(gb_SPACE)@ZXING_LIBS@
export QT5_CFLAGS=$(gb_SPACE)@QT5_CFLAGS@
export QT5_LIBS=$(gb_SPACE)@QT5_LIBS@
export QT5_GOBJECT_CFLAGS=$(gb_SPACE)@QT5_GOBJECT_CFLAGS@
export QT5_GOBJECT_LIBS=$(gb_SPACE)@QT5_GOBJECT_LIBS@
export QT5_HAVE_GOBJECT=@QT5_HAVE_GOBJECT@
export QT5_PLATFORMS_SRCDIR=@QT5_PLATFORMS_SRCDIR@
qt6: Add a qt6 VCL plugin This adds a new "qt6" VCL plugin based on Qt 6. Building the plugin is enabled by autogen option '--enable-qt6' (and optionally setting 'QT6DIR' as needed). Use the 'SAL_USE_VCLPLUGIN=qt6' environment variable before running LO to select this VCL plugin. Taking qt6 into account at all relevant places certainly still requires follow-up changes, but this builds and runs with a self-compiled qtbase from the 'dev' git branch as of commit 3ce0672143d2eb3c3809f82998a4d71c5800d77a. I didn't see anything obviously broken in a quick run, but didn't test much. This reuses and shares the qt5 VCL plugin code; the qt6 headers and sources for now just '#include' the qt5 ones. Version checks are used for the code places that need different handling to be built against Qt 6. The build system parts in this commit were mostly done by copying the qt5 equivalents, then adapting as needed. Some notes on things I came across while porting to qt6: 1) At least in my self-compiled Qt versions, 'moc' (the meta-object compiler) is located in the 'libexec' subdirectory in 'QT6DIR', while the Qt 5 equivalent is located in the "bin" subdirectory of 'QT5DIR', so the configure.ac check uses the former. 2) moc does not process classes from the included headers. Since the headers in 'vcl/inc/qt6' just '#include' the ones from 'vcl/inc/qt5', running moc on the qt6 headers doesn't work, so moc is currently run on the qt5 headers for qt6 as well (s. 'vcl/CustomTarget_qt6_moc.mk'). That will have to be adapted in case the qt6 VCL plugin uses "own" headers instead of just including the qt5 ones at some point. 3) QX11Extras has been removed from Qt 6. [1] says: > Changes to Qt X11 Extras > > The QX11Info class has been removed. > > Clients that still rely on the functionality can include the private > header <QtGui/private/qtx11extras_p.h> as a stopgap solution. To enable > private headers use QT += core-private with qmake, or add a project > dependency to Qt::CorePrivate with CMake. I didn't take any closer look, just dropped the use of QtX11Extras for qt6 for now. 4) XCB_ICCCM is no longer needed. It is only used in qt5 to workaround a Qt bug fixed in Qt 5.12, s. commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca Author: Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> Date: Tue Dec 3 08:32:58 2019 +0100 Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUP 5) X11-specific code is still used for key modifier handling. Therefore, still check for the XCB headers when 'USING_X11' is set in configure.ac, and use a 'QT6_USING_X11' define (as qt5 uses 'QT5_USING_X11'). 6) There's currently no Qt 6 video sink for GStreamer. As of today, qt-gstreamer is unmaintained and there is no Qt 6 version. The project's README [2] says: > 0. Maintenance Notice > --------------------- > > This code is unmaintained. You can use it at your own risk. > > If you want to integrate video display in your QML-based UI, > you should consider using 'qmlglsink', from gst-plugins-good. > This is a well supported video sink that uses the generic > gstreamer-gl stack and is in many ways superior to 'qtquick2videosink' > that is provided by qt-gstreamer. You can use this code as an example: > https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink > > If you are not interested in using QML in your UI, then you > may use one of the other elements provided by this module > (see below). If you do that, it would be helpful to let us > know that this code is still useful to you. We may consider > adding these elements in one of the core gstreamer modules. > > If you are here for the Qt-style bindings, I'm sorry to disappoint you. > The alternative is to use the C API, or the GStreamermm C++ API. > Qt-style bindings are cool, but unfortunately they are very hard > to maintain because they are written by hand. If you are interested > in continuing this project, you are welcome to implement a > generator for them, probably based on GObject-Introspection. > I am happy to provide directions if you want to pursue such a thing. Therefore, the Qt video sink handling is qt5-only and the corresponding handling for GOBJECT (used for the GStreamer video sink handling) was not taken over for qt6. This presumably means that video playback in Impress presentations does not work when using qt6 with they Qt Wayland plugin, s. tdf#125219 for the corresponding bug for qt5/kf5. (I did not build the qtwayland module to actually test this, though. Video playback with the Qt xcb plugin in a Wayland session works.) [1] https://doc-snapshots.qt.io/qt6-dev/extras-changes-qt6.html [2] https://cgit.freedesktop.org/gstreamer/qt-gstreamer/tree/README Change-Id: Ib105ccfb2c3630ec5d5403793a3cd9ba31d85bdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122808 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-29 04:09:51 -05:00
export QT6_CFLAGS=$(gb_SPACE)@QT6_CFLAGS@
export QT6_LIBS=$(gb_SPACE)@QT6_LIBS@
export QT6_PLATFORMS_SRCDIR=@QT6_PLATFORMS_SRCDIR@
export QXP_CFLAGS=$(gb_SPACE)@QXP_CFLAGS@
export QXP_LIBS=$(gb_SPACE)@QXP_LIBS@
export RANLIB=@RANLIB@
export RAPTOR_MAJOR=@RAPTOR_MAJOR@
export RASQAL_MAJOR=@RASQAL_MAJOR@
export READELF=@READELF@
export REDLAND_CFLAGS=$(gb_SPACE)@REDLAND_CFLAGS@
export REDLAND_LIBS=$(gb_SPACE)@REDLAND_LIBS@
export REDLAND_MAJOR=@REDLAND_MAJOR@
export REVENGE_CFLAGS=$(gb_SPACE)@REVENGE_CFLAGS@
export REVENGE_LIBS=$(gb_SPACE)@REVENGE_LIBS@
export RHINO_JAR=@RHINO_JAR@
export RPM=@RPM@
export RTL_ARCH=@RTL_ARCH@
export RTL_OS=@RTL_OS@
export SAC_JAR=@SAC_JAR@
export SAL_ENABLE_FILE_LOCKING=1
export SCPDEFS=@SCPDEFS@
export SDKDIRNAME=@SDKDIRNAME@
export SDKDIRNAME_FOR_BUILD=@SDKDIRNAME_FOR_BUILD@
export SHA256SUM=@SHA256SUM@
export SHOWINCLUDES_PREFIX=@SHOWINCLUDES_PREFIX@
export SIZEOF_SIZE_T=@SIZEOF_SIZE_T@
export SKIA_DISABLE_VMA_USE_STL_SHARED_MUTEX=@SKIA_DISABLE_VMA_USE_STL_SHARED_MUTEX@
export SKIA_GPU=@SKIA_GPU@
export SOLARINC=@SOLARINC@
export SORT=@SORT@
export SPLIT_APP_MODULES=@SPLIT_APP_MODULES@
export SPLIT_OPT_FEATURES=@SPLIT_OPT_FEATURES@
export SRCDIR=@SRC_ROOT@
export STAROFFICE_CFLAGS=$(gb_SPACE)@STAROFFICE_CFLAGS@
export STAROFFICE_LIBS=$(gb_SPACE)@STAROFFICE_LIBS@
export STRIP=@STRIP@
export STRIP_COMPONENTS=@STRIP_COMPONENTS@
export SYSBASE=@SYSBASE@
SYSTEM_ABSEIL=@SYSTEM_ABSEIL@
export ABSEIL_CFLAGS=@ABSEIL_CFLAGS@
export ABSEIL_LIBS=@ABSEIL_LIBS@
SYSTEM_ABW=@SYSTEM_ABW@
ARGON2_CFLAGS=$(gb_SPACE)@ARGON2_CFLAGS@
ARGON2_LIBS=$(gb_SPACE)@ARGON2_LIBS@
SYSTEM_ARGON2=@SYSTEM_ARGON2@
SYSTEM_BLUEZ=@SYSTEM_BLUEZ@
# FIXME: concat-deps reads SYSTEM_BOOST from env
SYSTEM_BOOST=@SYSTEM_BOOST@
SYSTEM_BSH=@SYSTEM_BSH@
SYSTEM_BOX2D=@SYSTEM_BOX2D@
SYSTEM_BZIP2=@SYSTEM_BZIP2@
SYSTEM_CAIRO=@SYSTEM_CAIRO@
SYSTEM_CLUCENE=@SYSTEM_CLUCENE@
SYSTEM_CPPUNIT=@SYSTEM_CPPUNIT@
SYSTEM_CURL=@SYSTEM_CURL@
SYSTEM_DICTS=@SYSTEM_DICTS@
SYSTEM_EXPAT=@SYSTEM_EXPAT@
SYSTEM_FONTCONFIG=@SYSTEM_FONTCONFIG@
SYSTEM_FREETYPE=@SYSTEM_FREETYPE@
SYSTEM_FIREBIRD=@SYSTEM_FIREBIRD@
SYSTEM_GENBRK=@SYSTEM_GENBRK@
SYSTEM_GENCCODE=@SYSTEM_GENCCODE@
SYSTEM_GENCMN=@SYSTEM_GENCMN@
SYSTEM_EPOXY=@SYSTEM_EPOXY@
SYSTEM_GLM=@SYSTEM_GLM@
SYSTEM_GPGMEPP=@SYSTEM_GPGMEPP@
SYSTEM_GRAPHITE=@SYSTEM_GRAPHITE@
SYSTEM_HARFBUZZ=@SYSTEM_HARFBUZZ@
SYSTEM_HSQLDB=@SYSTEM_HSQLDB@
SYSTEM_HUNSPELL=@SYSTEM_HUNSPELL@
SYSTEM_HYPH=@SYSTEM_HYPH@
SYSTEM_ICU=@SYSTEM_ICU@
SYSTEM_JFREEREPORT=@SYSTEM_JFREEREPORT@
SYSTEM_LIBJPEG=@SYSTEM_LIBJPEG@
SYSTEM_LCMS2=@SYSTEM_LCMS2@
SYSTEM_CDR=@SYSTEM_CDR@
SYSTEM_LIBCMIS=@SYSTEM_LIBCMIS@
SYSTEM_EBOOK=@SYSTEM_EBOOK@
SYSTEM_ETONYEK=@SYSTEM_ETONYEK@
SYSTEM_EPUBGEN=@SYSTEM_EPUBGEN@
SYSTEM_FREEHAND=@SYSTEM_FREEHAND@
SYSTEM_JAVA_WEBSOCKET=@SYSTEM_JAVA_WEBSOCKET@
SYSTEM_LIBATOMIC_OPS=@SYSTEM_LIBATOMIC_OPS@
SYSTEM_LIBEOT=@SYSTEM_LIBEOT@
SYSTEM_LIBEXTTEXTCAT=@SYSTEM_LIBEXTTEXTCAT@
SYSTEM_LIBEXTTEXTCAT_DATA=@SYSTEM_LIBEXTTEXTCAT_DATA@
SYSTEM_LIBFIXMATH=@SYSTEM_LIBFIXMATH@
SYSTEM_LIBLANGTAG=@SYSTEM_LIBLANGTAG@
SYSTEM_LIBNUMBERTEXT=@SYSTEM_LIBNUMBERTEXT@
SYSTEM_LIBNUMBERTEXT_DATA=@SYSTEM_LIBNUMBERTEXT_DATA@
SYSTEM_LIBORCUS=@SYSTEM_LIBORCUS@
SYSTEM_LIBPNG=@SYSTEM_LIBPNG@
SYSTEM_LIBTIFF=@SYSTEM_LIBTIFF@
SYSTEM_LIBTOMMATH=@SYSTEM_LIBTOMMATH@
SYSTEM_LIBWEBP=@SYSTEM_LIBWEBP@
SYSTEM_LIBXML=@SYSTEM_LIBXML@
SYSTEM_LIBXML_FOR_BUILD=@SYSTEM_LIBXML_FOR_BUILD@
SYSTEM_LIBXSLT=@SYSTEM_LIBXSLT@
SYSTEM_LIBXSLT_FOR_BUILD=@SYSTEM_LIBXSLT_FOR_BUILD@
SYSTEM_LPSOLVE=@SYSTEM_LPSOLVE@
SYSTEM_MDDS=@SYSTEM_MDDS@
SYSTEM_MARIADB_CONNECTOR_C=@SYSTEM_MARIADB_CONNECTOR_C@
SYSTEM_MSPUB=@SYSTEM_MSPUB@
SYSTEM_MWAW=@SYSTEM_MWAW@
SYSTEM_MYTHES=@SYSTEM_MYTHES@
SYSTEM_NSS=@SYSTEM_NSS@
SYSTEM_ODBC_HEADERS=@SYSTEM_ODBC_HEADERS@
SYSTEM_ODFGEN=@SYSTEM_ODFGEN@
SYSTEM_OPENJPEG2=@SYSTEM_OPENJPEG2@
export OPENJPEG2_CFLAGS=@OPENJPEG2_CFLAGS@
export OPENJPEG2_LIBS=@OPENJPEG2_LIBS@
SYSTEM_OPENLDAP=@SYSTEM_OPENLDAP@
SYSTEM_OPENSSL=@SYSTEM_OPENSSL@
SYSTEM_PAGEMAKER=@SYSTEM_PAGEMAKER@
SYSTEM_POPPLER=@SYSTEM_POPPLER@
SYSTEM_POSTGRESQL=@SYSTEM_POSTGRESQL@
SYSTEM_PYTHON=@SYSTEM_PYTHON@
SYSTEM_ZXCVBN=@SYSTEM_ZXCVBN@
SYSTEM_ZXING=@SYSTEM_ZXING@
SYSTEM_QXP=@SYSTEM_QXP@
SYSTEM_REDLAND=@SYSTEM_REDLAND@
SYSTEM_REVENGE=@SYSTEM_REVENGE@
SYSTEM_RHINO=@SYSTEM_RHINO@
SYSTEM_STAROFFICE=@SYSTEM_STAROFFICE@
SYSTEM_VISIO=@SYSTEM_VISIO@
SYSTEM_WPD=@SYSTEM_WPD@
SYSTEM_WPG=@SYSTEM_WPG@
SYSTEM_WPS=@SYSTEM_WPS@
SYSTEM_XMLSEC=@SYSTEM_XMLSEC@
SYSTEM_ZLIB=@SYSTEM_ZLIB@
SYSTEM_ZMF=@SYSTEM_ZMF@
New --with-coredumpctl to obtain core dumps of crashed tests from coredumpctl ...for (Linux) systems that don't store core.* files in the current working directory. When enabled, this wraps test execution in `systemd-run --scope --user --unit=...` with unit values unique per individual test invocation, so that solenv/bin/gdb-core-bt.sh can query coredumpctl for matching core dumps. (See the mailing list thread starting at <https://lists.freedesktop.org/archives/systemd-devel/2023-March/048884.html> "[systemd-devel] coredumpctl: matching by e.g. env var?" for further details.) The used --unit=... scheme is a best effort to produce system-wide unique values, combining the target location path of the given test with a second-granularity date/time and the current PID. (In case there would be multiple invocations of the same test per second, which then hopefully wouldn't reuse the same PID. The date/time and PID could be replaced with a high-resolution system-wide monotonic clock/counter if one were easily available. The advantage of the current scheme is that it only uses Posix features.) The overall length of the unit value (incl. the appended ".scope" suffix) must not exceed 256 characters, or else systemd-run would fail with "Failed to mangle scope name: Invalid argument". It might look more natural to pass the unit value into gdb-core-bt.sh as a fourth positional argument rather than via a new LIBO_TEST_UNIT env var. But for one, the unit value is most easily computed from within the recipe shell command lines, where an env var is the most natural fit. And for another, this avoids having to tunnel yet another value through the tearDown method in unotest/source/java/org/openoffice/test/OfficeConnection.java to the given postprocesscommand. Change-Id: Idcb20cd1e1141d8ec7f10947e5edc70aa2aa7d32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149690 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-29 06:55:11 -05:00
export SYSTEMD_ESCAPE=@SYSTEMD_ESCAPE@
export SYSTEMD_RUN=@SYSTEMD_RUN@
export TARFILE_LOCATION=@TARFILE_LOCATION@
export TESTINSTALLDIR=@TESTINSTALLDIR@
export THES_SYSTEM_DIR=@THES_SYSTEM_DIR@
export TLS=@TLS@
export TMP=@TEMP_DIRECTORY@
export TMPDIR=@TEMP_DIRECTORY@
export TOUCH=@TOUCH@
export UCRTSDKDIR=@UCRTSDKDIR@
export UCRTVERSION=@UCRTVERSION@
export UNIQ=@UNIQ@
export UNIX_DLAPI_LIBS=@UNIX_DLAPI_LIBS@
export USE_HEADLESS_CODE=@USE_HEADLESS_CODE@
export USE_LD=@USE_LD@
export USE_LIBRARY_BIN_TAR=@USE_LIBRARY_BIN_TAR@
export UUIDGEN=@UUIDGEN@
export VALGRIND_CFLAGS=$(gb_SPACE)@VALGRIND_CFLAGS@
export VCL_PLUGIN_INFO=@VCL_PLUGIN_INFO@
export VCTOOLSET=@VCTOOLSET@
export VCVER=@VCVER@
export DEVENV=@DEVENV@
export VISIO_CFLAGS=$(gb_SPACE)@VISIO_CFLAGS@
export VISIO_LIBS=$(gb_SPACE)@VISIO_LIBS@
export WGET=@WGET@
export WINDOWS_BUILD_SIGNING=@WINDOWS_BUILD_SIGNING@
export WINDOWS_SDK_HOME=@WINDOWS_SDK_HOME@
export WINDOWS_SDK_LIB_SUBDIR=@WINDOWS_SDK_LIB_SUBDIR@
export WINDOWS_SDK_VERSION=@WINDOWS_SDK_VERSION@
export WINDOWS_SDK_WILANGID=@WINDOWS_SDK_WILANGID@
export WINDOWS_X64=@WINDOWS_X64@
export WITH_COMPAT_OOWRAPPERS=@WITH_COMPAT_OOWRAPPERS@
New --with-coredumpctl to obtain core dumps of crashed tests from coredumpctl ...for (Linux) systems that don't store core.* files in the current working directory. When enabled, this wraps test execution in `systemd-run --scope --user --unit=...` with unit values unique per individual test invocation, so that solenv/bin/gdb-core-bt.sh can query coredumpctl for matching core dumps. (See the mailing list thread starting at <https://lists.freedesktop.org/archives/systemd-devel/2023-March/048884.html> "[systemd-devel] coredumpctl: matching by e.g. env var?" for further details.) The used --unit=... scheme is a best effort to produce system-wide unique values, combining the target location path of the given test with a second-granularity date/time and the current PID. (In case there would be multiple invocations of the same test per second, which then hopefully wouldn't reuse the same PID. The date/time and PID could be replaced with a high-resolution system-wide monotonic clock/counter if one were easily available. The advantage of the current scheme is that it only uses Posix features.) The overall length of the unit value (incl. the appended ".scope" suffix) must not exceed 256 characters, or else systemd-run would fail with "Failed to mangle scope name: Invalid argument". It might look more natural to pass the unit value into gdb-core-bt.sh as a fourth positional argument rather than via a new LIBO_TEST_UNIT env var. But for one, the unit value is most easily computed from within the recipe shell command lines, where an env var is the most natural fit. And for another, this avoids having to tunnel yet another value through the tearDown method in unotest/source/java/org/openoffice/test/OfficeConnection.java to the given postprocesscommand. Change-Id: Idcb20cd1e1141d8ec7f10947e5edc70aa2aa7d32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149690 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-29 06:55:11 -05:00
export WITH_COREDUMPCTL=@WITH_COREDUMPCTL@
export WITH_EXTENSION_INTEGRATION=@WITH_EXTENSION_INTEGRATION@
export WITH_EXTRA_EXTENSIONS=@WITH_EXTRA_EXTENSIONS@
export WITH_FONTS=@WITH_FONTS@
export WITH_DOCREPAIR_FONTS=@WITH_DOCREPAIR_FONTS@
export WITH_GALLERY_BUILD=@WITH_GALLERY_BUILD@
export WITH_TEMPLATES=@WITH_TEMPLATES@
export WITH_GSSAPI=@WITH_GSSAPI@
export WITH_KRB5=@WITH_KRB5@
export WITH_LINKER_HASH_STYLE=@WITH_LINKER_HASH_STYLE@
export WITH_LOCALES=@WITH_LOCALES@
export WITH_MYSPELL_DICTS=@WITH_MYSPELL_DICTS@
export WITH_THEMES=@WITH_THEMES@
export WITH_WEBDAV=@WITH_WEBDAV@
export WORKDIR=@WORKDIR@
export WORKDIR_FOR_BUILD=@WORKDIR_FOR_BUILD@
export WPD_CFLAGS=$(gb_SPACE)@WPD_CFLAGS@
export WPD_LIBS=$(gb_SPACE)@WPD_LIBS@
export WPG_CFLAGS=$(gb_SPACE)@WPG_CFLAGS@
export WPG_LIBS=$(gb_SPACE)@WPG_LIBS@
export WPS_CFLAGS=$(gb_SPACE)@WPS_CFLAGS@
export WPS_LIBS=$(gb_SPACE)@WPS_LIBS@
export XINERAMA_LINK=@XINERAMA_LINK@
export XMLLINT=@XMLLINT@
export XMLSEC_CFLAGS=$(gb_SPACE)@XMLSEC_CFLAGS@
export XMLSEC_LIBS=$(gb_SPACE)@XMLSEC_LIBS@
export XRANDR_CFLAGS=$(gb_SPACE)@XRANDR_CFLAGS@
export XRANDR_LIBS=$(gb_SPACE)@XRANDR_LIBS@
export XRENDER_CFLAGS=$(gb_SPACE)@XRENDER_CFLAGS@
export XRENDER_LIBS=$(gb_SPACE)@XRENDER_LIBS@
export XSLTPROC=@XSLTPROC@
vcl gtk3: Introduce AT-SPI2 tests for the GTK3 accessibility layer Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-04-05 08:39:25 -05:00
export XVFB_RUN=@XVFB_RUN@
export ZLIB_CFLAGS=$(gb_SPACE)@ZLIB_CFLAGS@
export ZLIB_LIBS=$(gb_SPACE)@ZLIB_LIBS@
export ZMF_CFLAGS=$(gb_SPACE)@ZMF_CFLAGS@
export ZMF_LIBS=$(gb_SPACE)@ZMF_LIBS@
export GET_TASK_ALLOW_ENTITLEMENT=@GET_TASK_ALLOW_ENTITLEMENT@
# lang-related stuff
include $(BUILDDIR)/config_$(gb_Side)_lang.mk
# tarball names
# does use some of the variables defined above
include @SRC_ROOT@/download.lst
KEEP_AWAKE_CMD:=@KEEP_AWAKE_CMD@
# used for WSL-as-helper-builds where the build runs from within git-bash/MSYS that otherwise would
# mess with anything that looks like a path (starts with a /) but cannot be resolved to a target
export MSYS_NO_PATHCONV=1
STRAWBERRY_PERL=@STRAWBERRY_PERL@
WSL=@WSL@