[Libreoffice-commits] core.git: Branch 'ports/macosx10.5/master' - 464 commits - accessibility/inc accessibility/source android/Bootstrap android/experimental apple_remote/Library_AppleRemote.mk apple_remote/source avmedia/Library_avmediaQuickTime.mk avmedia/Library_avmediavlc.mk avmedia/Module_avmedia.mk avmedia/source basctl/source basctl/uiconfig basegfx/source basic/inc basic/qa basic/source bean/inc bean/Library_officebean.mk bean/native bean/qa binaryurp/source bin/find-german-comments bin/find-unused-defines.awk bin/find-unused-defines.sh bin/gbuild-to-ide bridges/inc bridges/Library_cpp_uno.mk bridges/source bridges/test canvas/source chart2/inc chart2/qa chart2/source chart2/uiconfig comphelper/qa comphelper/source compilerplugins/clang config_host/config_features.h.in config_host.mk.in configure.ac connectivity/com connectivity/JunitTest_complex.mk connectivity/Module_connectivity.mk connectivity/org connectivity/qa connectivity/registry connectivity/source cppcanvas/qa cppcanvas/source cppuhelper/source cppu/source crashrep/CustomTarget_crashrep_res.mk crashrep/Executable_crashrep.mk crashrep/Makefile crashrep/Module_crashrep.mk crashrep/README crashrep/source crashrep/WinResTarget_crashrep.mk cui/source cui/uiconfig dbaccess/inc dbaccess/qa dbaccess/source dbaccess/uiconfig desktop/Executable_crashrep_com.mk desktop/inc desktop/Module_desktop.mk desktop/source desktop/uiconfig desktop/unx desktop/win32 dictionaries distro-configs/OxygenOfficeLinux.conf download.lst drawinglayer/source dtrans/source editeng/inc editeng/source embeddedobj/source embeddedobj/test embedserv/source extensions/Module_extensions.mk extensions/qa extensions/source external/boost external/coinmp external/curl external/harfbuzz external/icu external/jpeg-turbo external/libmwaw external/libodfgen external/libvisio external/libxml2 external/nss external/openssl external/python3 external/redland extras/Module_extras.mk extras/Package_tplofficorr.mk extras/Package_tploffimisc.mk extras/Packag e_tplpersonal.mk extras/Package_tplpresnt.mk extras/source filter/qa filter/source forms/inc forms/qa forms/source formula/source formula/uiconfig fpicker/Library_fps_aqua.mk fpicker/source framework/inc framework/JunitTest_framework_complex.mk framework/qa framework/source helpcompiler/inc helpcompiler/source helpcontent2 hwpfilter/source i18nlangtag/source i18npool/inc i18npool/source icon-themes/galaxy idlc/inc idlc/source idl/inc idl/source include/apple_remote include/avmedia include/basebmp include/basegfx include/basic include/clew include/codemaker include/com include/comphelper include/connectivity include/cppuhelper include/dbaccess include/drawinglayer include/editeng include/filter include/formula include/framework include/LibreOfficeKit include/o3tl include/oox include/opencl include/osl include/postwin.h include/rsc include/rtl include/sal include/sfx2 include/sot include/svl include/svtools include/svx include/toolkit include/tools include/uno include/unotools include /vbahelper include/vcl include/xmloff io/source javaunohelper/com javaunohelper/source javaunohelper/test jurt/source jurt/test jvmfwk/plugins l10ntools/inc l10ntools/source libreofficekit/qa libreofficekit/source lingucomponent/Module_lingucomponent.mk lingucomponent/source linguistic/qa linguistic/source lotuswordpro/source Makefile.in mysqlc/source nlpsolver/Jar_EvolutionarySolver.mk nlpsolver/Jar_nlpsolver.mk nlpsolver/src nlpsolver/ThirdParty odk/docs odk/examples odk/index.html odk/index_online.html odk/source offapi/com officecfg/registry oox/inc oox/source opencl/source package/inc package/source postprocess/Rdb_services.mk pyuno/source qadevOOo/runner qadevOOo/testdocs qadevOOo/tests readlicense_oo/license registry/source reportbuilder/Jar_reportbuilder.mk reportbuilder/java reportdesign/inc reportdesign/qa reportdesign/source reportdesign/uiconfig RepositoryExternal.mk RepositoryFixes.mk Repository.mk RepositoryModule_host.mk rsc/inc rsc/source sal/android sal/Library_sal. mk sal/osl sal/qa sal/rtl sal/textenc sax/source scaddins/source sccomp/source sc/CppunitTest_sc_condformats.mk sc/CppunitTest_sc_opencl_test.mk sc/inc sc/Module_sc.mk scp2/AutoInstall.mk scp2/InstallModule_crashrep.mk scp2/InstallScript_setup_osl.mk scp2/Module_scp2.mk scp2/source sc/qa scripting/source sc/sdi sc/source sc/uiconfig sdext/inc sdext/source sd/inc sd/source sd/uiconfig setup_native/scripts setup_native/source sfx2/inc sfx2/Library_sfx.mk sfx2/source sfx2/uiconfig shell/inc shell/Library_macbe.mk shell/source slideshow/inc slideshow/source solenv/bin solenv/gbuild soltools/mkdepend sot/qa sot/source sot/workben starmath/inc starmath/source stoc/source svgio/inc svgio/qa svgio/source svl/inc svl/qa svl/source svtools/inc svtools/source svx/inc svx/qa svx/source svx/uiconfig svx/workben swext/mediawiki sw/inc sw/qa sw/source sw/uiconfig sysui/desktop test/source testtools/source toolkit/qa toolkit/source toolkit/test tools/inc tools/qa tools/source ucbhelper/source ucb/s ource UnoControls/source unodevtools/source unotest/source unotools/inc unotools/qa unotools/source unoxml/source uui/source vbahelper/inc vbahelper/source vcl/android vcl/Executable_vcldemo.mk vcl/generic vcl/headless vcl/inc vcl/ios vcl/Library_vcl.mk vcl/opengl vcl/osx vcl/qa vcl/quartz vcl/source vcl/unx vcl/win vcl/WinResTarget_vcl.mk vcl/workben wizards/com wizards/Jar_commonwizards.mk wizards/Package_access2base.mk wizards/source writerfilter/inc writerfilter/qa writerfilter/source writerperfect/qa writerperfect/source xmlhelp/source xmloff/inc xmloff/Module_xmloff.mk xmloff/qa xmloff/source xmlscript/inc xmlscript/source xmlsecurity/source xmlsecurity/test_docs
Douglas Mencken
dougmencken at gmail.com
Sun Jan 11 08:03:01 PST 2015
Rebased ref, commits from common ancestor:
commit 29b157bddd2ab72f7cfe47dd34f9b99b640d9ba7
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sat Dec 27 06:25:11 2014 -0500
remove now-unused OUTPATH, fix solenv/bin/modules/installer
(macosx_x86_64 is not "the only one"; use ::globals::os MACOSX)
+ add PLATFORM_MACOSX_POWERPC to isValidPlatform @ desktop/source/deployment/misc/dp_platform.cxx
related commit:
3104fba6051328cb827042272fc6bccf05ccf5fb
Change-Id: Iced611e001ce69860d001b10c84d12a568b40a59
diff --git a/configure.ac b/configure.ac
index b6233f7..8917309 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3956,7 +3956,6 @@ darwin*)
CPUNAME=POWERPC
RTL_ARCH=PowerPC
PLATFORMID=macosx_powerpc
- OUTPATH=unxmacxp
;;
i*86)
AC_MSG_ERROR([Can't build 64-bit code in 32-bit OS])
diff --git a/desktop/source/deployment/misc/dp_platform.cxx b/desktop/source/deployment/misc/dp_platform.cxx
index 7f217f1..ff5c6a1 100644
--- a/desktop/source/deployment/misc/dp_platform.cxx
+++ b/desktop/source/deployment/misc/dp_platform.cxx
@@ -57,6 +57,7 @@
#define PLATFORM_FREEBSD_X86_64 "freebsd_x86_64"
#define PLATFORM_NETBSD_X86 "netbsd_x86"
#define PLATFORM_NETBSD_X86_64 "netbsd_x86_64"
+#define PLATFORM_MACOSX_POWERPC "macosx_powerpc"
#define PLATFORM_MACOSX_X86 "macosx_x86"
#define PLATFORM_MACOSX_X86_64 "macosx_x86_64"
#define PLATFORM_OPENBSD_X86 "openbsd_x86"
@@ -169,6 +170,8 @@ namespace
ret = checkOSandCPU("NetBSD", "x86");
else if (token == PLATFORM_NETBSD_X86_64)
ret = checkOSandCPU("NetBSD", "X86_64");
+ else if (token == PLATFORM_MACOSX_POWERPC)
+ ret = checkOSandCPU("MacOSX", "PowerPC");
else if (token == PLATFORM_MACOSX_X86)
ret = checkOSandCPU("MacOSX", "x86");
else if (token == PLATFORM_MACOSX_X86_64)
diff --git a/solenv/bin/modules/installer/download.pm b/solenv/bin/modules/installer/download.pm
index 37a9123..22bed72 100644
--- a/solenv/bin/modules/installer/download.pm
+++ b/solenv/bin/modules/installer/download.pm
@@ -584,7 +584,7 @@ sub resolve_variables_in_downloadname
elsif ( $installer::globals::issolarissparcbuild ) { $os = "solsparc"; }
elsif ( $installer::globals::issolarisx86build ) { $os = "solia"; }
elsif ( $installer::globals::islinuxbuild ) { $os = "linux"; }
- elsif ( $installer::globals::platformid eq 'macosx_x86_64' ) { $os = "macosxx"; }
+ elsif ( $installer::globals::os eq 'MACOSX' ) { $os = "macosx"; }
else { $os = ""; }
$downloadname =~ s/\{os\}/$os/;
diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm
index d32df73..f8fa66a 100644
--- a/solenv/bin/modules/installer/parameter.pm
+++ b/solenv/bin/modules/installer/parameter.pm
@@ -275,7 +275,7 @@ sub setglobalvariables
}
}
- if ( $installer::globals::platformid eq 'macosx_x86_64')
+ if ( $installer::globals::os eq 'MACOSX')
{
$installer::globals::ismacbuild = 1;
diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm
index 6d77e41..fa9b96c 100644
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -665,7 +665,7 @@ sub create_simple_package
my $extensionfolder = get_extensions_dir($subfolderdir);
installer::systemactions::remove_empty_dirs_in_folder($extensionfolder);
- if ( $installer::globals::platformid eq 'macosx_x86_64' )
+ if ( $installer::globals::os eq 'MACOSX' )
{
installer::worker::put_scpactions_into_installset("$installdir/$packagename");
}
commit effd3b8b97f504d21bd080b0345d529ab9dce506
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Wed Dec 24 10:47:02 2014 -0500
use -lobjc-gnu and GNUstep libraries when compiler is GCC
(for: vcl, apple_remote, sfx2, avmedia-quicktime, fpicker-aqua, shell-macbe1)
{note: path to GNUstep libraries is currently hard-coded}
Change-Id: Ia28778f3e262e71c87c48e71fbfd9001d5d6ac7a
diff --git a/apple_remote/Library_AppleRemote.mk b/apple_remote/Library_AppleRemote.mk
index cf48553..5d8cbfd 100644
--- a/apple_remote/Library_AppleRemote.mk
+++ b/apple_remote/Library_AppleRemote.mk
@@ -17,6 +17,10 @@ $(eval $(call gb_Library_use_system_darwin_frameworks,AppleRemote,\
IOKit \
))
+$(eval $(call gb_Library_add_libs,AppleRemote,\
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),-lobjc,-lobjc-gnu -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui) \
+))
+
$(eval $(call gb_Library_add_objcobjects,AppleRemote,\
apple_remote/source/KeyspanFrontRowControl \
apple_remote/source/AppleRemote \
diff --git a/avmedia/Library_avmediaQuickTime.mk b/avmedia/Library_avmediaQuickTime.mk
index 20bf9c3..8bc097d 100644
--- a/avmedia/Library_avmediaQuickTime.mk
+++ b/avmedia/Library_avmediaQuickTime.mk
@@ -35,6 +35,10 @@ $(eval $(call gb_Library_use_system_darwin_frameworks,avmediaQuickTime,\
QTKit \
))
+$(eval $(call gb_Library_add_libs,avmediaQuickTime,\
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),-lobjc,-lobjc-gnu -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui) \
+))
+
$(eval $(call gb_Library_add_objcxxobjects,avmediaQuickTime,\
avmedia/source/quicktime/framegrabber \
avmedia/source/quicktime/manager \
diff --git a/fpicker/Library_fps_aqua.mk b/fpicker/Library_fps_aqua.mk
index e4b7ef5..c8a2dc5 100644
--- a/fpicker/Library_fps_aqua.mk
+++ b/fpicker/Library_fps_aqua.mk
@@ -44,4 +44,8 @@ $(eval $(call gb_Library_add_objcxxobjects,fps_aqua,\
fpicker/source/aqua/SalAquaPicker \
))
+$(eval $(call gb_Library_add_libs,fps_aqua,\
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),-lobjc,-lobjc-gnu -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui) \
+))
+
# vim: set noet sw=4 ts=4:
diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
index 0a1100e..61a73c6 100644
--- a/sfx2/Library_sfx.mk
+++ b/sfx2/Library_sfx.mk
@@ -319,7 +319,7 @@ $(eval $(call gb_Library_add_objcxxobjects,sfx,\
sfx2/source/appl/shutdowniconaqua \
))
$(eval $(call gb_Library_add_libs,sfx,\
- -lobjc \
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),-lobjc,-lobjc-gnu -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui) \
))
$(eval $(call gb_Library_use_system_darwin_frameworks,sfx,\
Cocoa \
diff --git a/shell/Library_macbe.mk b/shell/Library_macbe.mk
index c693e11..5b13704 100644
--- a/shell/Library_macbe.mk
+++ b/shell/Library_macbe.mk
@@ -18,6 +18,10 @@ $(eval $(call gb_Library_use_system_darwin_frameworks,macbe1,\
SystemConfiguration \
))
+$(eval $(call gb_Library_add_libs,macbe1,\
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),-lobjc,-lobjc-gnu -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui) \
+))
+
$(eval $(call gb_Library_use_libraries,macbe1,\
cppu \
cppuhelper \
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index e8df725..64aacc8 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -89,7 +89,7 @@ $(eval $(call gb_Library_add_libs,vcl,\
-framework IOKit \
-F/System/Library/PrivateFrameworks \
-framework CoreUI \
- -lobjc \
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),-lobjc,-lobjc-gnu -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui) \
))
endif
ifeq ($(OS),MACOSX)
commit d68c78c8c1e5c728085fe0cf0d59ce63456311af
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Fri Dec 26 09:48:06 2014 -0500
lingucomponent:MacOSXSpell: switch off for OS X 10.5
Change-Id: I8f8eb6717b904aa4c231466ee7a1b873bc0035c1
diff --git a/Repository.mk b/Repository.mk
index d853577..fca5e097 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -482,7 +482,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
AppleRemote \
) \
fps_aqua \
- MacOSXSpell \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),MacOSXSpell) \
) \
))
diff --git a/lingucomponent/Module_lingucomponent.mk b/lingucomponent/Module_lingucomponent.mk
index 92d582c..68dcb78 100644
--- a/lingucomponent/Module_lingucomponent.mk
+++ b/lingucomponent/Module_lingucomponent.mk
@@ -14,7 +14,9 @@ $(eval $(call gb_Module_add_targets,lingucomponent,\
Library_guesslang \
Library_hyphen \
Library_lnth \
- $(if $(filter MACOSX,$(OS)),Library_MacOSXSpell) \
+ $(if $(filter MACOSX,$(OS)),\
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),Library_MacOSXSpell) \
+ ) \
Library_spell \
StaticLibrary_ulingu \
))
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index f23e4bf..db899fd 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -132,7 +132,7 @@ $(eval $(call gb_Rdb_add_components,services,\
$(call gb_Helper_optional,AVMEDIA,avmedia/source/quicktime/avmediaQuickTime) \
) \
) \
- lingucomponent/source/spellcheck/macosxspell/MacOSXSpell \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),lingucomponent/source/spellcheck/macosxspell/MacOSXSpell) \
fpicker/source/aqua/fps_aqua \
shell/source/backends/macbe/macbe1 \
vcl/vcl.macosx \
commit 818261d31da29a6d3722d59dd19271f894fc92be
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Thu Dec 25 16:19:29 2014 -0500
Disable OOoSpotlightImporter extension for OS X 10.5
Change-Id: I0d9c48d511094fe3a5464f6abc811c2fb33bab4e
diff --git a/Repository.mk b/Repository.mk
index f385d8e..d853577 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -201,7 +201,7 @@ endif
ifeq ($(OS),MACOSX)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE, \
- OOoSpotlightImporter \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),OOoSpotlightImporter) \
))
endif
diff --git a/extensions/Module_extensions.mk b/extensions/Module_extensions.mk
index fa527f5..c7d478c 100644
--- a/extensions/Module_extensions.mk
+++ b/extensions/Module_extensions.mk
@@ -113,9 +113,9 @@ endif # ENABLE_NPAPI_FROM_BROWSER=TRUE
ifeq ($(OS),MACOSX)
$(eval $(call gb_Module_add_targets,extensions,\
- Library_OOoSpotlightImporter \
- Package_mdibundle \
- Package_OOoSpotlightImporter \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),Library_OOoSpotlightImporter) \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),Package_mdibundle) \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),Package_OOoSpotlightImporter) \
))
endif # OS=MACOSX
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 5f31ae4..f19e822 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -582,6 +582,7 @@ End
#endif
#ifdef MACOSX
+#if MACOSX_SDK_VERSION >= 1060
File gid_File_Spotlight_Bundle
TXT_FILE_BODY;
Dir = FILELIST_DIR;
@@ -596,6 +597,7 @@ File gid_File_Spotlight_Bundle_lib
Styles = (FILELIST,USE_INTERNAL_RIGHTS);
End
#endif
+#endif
File gid_File_Images
TXT_FILE_BODY;
commit 768412f640755d13a6efe473e33ebe045d936edd
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Wed Dec 24 15:03:00 2014 -0500
avmedia: disable avmediaQuickTime for OS X 10.5
+ fix `OBJC_EXPORT is not defined' and `cannot convert to NSError**'
Change-Id: I4842a74feffe9707b031b81c7941eccac0211ce0
diff --git a/Repository.mk b/Repository.mk
index 635c487..f385d8e 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -292,7 +292,9 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
$(call gb_Helper_optional,AVMEDIA,avmedia) \
$(if $(filter MACOSX,$(OS)),\
$(if $(filter-out 1050 1060,$(MACOSX_SDK_VERSION)),avmediaMacAVF) \
- $(if $(ENABLE_MACOSX_SANDBOX),,avmediaQuickTime) \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)), \
+ $(if $(ENABLE_MACOSX_SANDBOX),,avmediaQuickTime) \
+ ) \
) \
$(call gb_Helper_optional,SCRIPTING, \
basctl \
diff --git a/avmedia/Module_avmedia.mk b/avmedia/Module_avmedia.mk
index 27b588d..f2eecc3 100644
--- a/avmedia/Module_avmedia.mk
+++ b/avmedia/Module_avmedia.mk
@@ -36,12 +36,14 @@ $(eval $(call gb_Module_add_targets,avmedia,\
endif
ifeq ($(OS),MACOSX)
+ifneq (1050,$(MACOSX_SDK_VERSION))
ifneq ($(ENABLE_MACOSX_SANDBOX),TRUE)
$(eval $(call gb_Module_add_targets,avmedia,\
Library_avmediaQuickTime \
))
endif
endif
+endif
ifeq ($(OS),MACOSX)
ifneq (1050,$(MACOSX_SDK_VERSION))
diff --git a/avmedia/source/quicktime/framegrabber.mm b/avmedia/source/quicktime/framegrabber.mm
index 5a92e79..c1e0e1c 100644
--- a/avmedia/source/quicktime/framegrabber.mm
+++ b/avmedia/source/quicktime/framegrabber.mm
@@ -74,7 +74,7 @@ bool FrameGrabber::create( const ::rtl::OUString& rURL )
// create the Movie
- mpMovie = [mpMovie initWithURL:aURL error:nil];
+ mpMovie = [mpMovie initWithURL:aURL error:reinterpret_cast<NSError **>(nil)];
if(mpMovie)
{
[mpMovie retain];
diff --git a/avmedia/source/quicktime/quicktimecommon.hxx b/avmedia/source/quicktime/quicktimecommon.hxx
index 8c1711d..b01a21e 100644
--- a/avmedia/source/quicktime/quicktimecommon.hxx
+++ b/avmedia/source/quicktime/quicktimecommon.hxx
@@ -21,6 +21,9 @@
#define INCLUDED_AVMEDIA_SOURCE_QUICKTIME_QUICKTIMECOMMON_HXX
#ifdef MACOSX
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <premac.h>
#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index adaef73..f23e4bf 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -128,7 +128,9 @@ $(eval $(call gb_Rdb_add_components,services,\
$(call gb_Helper_optional,AVMEDIA,avmedia/source/macavf/avmediaMacAVF) \
) \
$(if $(filter TRUE,$(ENABLE_MACOSX_SANDBOX)),, \
- $(call gb_Helper_optional,AVMEDIA,avmedia/source/quicktime/avmediaQuickTime) \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)), \
+ $(call gb_Helper_optional,AVMEDIA,avmedia/source/quicktime/avmediaQuickTime) \
+ ) \
) \
lingucomponent/source/spellcheck/macosxspell/MacOSXSpell \
fpicker/source/aqua/fps_aqua \
commit b18204a545afaf60636a8a0fab9feab070ce0671
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Thu Dec 25 11:01:26 2014 -0500
disable OpenCL (and glew) on OS X 10.5
Change-Id: I6d3fdcca15b3c5191851feea33434b9b5df7b26f
diff --git a/configure.ac b/configure.ac
index 894ce62..b6233f7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10221,11 +10221,15 @@ dnl =================================================
dnl Check whether to build with OpenCL support.
dnl =================================================
-if test $_os != iOS -a $_os != Android; then
+if test "$_os" = "Darwin" -a "$with_macosx_sdk" = "10.5"; then
+ HAVE_FEATURE_OPENCL=
+else
+ if test $_os != iOS -a $_os != Android; then
# OPENCL in BUILD_TYPE tells that OpenCL is potentially available on the platform (optional at run-time,
# used through clew).
BUILD_TYPE="$BUILD_TYPE OPENCL"
AC_DEFINE(HAVE_FEATURE_OPENCL)
+ fi
fi
dnl ===================================================================
commit 3bc67c8fc2d3e648b32c679a20a812f9e6bce0e2
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Fri Dec 26 08:59:41 2014 -0500
fpicker:aqua - deal with OBJC_EXPORT and objc_msgSend
Change-Id: I414f5dcbfca9697b22a20d2d45f94c91ec4cd691
diff --git a/fpicker/source/aqua/CFStringUtilities.hxx b/fpicker/source/aqua/CFStringUtilities.hxx
index 58d0951..7429acb 100644
--- a/fpicker/source/aqua/CFStringUtilities.hxx
+++ b/fpicker/source/aqua/CFStringUtilities.hxx
@@ -21,6 +21,9 @@
#define INCLUDED_FPICKER_SOURCE_AQUA_CFSTRINGUTILITIES_HXX
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Carbon/Carbon.h>
#include <Cocoa/Cocoa.h>
#include <postmac.h>
diff --git a/fpicker/source/aqua/ControlHelper.hxx b/fpicker/source/aqua/ControlHelper.hxx
index 1e2a774..071955b 100644
--- a/fpicker/source/aqua/ControlHelper.hxx
+++ b/fpicker/source/aqua/ControlHelper.hxx
@@ -27,6 +27,9 @@
#include <map>
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include <postmac.h>
#include "SalAquaConstants.h"
diff --git a/fpicker/source/aqua/NSString_OOoAdditions.hxx b/fpicker/source/aqua/NSString_OOoAdditions.hxx
index 08bfbd4..62b824f 100644
--- a/fpicker/source/aqua/NSString_OOoAdditions.hxx
+++ b/fpicker/source/aqua/NSString_OOoAdditions.hxx
@@ -21,6 +21,9 @@
#define INCLUDED_FPICKER_SOURCE_AQUA_NSSTRING_OOOADDITIONS_HXX
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#include <postmac.h>
#include <rtl/ustring.hxx>
diff --git a/fpicker/source/aqua/SalAquaFilePicker.mm b/fpicker/source/aqua/SalAquaFilePicker.mm
index 86d1da3..cf5a818 100644
--- a/fpicker/source/aqua/SalAquaFilePicker.mm
+++ b/fpicker/source/aqua/SalAquaFilePicker.mm
@@ -204,12 +204,13 @@ sal_Int16 SAL_CALL SalAquaFilePicker::execute() throw( uno::RuntimeException )
//Set the delegate to be notified of certain events
- // I don't know why, but with gcc 4.2.1, this line results in the warning:
+#if MACOSX_SDK_VERSION < 1060
+ [m_pDialog setDelegate:m_pDelegate];
+#else
+ // with gcc 4.2.1, [m_pDialog setDelegate:m_pDelegate] results in the warning
// class 'AquaFilePickerDelegate' does not implement the 'NSOpenSavePanelDelegate' protocol
- // So instead of:
- // [m_pDialog setDelegate:m_pDelegate];
- // do:
objc_msgSend(m_pDialog, @selector(setDelegate:), m_pDelegate);
+#endif
int nStatus = runandwaitforresult();
diff --git a/fpicker/source/aqua/resourceprovider.hxx b/fpicker/source/aqua/resourceprovider.hxx
index fd6647e..e736801 100644
--- a/fpicker/source/aqua/resourceprovider.hxx
+++ b/fpicker/source/aqua/resourceprovider.hxx
@@ -23,6 +23,10 @@
#include <sal/types.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
+
#include <premac.h>
#include <Cocoa/Cocoa.h>
#include <postmac.h>
commit b58c782ae766d311b302bf43b144547a21bfd3d3
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Wed Dec 24 12:59:04 2014 -0500
sfx2:shutdowniconaqua.mm: deal with OBJC_EXPORT and objc_msgSend
Change-Id: I7ad0ce3067d8f51d968d4233f77d70300d0d913e
diff --git a/sfx2/source/appl/shutdowniconaqua.mm b/sfx2/source/appl/shutdowniconaqua.mm
index d69a207..9cc6921 100644
--- a/sfx2/source/appl/shutdowniconaqua.mm
+++ b/sfx2/source/appl/shutdowniconaqua.mm
@@ -41,6 +41,9 @@
#include "premac.h"
#include <objc/objc-runtime.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
@@ -352,15 +355,13 @@ static void appendRecentMenu( NSMenu* i_pMenu, NSMenu* i_pDockMenu, const OUStri
[pItem setEnabled: YES];
NSMenu* pRecentMenu = [[NSMenu alloc] initWithTitle: getAutoreleasedString( i_rTitle ) ];
+#if MACOSX_SDK_VERSION < 1060
+ [pRecentMenu setDelegate: pRecentDelegate];
+#else
// When compiling against 10.6 SDK, we get the warning:
// class 'RecentMenuDelegate' does not implement the 'NSMenuDelegate' protocol
-
- // No idea if that is a bogus warning, or if the way this is
- // implemented just is so weird that the compiler gets
- // confused. Anyway, to avoid warnings, instead of this:
- // [pRecentMenu setDelegate: pRecentDelegate];
- // do this:
objc_msgSend(pRecentMenu, @selector(setDelegate:), pRecentDelegate);
+#endif
[pRecentMenu setAutoenablesItems: NO];
[pItem setSubmenu: pRecentMenu];
@@ -375,9 +376,11 @@ static void appendRecentMenu( NSMenu* i_pMenu, NSMenu* i_pDockMenu, const OUStri
[pItem setEnabled: YES];
pRecentMenu = [[NSMenu alloc] initWithTitle: getAutoreleasedString( i_rTitle ) ];
- // See above
- // [pRecentMenu setDelegate: pRecentDelegate];
+#if MACOSX_SDK_VERSION < 1060
+ [pRecentMenu setDelegate: pRecentDelegate];
+#else
objc_msgSend(pRecentMenu, @selector(setDelegate:), pRecentDelegate);
+#endif
[pRecentMenu setAutoenablesItems: NO];
[pItem setSubmenu: pRecentMenu];
commit b308469e72464f486c4788dd5df2acb8eaec42fd
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sat Oct 25 11:03:56 2014 -0400
vcl: workarounds for `objc_msgSend setDelegate' on OS X 10.5
(vcl/osx/salframe.cxx, vcl/osx/salmenu.cxx)
plus, move conditional includes in salframe.cxx down a bit
Change-Id: I39886b4590f227ec69042fed0f5240ba0b0fd7f2
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 2be51bf..44c427a 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -37,11 +37,6 @@
#include "osx/a11yfactory.h"
#include "quartz/utils.h"
-#if MACOSX_SDK_VERSION < 1060
-#include "vcl/timer.hxx"
-#include "osx/saltimer.h"
-#endif
-
#include "salwtype.hxx"
#include "premac.h"
@@ -54,6 +49,11 @@
#include <Carbon/Carbon.h>
#include "postmac.h"
+#if MACOSX_SDK_VERSION < 1060
+#include "vcl/timer.hxx"
+#include "osx/saltimer.h"
+#endif
+
using namespace std;
AquaSalFrame* AquaSalFrame::s_pCaptureFrame = NULL;
@@ -201,16 +201,16 @@ void AquaSalFrame::initWindowAndView()
[mpNSWindow setAcceptsMouseMovedEvents: YES];
[mpNSWindow setHasShadow: YES];
-#if MACOSX_SDK_VERSION < 1060
- objc_msgSend(mpNSWindow, @selector(setDelegate:), mpNSWindow);
-#else
+#if MACOSX_SDK_VERSION >= 1060
+ /* objc_msgSend(mpNSWindow, @selector(setDelegate:), mpNSWindow); */
[mpNSWindow setDelegate: static_cast<id<NSWindowDelegate> >(mpNSWindow)];
-#endif
if( [mpNSWindow respondsToSelector: @selector(setRestorable:)])
{
objc_msgSend(mpNSWindow, @selector(setRestorable:), NO);
}
+#endif
+
const NSRect aRect = { NSZeroPoint, NSMakeSize( maGeometry.nWidth, maGeometry.nHeight )};
mnTrackingRectTag = [mpNSView addTrackingRect: aRect owner: mpNSView userData: nil assumeInside: NO];
diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index b6c68ee..e6941ba 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -246,9 +246,8 @@ AquaSalMenu::AquaSalMenu( bool bMenuBar ) :
if( ! mbMenuBar )
{
mpMenu = [[SalNSMenu alloc] initWithMenu: this];
-#if MACOSX_SDK_VERSION < 1060
- objc_msgSend(mpMenu, @selector(setDelegate:), mpMenu);
-#else
+#if MACOSX_SDK_VERSION >= 1060
+ /* objc_msgSend(mpMenu, @selector(setDelegate:), mpMenu); */
[mpMenu setDelegate: (id<NSMenuDelegate>)mpMenu];
#endif
}
commit 8e341db679fd2ff6ff2f435b99276aa8d8d584f2
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sun Oct 26 06:38:10 2014 -0400
vcl: fix some "cannot convert 'objc_object*' to..." issues
Change-Id: I4b0e32c412937da4b2ea4bf350be32ea31362b3c
diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index 27be98d..1f98db1 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -482,7 +482,7 @@ static AquaSalFrame* getMouseContainerFrame()
mpFrame = pFrame;
mMarkedRange = NSMakeRange(NSNotFound, 0);
mSelectedRange = NSMakeRange(NSNotFound, 0);
- mpReferenceWrapper = nil;
+ mpReferenceWrapper = reinterpret_cast<ReferenceWrapper*>(nil);
mpMouseEventListener = nil;
mpLastSuperEvent = nil;
}
@@ -1788,7 +1788,7 @@ private:
// some frames never become visible ..
::vcl::Window *pWindow = mpFrame -> GetWindow();
if ( ! pWindow )
- return nil;
+ return reinterpret_cast<::com::sun::star::accessibility::XAccessibleContext*>(nil);
mpReferenceWrapper = new ReferenceWrapper;
mpReferenceWrapper -> rAccessibleContext = pWindow -> /*GetAccessibleChildWindow( 0 ) ->*/ GetAccessible() -> getAccessibleContext();
diff --git a/vcl/osx/salnativewidgets.cxx b/vcl/osx/salnativewidgets.cxx
index 41b749a..08caf0c 100644
--- a/vcl/osx/salnativewidgets.cxx
+++ b/vcl/osx/salnativewidgets.cxx
@@ -558,7 +558,7 @@ bool AquaSalGraphics::drawNativeControl(ControlType nType,
[NSNumber numberWithBool:NO], @"kCUIWindowFrameDrawTitleSeparatorKey",
[NSNumber numberWithBool:YES], @"is.flipped",
nil]),
- nil);;
+ reinterpret_cast<const __CFDictionary**>(nil));;
}
else
{
commit 6738362a4a8a0b0b20ee433329a0dde68193bebe
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Tue Oct 28 13:18:59 2014 -0400
fix "trying to encode non-integer type as a bitfield"
this problem arises when you compile with GCC
(GNU objective-C mode)
Change-Id: Ifa4ff252ae5a7b71320d41873a2c412a32dd0333
diff --git a/vcl/inc/osx/salframe.h b/vcl/inc/osx/salframe.h
index fc7bb34..624e67a 100644
--- a/vcl/inc/osx/salframe.h
+++ b/vcl/inc/osx/salframe.h
@@ -62,13 +62,13 @@ public:
int mnMaxWidth; // max. client width in pixels
int mnMaxHeight; // max. client height in pixels
NSRect maFullScreenRect; // old window size when in FullScreen
- bool mbGraphics:1; // is Graphics used?
- bool mbFullScreen:1; // is Window in FullScreen?
- bool mbShown:1;
- bool mbInitShow:1;
- bool mbPositioned:1;
- bool mbSized:1;
- bool mbPresentation:1;
+ int mbGraphics:1; // is Graphics used?
+ int mbFullScreen:1; // is Window in FullScreen?
+ int mbShown:1;
+ int mbInitShow:1;
+ int mbPositioned:1;
+ int mbSized:1;
+ int mbPresentation:1;
sal_uLong mnStyle;
unsigned int mnStyleMask; // our style mask from NSWindow creation
commit 163c6d9225115acaae6dea472ae066b8c004cefa
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sun Oct 26 03:17:10 2014 -0400
vcl, apple_remote, toolkit: fix "OBJC_EXPORT is not defined"
( include <objc/objc-api.h> )
Change-Id: Idcbfff670fb9d83e950e7eac60000ef3e0130f95
diff --git a/apple_remote/source/AppleRemote.h b/apple_remote/source/AppleRemote.h
index f80431b..a5da1b9 100644
--- a/apple_remote/source/AppleRemote.h
+++ b/apple_remote/source/AppleRemote.h
@@ -29,6 +29,9 @@
*
*****************************************************************************/
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#import "HIDRemoteControlDevice.h"
diff --git a/apple_remote/source/KeyspanFrontRowControl.h b/apple_remote/source/KeyspanFrontRowControl.h
index c75e86b..fa527bb 100644
--- a/apple_remote/source/KeyspanFrontRowControl.h
+++ b/apple_remote/source/KeyspanFrontRowControl.h
@@ -29,6 +29,9 @@
*
*****************************************************************************/
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#import "HIDRemoteControlDevice.h"
diff --git a/include/apple_remote/RemoteControl.h b/include/apple_remote/RemoteControl.h
index 04fab5a..589cfd9 100644
--- a/include/apple_remote/RemoteControl.h
+++ b/include/apple_remote/RemoteControl.h
@@ -31,6 +31,9 @@
#include <sal/config.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#include <sal/types.h>
diff --git a/include/apple_remote/RemoteMainController.h b/include/apple_remote/RemoteMainController.h
index c4ee0ac..158ba6d 100644
--- a/include/apple_remote/RemoteMainController.h
+++ b/include/apple_remote/RemoteMainController.h
@@ -31,6 +31,9 @@
#include <sal/config.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#include <sal/types.h>
diff --git a/toolkit/source/awt/vclxsystemdependentwindow.cxx b/toolkit/source/awt/vclxsystemdependentwindow.cxx
index 1ee5600..7e6d93f 100644
--- a/toolkit/source/awt/vclxsystemdependentwindow.cxx
+++ b/toolkit/source/awt/vclxsystemdependentwindow.cxx
@@ -30,6 +30,9 @@
#ifdef MACOSX
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
#endif
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index 38b55027..12adf3a 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -60,6 +60,9 @@
#ifdef MACOSX
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
#endif
diff --git a/toolkit/source/awt/vclxtopwindow.cxx b/toolkit/source/awt/vclxtopwindow.cxx
index 48b593e..8cf52b1 100644
--- a/toolkit/source/awt/vclxtopwindow.cxx
+++ b/toolkit/source/awt/vclxtopwindow.cxx
@@ -22,6 +22,9 @@
#if defined ( MACOSX )
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
#endif
diff --git a/toolkit/source/awt/vclxwindow1.cxx b/toolkit/source/awt/vclxwindow1.cxx
index 46b2e72..f2cc331 100644
--- a/toolkit/source/awt/vclxwindow1.cxx
+++ b/toolkit/source/awt/vclxwindow1.cxx
@@ -28,6 +28,9 @@
#include <postwin.h>
#elif defined ( MACOSX )
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
#endif
diff --git a/vcl/inc/OpenGLWrapper.hxx b/vcl/inc/OpenGLWrapper.hxx
index 0b90b41..d09a611 100644
--- a/vcl/inc/OpenGLWrapper.hxx
+++ b/vcl/inc/OpenGLWrapper.hxx
@@ -7,6 +7,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
+
#include "AppKit/NSOpenGLView.h"
#include "AppKit/NSOpenGL.h"
diff --git a/vcl/inc/osx/a11yfactory.h b/vcl/inc/osx/a11yfactory.h
index c739f3e..4e92126 100644
--- a/vcl/inc/osx/a11yfactory.h
+++ b/vcl/inc/osx/a11yfactory.h
@@ -20,6 +20,10 @@
#ifndef INCLUDED_VCL_INC_OSX_A11YFACTORY_H
#define INCLUDED_VCL_INC_OSX_A11YFACTORY_H
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
+
#include "osxvcltypes.h"
#include "a11ywrapper.h"
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
diff --git a/vcl/inc/osx/osxvcltypes.h b/vcl/inc/osx/osxvcltypes.h
index f1659c4..96edccc 100644
--- a/vcl/inc/osx/osxvcltypes.h
+++ b/vcl/inc/osx/osxvcltypes.h
@@ -21,6 +21,9 @@
#define INCLUDED_VCL_INC_OSX_OSXVCLTYPES_H
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#import <AppKit/NSEvent.h>
#include "postmac.h"
diff --git a/vcl/inc/osx/printview.h b/vcl/inc/osx/printview.h
index e396bd8..b63900b 100644
--- a/vcl/inc/osx/printview.h
+++ b/vcl/inc/osx/printview.h
@@ -21,6 +21,9 @@
#define INCLUDED_VCL_INC_OSX_PRINTVIEW_H
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
diff --git a/vcl/inc/osx/saldata.hxx b/vcl/inc/osx/saldata.hxx
index babb1b4..4b9b1b3 100644
--- a/vcl/inc/osx/saldata.hxx
+++ b/vcl/inc/osx/saldata.hxx
@@ -23,6 +23,9 @@
#include <config_features.h>
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
diff --git a/vcl/inc/osx/salinst.h b/vcl/inc/osx/salinst.h
index b37035c..4f6697c 100644
--- a/vcl/inc/osx/salinst.h
+++ b/vcl/inc/osx/salinst.h
@@ -25,6 +25,9 @@
#include "osl/conditn.h"
#ifdef MACOSX
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include "osx/osxvcltypes.h"
#endif
diff --git a/vcl/inc/osx/saltimer.h b/vcl/inc/osx/saltimer.h
index b751a81..e663c65 100644
--- a/vcl/inc/osx/saltimer.h
+++ b/vcl/inc/osx/saltimer.h
@@ -21,6 +21,9 @@
#define INCLUDED_VCL_INC_OSX_SALTIMER_H
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include "postmac.h"
diff --git a/vcl/inc/osx/vclnsapp.h b/vcl/inc/osx/vclnsapp.h
index 541b509..675cacc 100644
--- a/vcl/inc/osx/vclnsapp.h
+++ b/vcl/inc/osx/vclnsapp.h
@@ -23,6 +23,9 @@
#include <config_features.h>
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include "Cocoa/Cocoa.h"
#include "postmac.h"
diff --git a/vcl/inc/quartz/utils.h b/vcl/inc/quartz/utils.h
index e408250..ac264ec 100644
--- a/vcl/inc/quartz/utils.h
+++ b/vcl/inc/quartz/utils.h
@@ -23,6 +23,9 @@
#include <iostream>
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <CoreFoundation/CoreFoundation.h>
#include <Foundation/Foundation.h>
#ifdef MACOSX
diff --git a/vcl/osx/DataFlavorMapping.cxx b/vcl/osx/DataFlavorMapping.cxx
index 26e8885..e921c96 100644
--- a/vcl/osx/DataFlavorMapping.cxx
+++ b/vcl/osx/DataFlavorMapping.cxx
@@ -36,6 +36,9 @@
#include <string.h>
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Cocoa/Cocoa.h>
#include <postmac.h>
diff --git a/vcl/osx/DataFlavorMapping.hxx b/vcl/osx/DataFlavorMapping.hxx
index 1917aeb..3de9feb 100644
--- a/vcl/osx/DataFlavorMapping.hxx
+++ b/vcl/osx/DataFlavorMapping.hxx
@@ -26,6 +26,9 @@
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#include <postmac.h>
diff --git a/vcl/osx/DragActionConversion.hxx b/vcl/osx/DragActionConversion.hxx
index fbb5ea3..b77047d 100644
--- a/vcl/osx/DragActionConversion.hxx
+++ b/vcl/osx/DragActionConversion.hxx
@@ -23,6 +23,9 @@
#include <sal/types.h>
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#include <postmac.h>
diff --git a/vcl/osx/DragSource.hxx b/vcl/osx/DragSource.hxx
index 491716d..403ed51 100644
--- a/vcl/osx/DragSource.hxx
+++ b/vcl/osx/DragSource.hxx
@@ -33,6 +33,9 @@
#include <boost/utility.hpp>
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#import <Cocoa/Cocoa.h>
#include <postmac.h>
diff --git a/vcl/osx/PictToBmpFlt.cxx b/vcl/osx/PictToBmpFlt.cxx
index 77c67a6..097050e 100644
--- a/vcl/osx/PictToBmpFlt.cxx
+++ b/vcl/osx/PictToBmpFlt.cxx
@@ -18,6 +18,9 @@
*/
#include <premac.h>
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Carbon/Carbon.h>
#include <QuickTime/QuickTime.h>
#include <postmac.h>
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 31dac7b..2be51bf 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -45,6 +45,9 @@
#include "salwtype.hxx"
#include "premac.h"
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <objc/objc-runtime.h>
// needed for theming
// FIXME: move theming code to salnativewidgets.cxx
commit 81ab4f14a29e936d9ae485720dd13e4fe104ad36
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Wed Oct 8 10:38:28 2014 -0400
Use GNU objc ABI/runtime instead of NeXT ABI/runtime when compiler is GCC
also,
+ fix "cannot find interface declaration for NXConstantString"
+ sal/osl/unx/system.h: include <objc/objc-api.h> when OBJC_EXPORT
is not defined
Change-Id: I5f0df322435be8244d372642dee1c21d783306f1
diff --git a/sal/osl/unx/system.hxx b/sal/osl/unx/system.hxx
index 3013e91..56eeb03 100644
--- a/sal/osl/unx/system.hxx
+++ b/sal/osl/unx/system.hxx
@@ -215,6 +215,9 @@
#ifdef MACOSX
#define __OPENTRANSPORTPROVIDERS__ // these are already defined
#define TimeValue CFTimeValue // Do not conflict with TimeValue in sal/inc/osl/time.h
+#ifndef OBJC_EXPORT
+#include <objc/objc-api.h>
+#endif
#include <Carbon/Carbon.h>
#undef TimeValue
# ifndef ETIME
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 53e0a6c..36fab9e 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -58,9 +58,21 @@ gb_CXXFLAGS := \
# these are to get g++ to switch to Objective-C++ mode
# (see toolkit module for a case where it is necessary to do it this way)
-gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions
-
-gb_OBJCFLAGS := -x objective-c -fobjc-exceptions
+gb_OBJCXXFLAGS := \
+ -x objective-c++ \
+ -fobjc-exceptions \
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),,\
+ -fgnu-runtime \
+ -fconstant-string-class=NSConstantString \
+ )
+
+gb_OBJCFLAGS := \
+ -x objective-c \
+ -fobjc-exceptions \
+ $(if $(filter TRUE,$(COM_GCC_IS_CLANG)),,\
+ -fgnu-runtime \
+ -fconstant-string-class=NSConstantString \
+ )
# LinkTarget class
commit 6ab29fb6ff84fed60f9c9e9c2856a320a3cd87ef
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Tue Nov 4 12:21:54 2014 -0500
sd/source/ui/remotecontrol: there're not only OS X >=10.8
related commit: 8bfc9a20ccea2689fec1ffe0654db1f95179bd4f
Change-Id: I9862aecc02a9cfb8f4db97159f1bd4560eff1cef
diff --git a/sd/source/ui/remotecontrol/BluetoothServer.cxx b/sd/source/ui/remotecontrol/BluetoothServer.cxx
index e04392d..a07df2f 100644
--- a/sd/source/ui/remotecontrol/BluetoothServer.cxx
+++ b/sd/source/ui/remotecontrol/BluetoothServer.cxx
@@ -42,7 +42,7 @@
#ifdef MACOSX
#include <osl/conditn.hxx>
#include <premac.h>
- #if MACOSX_SDK_VERSION == 1080
+ #if MACOSX_SDK_VERSION >= 1070
#import <IOBluetooth/IOBluetooth.h>
#else
#import <CoreFoundation/CoreFoundation.h>
commit 4b00a648469dc082044efb2578d5cef4a01a836e
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Fri Oct 31 13:40:18 2014 -0400
vlc: use OpenGL "2.1 legacy context" for OS X versions < 10.7
``With Mac OS X 10.7 Lion OpenGL 3.2 support was added. Till then
only OpenGL 2.1 was available.''
related commit: 8b384c946cb6725d691123152f5e7c6ac0692185
diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx
index 3016373..00a4993 100644
--- a/vcl/osx/salinst.cxx
+++ b/vcl/osx/salinst.cxx
@@ -766,7 +766,13 @@ SalObject* AquaSalInstance::CreateObject( SalFrame* pParent, SystemWindowData* p
AquaSalObject *pObject = NULL;
if ( pParent )
+ {
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+ if (pWindowData && pWindowData->bOpenGL)
+ pWindowData->bLegacy = true;
+#endif
pObject = new AquaSalObject( static_cast<AquaSalFrame*>(pParent), pWindowData );
+ }
return pObject;
}
diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx
index 58e2c64..4657d52 100644
--- a/vcl/osx/salobj.cxx
+++ b/vcl/osx/salobj.cxx
@@ -66,6 +66,7 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat
};
pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:aAttributes];
}
+#if defined(MACOSX) && MACOSX_SDK_VERSION >= 1070
else
{
NSOpenGLPixelFormatAttribute aAttributes[] =
@@ -81,6 +82,7 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat
};
pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:aAttributes];
}
+#endif
maSysData.mpNSView = [[NSOpenGLView alloc] initWithFrame: aInitFrame pixelFormat:pixFormat];
}
diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx
index 9d681ff..317c133 100644
--- a/vcl/source/opengl/OpenGLContext.cxx
+++ b/vcl/source/opengl/OpenGLContext.cxx
@@ -56,7 +56,11 @@ OpenGLContext::OpenGLContext():
m_pChildWindow(NULL),
mbInitialized(false),
mnRefCount(1),
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+ mbRequestLegacyContext(true),
+#else
mbRequestLegacyContext(false),
+#endif
mbUseDoubleBufferedRendering(true),
mbRequestVirtualDevice(false),
mnFramebufferCount(0),
@@ -1021,7 +1025,11 @@ bool OpenGLContext::initWindow()
{
if( !m_pChildWindow )
{
- SystemWindowData winData = generateWinData(mpWindow, false);
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+ SystemWindowData winData = generateWinData(mpWindow, /* bLegacy */ true);
+#else
+ SystemWindowData winData = generateWinData(mpWindow, /* bLegacy */ false);
+#endif
m_pChildWindow = new SystemChildWindow(mpWindow, 0, &winData, false);
m_pChildWindowGC.reset(m_pChildWindow);
}
commit 546d7099565a4a9f297cbf656d15372f8da9ea2f
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Wed Dec 24 03:42:47 2014 -0500
don't add -fvisibility=hidden to gb_VISIBILITY_FLAGS
Change-Id: I4353d36f4ab4941441e384aeac0ca7a3d2c9bdd8
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
index 7acd068..9d78293 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -86,11 +86,8 @@ endif
ifeq ($(HAVE_GCC_VISIBILITY_FEATURE),TRUE)
+# note: don't add -fvisibility=hidden to flags
gb_VISIBILITY_FLAGS := -DHAVE_GCC_VISIBILITY_FEATURE
-# If CC or CXX already include -fvisibility=hidden, don't duplicate it
-ifeq (,$(filter -fvisibility=hidden,$(CC)))
-gb_VISIBILITY_FLAGS += -fvisibility=hidden
-endif
ifneq ($(HAVE_GCC_VISIBILITY_BROKEN),TRUE)
gb_CXXFLAGS_COMMON += -fvisibility-inlines-hidden
endif
commit 32a5fd2c238a1594cdfd93f968171cd4f9eee5cf
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Wed Dec 24 07:19:21 2014 -0500
add NS_BUILD_32_LIKE_64 definition to build line flags (gb_OSDEFS)
For example, it makes NSRect to be the same as CGRect.
(see NSGeometry.h)
Change-Id: I182703b3ab5e0791c0a092f51a0151d1dfa8fe6a
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 31bc6f8..53e0a6c 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -35,6 +35,7 @@ gb_OSDEFS := \
-D_REENTRANT \
-DNO_PTHREAD_PRIORITY \
-DMACOSX_SDK_VERSION=$(MACOSX_SDK_VERSION) \
+ -DNS_BUILD_32_LIKE_64 \
$(EXTRA_CDEFS) \
commit 89565458bdb09d14b64f325383b6bfe1675e5b72
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sat Oct 25 11:05:30 2014 -0400
Don't assume that /usr/bin/mktemp is always a BSD mktemp on OSX, add backup for GNU mktemp
Change-Id: Ifb119dd13062593cba5aa3cb1dacc54194339544
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 6a981d3..31bc6f8 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -24,8 +24,8 @@ gb_SDKDIR := $(MACOSX_SDK_PATH)
include $(GBUILDDIR)/platform/com_GCC_defs.mk
-# Darwin mktemp -t expects a prefix, not a pattern
-gb_MKTEMP ?= /usr/bin/mktemp -t gbuild.
+# Note that BSD mktemp -t expects a prefix, not a pattern; if it fails, assume GNU syntax
+gb_MKTEMP ?= /usr/bin/mktemp -t gbuild. 2>/dev/null || mktemp -t gbuild.XXXXXX
gb_OSDEFS := \
-D$(OS) \
commit 3a592762c931026bc72c14ea371b1767e53024e7
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sun Nov 2 12:39:47 2014 -0500
provide universal implementation for aligned memory allocation
use posix_memalign only if it's available; if not, try memalign first
don't blindly guess their availability by platform
(with an exception for Android)
introduce HAVE_MEMALIGN and HAVE_POSIX_MEMALIGN
Note that posix_memalign is not available everywhere
(as are its replacements like memalign). For example,
Darwin/OSX < 10.6 has neither posix_memalign or memalign.
Change-Id: I0cb3b14e1f2d94d4aa02b40c36d353c2b7a78dba
diff --git a/config_host.mk.in b/config_host.mk.in
index cae8d37..4deb18e 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -256,6 +256,8 @@ export HAVE_LD_BSYMBOLIC_FUNCTIONS=@HAVE_LD_BSYMBOLIC_FUNCTIONS@
export HAVE_LD_HASH_STYLE=@HAVE_LD_HASH_STYLE@
export HAVE_NON_CONST_NPP_GETMIMEDESCRIPTION=@HAVE_NON_CONST_NPP_GETMIMEDESCRIPTION@
export HAVE_POSIX_FALLOCATE=@HAVE_POSIX_FALLOCATE@
+export HAVE_POSIX_MEMALIGN=@HAVE_POSIX_MEMALIGN@
+export HAVE_MEMALIGN=@HAVE_MEMALIGN@
export HAVE_THREADSAFE_STATICS=@HAVE_THREADSAFE_STATICS@
export HELP_COMMON_ONLY=@HELP_COMMON_ONLY@
export HOST_PLATFORM=@host@
diff --git a/configure.ac b/configure.ac
index 2ba18d9..894ce62 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4511,6 +4511,14 @@ AC_SUBST(SDKDIRNAME_FOR_BUILD)
AC_SUBST(WORKDIR_FOR_BUILD)
dnl ===================================================================
+dnl Check for availability of posix_memalign and memalign
+dnl ===================================================================
+AC_CHECK_FUNC([posix_memalign], [HAVE_POSIX_MEMALIGN=YES], [HAVE_POSIX_MEMALIGN=NO])
+AC_CHECK_FUNC([memalign], [HAVE_MEMALIGN=YES], [HAVE_MEMALIGN=NO])
+AC_SUBST(HAVE_POSIX_MEMALIGN)
+AC_SUBST(HAVE_MEMALIGN)
+
+dnl ===================================================================
dnl Check for syslog header
dnl ===================================================================
AC_CHECK_HEADER(syslog.h, AC_DEFINE(HAVE_SYSLOG_H))
diff --git a/sal/Library_sal.mk b/sal/Library_sal.mk
index 833ba6d..175587c 100644
--- a/sal/Library_sal.mk
+++ b/sal/Library_sal.mk
@@ -19,6 +19,13 @@ $(eval $(call gb_Library_set_include,sal,\
-I$(SRCDIR)/sal/inc \
))
+ifeq ($(HAVE_POSIX_MEMALIGN),YES)
+$(eval $(call gb_Library_add_defs,sal,-DHAVE_POSIX_MEMALIGN))
+endif
+ifeq ($(HAVE_MEMALIGN),YES)
+$(eval $(call gb_Library_add_defs,sal,-DHAVE_MEMALIGN))
+endif
+
$(eval $(call gb_Library_add_defs,sal,\
$(if $(filter $(ALLOC),SYS_ALLOC TCMALLOC JEMALLOC)$(filter-out X$(ENABLE_RUNTIME_OPTIMIZATIONS),XTRUE), \
-DFORCE_SYSALLOC \
diff --git a/sal/osl/unx/memory.cxx b/sal/osl/unx/memory.cxx
index e9fb9a8..4d60581 100644
--- a/sal/osl/unx/memory.cxx
+++ b/sal/osl/unx/memory.cxx
@@ -10,8 +10,12 @@
#include <internal/oslmemory.h>
#include <stdlib.h>
+
#ifdef __ANDROID__
#include <malloc.h>
+#ifndef HAVE_MEMALIGN
+#define HAVE_MEMALIGN 1 /* for Android, we are really sure about memalign */
+#endif
#endif
void* osl_aligned_alloc( sal_Size align, sal_Size size )
@@ -22,19 +26,30 @@ void* osl_aligned_alloc( sal_Size align, sal_Size size )
}
else
{
-#if defined __ANDROID__
- return memalign(align, size);
-#else
+#if defined(HAVE_POSIX_MEMALIGN)
void* ptr;
int err = posix_memalign(&ptr, align, size);
return err ? NULL : ptr;
+#elif defined(HAVE_MEMALIGN)
+ return memalign(align, size);
+#else
+ void* ptr = malloc(size + (align - 1) + sizeof(void*));
+ if (!ptr) return NULL;
+ char* aptr = ((char*)ptr) + sizeof(void*);
+ aptr += (align - ((size_t)aptr & (align - 1))) & (align - 1);
+ ((void**)aptr)[-1] = ptr;
+ return aptr;
#endif
}
}
void osl_aligned_free( void* p )
{
+#if defined(HAVE_POSIX_MEMALIGN) || defined(HAVE_MEMALIGN)
free(p);
+#else
+ free(((void**)p)[-1]);
+#endif
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 107b09aa8bf66b7457ea48929e28fb1379109c41
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sun Oct 5 18:02:00 2014 -0400
vcl: restore other bits of pre-10.8 conditional code
related commits:
4fa8282816cb39692678e9da6b6693e821a3039b
ec147012340219c8bb5eaf8fe3d41be7836bc261
16996c6b91b53e3c7d316296833bdb8a9cb60c22
Change-Id: Ie8962f8d26f163eed91fdf6b137b0d9830183dd2
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 5defbeb..31dac7b 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1246,7 +1246,12 @@ void AquaSalFrame::UpdateSettings( AllSettings& rSettings )
getAppleScrollBarVariant(aStyleSettings);
// set scrollbar size
+#if MACOSX_SDK_VERSION >= 1070
aStyleSettings.SetScrollBarSize( static_cast<long int>([NSScroller scrollerWidthForControlSize:NSRegularControlSize scrollerStyle:NSScrollerStyleLegacy]) );
+#else
+ aStyleSettings.SetScrollBarSize( static_cast<long int>([NSScroller scrollerWidth]) );
+#endif
+
// images in menus false for MacOSX
aStyleSettings.SetPreferredUseImagesInMenus( false );
aStyleSettings.SetHideDisabledMenuItems( true );
diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index 12451e7..b6c68ee 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -880,7 +880,12 @@ Rectangle AquaSalMenu::GetMenuBarButtonRectPixel( sal_uInt16 i_nItemId, SalFrame
if( ! pNSWin )
return Rectangle();
+#if MACOSX_SDK_VERSION >= 1070
NSRect aRect = [pNSWin convertRectToScreen:[pNSWin frame]];
+#else
+ NSRect aRect = [pNSWin frame];
+ aRect.origin = [pNSWin convertBaseToScreen: NSMakePoint( 0, 0 )];
+#endif
// make coordinates relative to reference frame
static_cast<AquaSalFrame*>(i_pReferenceFrame)->CocoaToVCL( aRect.origin );
diff --git a/vcl/quartz/CTRunData.hxx b/vcl/quartz/CTRunData.hxx
index 40c2a0a..a0666e5 100644
--- a/vcl/quartz/CTRunData.hxx
+++ b/vcl/quartz/CTRunData.hxx
@@ -10,8 +10,20 @@
#define CTRunData_Included
#include "premac.h"
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1080
+#include <ApplicationServices/ApplicationServices.h>
+#if MACOSX_SDK_VERSION < 1060
+// The following symbols are SPI (System Programming Interface) in 10.5
+extern "C" {
+ void CTRunGetAdvances(CTRunRef run, CFRange range, CGSize buffer[]);
+ const CGSize* CTRunGetAdvancesPtr(CTRunRef run);
+ extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel;
+}
+#endif
+#else
#include <CoreGraphics/CoreGraphics.h>
#include <CoreText/CoreText.h>
+#endif
#include "postmac.h"
class CTRunData
diff --git a/vcl/quartz/ctfonts.cxx b/vcl/quartz/ctfonts.cxx
index 894a7aa..efa16b7 100644
--- a/vcl/quartz/ctfonts.cxx
+++ b/vcl/quartz/ctfonts.cxx
@@ -246,7 +246,11 @@ int CoreTextFontData::GetFontTable( const char pTagName[5], unsigned char* pResu
// get the raw table length
CTFontDescriptorRef pFontDesc = reinterpret_cast<CTFontDescriptorRef>( GetFontId());
CTFontRef rCTFont = CTFontCreateWithFontDescriptor( pFontDesc, 0.0, NULL);
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1080
+ const uint32_t opts( kCTFontTableOptionExcludeSynthetic );
+#else
const uint32_t opts( kCTFontTableOptionNoOptions );
+#endif
CFDataRef pDataRef = CTFontCopyTable( rCTFont, nTagCode, opts);
CFRelease( rCTFont);
if( !pDataRef)
commit 66c2ffcea5792b3faefbf19bd857429e86683ee8
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sat Oct 25 03:58:37 2014 -0400
resurrect conditional code for OSX SDKs < 10.8 from "mass purge"
plus, use MACOSX_SDK_VERSION instead of "legacy" MAC_OS_X_VERSION_MAX_ALLOWED/MIN_REQUIRED
reverted commits:
b02e958fa0bf7d062a5b8aff03d22325e3068feb
fe25090e992eefd0c43ca73b656632a650793b1a
note: sal/osl/unx/memory.c posix_memalign issue will be addressed in another commit
Modified: 23 files (19 from b02e958f + 6 from fe25090e - 1 common - 1 unx/memory.c)
Change-Id: Ib6e63e664dc073a8d751306f613e8be4918c406a
diff --git a/external/curl/ExternalProject_curl.mk b/external/curl/ExternalProject_curl.mk
index 8f94771..d513bfd 100644
--- a/external/curl/ExternalProject_curl.mk
+++ b/external/curl/ExternalProject_curl.mk
@@ -45,7 +45,7 @@ $(call gb_ExternalProject_get_state_target,curl,build):
$(if $(filter IOS MACOSX,$(OS)),,--with-nss$(if $(SYSTEM_NSS),,="$(call gb_UnpackedTarball_get_dir,nss)/dist/out")) \
$(if $(filter IOS,$(OS)),--with-darwinssl) \
$(if $(filter MACOSX,$(OS)),\
- --with-darwinssl) \
+ $(if $(filter 1050,$(MACOSX_SDK_VERSION)),,--with-darwinssl)) \
--without-ssl \
--without-libidn --enable-ftp --enable-ipv6 --enable-http --disable-gopher \
--disable-file --disable-ldap --disable-telnet --disable-dict --without-libssh2 \
diff --git a/external/nss/ExternalPackage_nss.mk b/external/nss/ExternalPackage_nss.mk
index c6d8953fd..986565e 100644
--- a/external/nss/ExternalPackage_nss.mk
+++ b/external/nss/ExternalPackage_nss.mk
@@ -26,6 +26,7 @@ $(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\
dist/out/lib/libsmime3.dylib \
dist/out/lib/libsoftokn3.dylib \
dist/out/lib/libssl3.dylib \
+ $(if $(filter 1050,$(MACOSX_SDK_VERSION)),dist/out/lib/libsqlite3.dylib) \
))
else ifeq ($(OS),WNT)
$(eval $(call gb_ExternalPackage_add_files,nss,$(LIBO_LIB_FOLDER),\
diff --git a/external/nss/ExternalProject_nss.mk b/external/nss/ExternalProject_nss.mk
index 17ea6f1..0706a39 100644
--- a/external/nss/ExternalProject_nss.mk
+++ b/external/nss/ExternalProject_nss.mk
@@ -65,7 +65,7 @@ $(call gb_ExternalProject_get_state_target,nss,build): $(call gb_ExternalProject
$(if $(filter arm64,$(CC)),USE_64=1)) \
$(if $(filter MACOSX,$(OS)),\
$(if $(filter-out POWERPC,$(CPUNAME)),MACOS_SDK_DIR=$(MACOSX_SDK_PATH)) \
- NSS_USE_SYSTEM_SQLITE=1) \
+ $(if $(filter-out 1050,$(MACOSX_SDK_VERSION)),NSS_USE_SYSTEM_SQLITE=1)) \
$(if $(filter SOLARIS,$(OS)),NS_USE_GCC=1) \
$(if $(CROSS_COMPILING),\
$(if $(filter MACOSXPOWERPC,$(OS)$(CPUNAME)),CPU_ARCH=ppc) \
diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk
index 045892e..54a9ad1 100644
--- a/external/python3/ExternalProject_python3.mk
+++ b/external/python3/ExternalProject_python3.mk
@@ -69,8 +69,8 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
$(if $(filter WNT-GCC,$(OS)-$(COM)),--with-threads ac_cv_printf_zd_format=no) \
$(if $(filter MACOSX,$(OS)), \
$(if $(filter INTEL,$(CPUNAME)),--enable-universalsdk=$(MACOSX_SDK_PATH) \
- --with-universal-archs=intel \
- ) \
+ $(if $(filter 1050,$(MACOSX_SDK_VERSION)),--with-universal-archs=32-bit,--with-universal-archs=intel) \
+ ) \
--enable-framework=/@__________________________________________________OOO --with-framework-name=LibreOfficePython, \
--enable-shared \
) \
diff --git a/fpicker/source/aqua/FilterHelper.mm b/fpicker/source/aqua/FilterHelper.mm
index cef9074..e078fb6 100644
--- a/fpicker/source/aqua/FilterHelper.mm
+++ b/fpicker/source/aqua/FilterHelper.mm
@@ -385,7 +385,11 @@ bool FilterHelper::filenameMatchesFilter(NSString* sFilename)
}
NSFileManager *manager = [NSFileManager defaultManager];
+#if MACOSX_SDK_VERSION < 1060
+ NSDictionary* pAttribs = [manager fileAttributesAtPath: sFilename traverseLink: NO];
+#else
NSDictionary* pAttribs = [manager attributesOfItemAtPath: sFilename error: nil];
+#endif
if( pAttribs )
{
NSObject* pType = [pAttribs objectForKey: NSFileType];
diff --git a/fpicker/source/aqua/NSURL_OOoAdditions.mm b/fpicker/source/aqua/NSURL_OOoAdditions.mm
index 1fc59af..83dc0a3 100644
--- a/fpicker/source/aqua/NSURL_OOoAdditions.mm
+++ b/fpicker/source/aqua/NSURL_OOoAdditions.mm
@@ -83,6 +83,25 @@ NSString* resolveAlias( NSString* i_pSystemPath )
kCFURLPOSIXPathStyle, false);
if( rUrl != NULL )
{
+#if MACOSX_SDK_VERSION < 1060
+ FSRef rFS;
+ if( CFURLGetFSRef( rUrl, &rFS ) )
+ {
+ Boolean bIsFolder = false;
+ Boolean bAlias = false;
+ OSErr err = FSResolveAliasFile( &rFS, true, &bIsFolder, &bAlias);
+ if( (err == noErr) && bAlias )
+ {
+ CFURLRef rResolvedUrl = CFURLCreateFromFSRef( kCFAllocatorDefault, &rFS );
+ if( rResolvedUrl != NULL )
+ {
+ pResolvedPath = (NSString*)CFURLCopyFileSystemPath( rResolvedUrl, kCFURLPOSIXPathStyle );
+ CFRelease( rResolvedUrl );
+ }
+ }
+ }
+ CFRelease( rUrl );
+#else
CFErrorRef rError;
CFDataRef rBookmark = CFURLCreateBookmarkDataFromFile( NULL, rUrl, &rError );
CFRelease( rUrl );
@@ -102,6 +121,7 @@ NSString* resolveAlias( NSString* i_pSystemPath )
CFRelease( rResolvedUrl );
}
}
+#endif
}
return pResolvedPath;
diff --git a/fpicker/source/aqua/SalAquaFilePicker.mm b/fpicker/source/aqua/SalAquaFilePicker.mm
index 11e5ee6..86d1da3 100644
--- a/fpicker/source/aqua/SalAquaFilePicker.mm
+++ b/fpicker/source/aqua/SalAquaFilePicker.mm
@@ -307,7 +307,7 @@ uno::Sequence<rtl::OUString> SAL_CALL SalAquaFilePicker::getFiles() throw( uno::
SolarMutexGuard aGuard;
-#if HAVE_FEATURE_MACOSX_SANDBOX
+#if MACOSX_SDK_VERSION >= 1070 && HAVE_FEATURE_MACOSX_SANDBOX
static NSUserDefaults *userDefaults;
static bool triedUserDefaults = false;
@@ -341,7 +341,7 @@ uno::Sequence<rtl::OUString> SAL_CALL SalAquaFilePicker::getFiles() throw( uno::
{
NSURL *url = [files objectAtIndex:nIndex];
-#if HAVE_FEATURE_MACOSX_SANDBOX
+#if MACOSX_SDK_VERSION >= 1070 && HAVE_FEATURE_MACOSX_SANDBOX
if (userDefaults != NULL &&
[url respondsToSelector:@selector(bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:)])
{
@@ -769,7 +769,11 @@ void SalAquaFilePicker::updateSaveFileNameExtension() {
rtl::OUString suffix = (*(aStringList.begin())).copy(1);
NSString *requiredFileType = [NSString stringWithOUString:suffix];
+#if MACOSX_SDK_VERSION < 1060
+ [m_pDialog setRequiredFileType:requiredFileType];
+#else
[m_pDialog setAllowedFileTypes:[NSArray arrayWithObjects:requiredFileType, nil]];
+#endif
OSL_TRACE("disallowing other file types");
[m_pDialog setAllowsOtherFileTypes:NO];
diff --git a/fpicker/source/aqua/SalAquaPicker.mm b/fpicker/source/aqua/SalAquaPicker.mm
index 6fd4023..a929afc 100644
--- a/fpicker/source/aqua/SalAquaPicker.mm
+++ b/fpicker/source/aqua/SalAquaPicker.mm
@@ -164,6 +164,19 @@ int SalAquaPicker::run()
int retVal = 0;
+#if MACOSX_SDK_VERSION < 1060
+ NSString *startDirectory;
+ if (m_sDisplayDirectory.getLength() > 0) {
+ NSString *temp = [NSString stringWithOUString:m_sDisplayDirectory];
+ NSURL *url = [NSURL URLWithString:temp];
+ startDirectory = [url path];
+
+ OSL_TRACE("start dir: %s", [startDirectory UTF8String]);
+ }
+ else {
+ startDirectory = NSHomeDirectory();
+ }
+#else
NSURL *startDirectory;
if (m_sDisplayDirectory.getLength() > 0) {
NSString *temp = [NSString stringWithOUString:m_sDisplayDirectory];
@@ -174,17 +187,26 @@ int SalAquaPicker::run()
else {
startDirectory = [NSURL fileURLWithPath:NSHomeDirectory() isDirectory:YES];
}
+#endif
switch(m_nDialogType) {
case NAVIGATIONSERVICES_DIRECTORY:
case NAVIGATIONSERVICES_OPEN:
+#if MACOSX_SDK_VERSION < 1060
+ retVal = [(NSOpenPanel*)m_pDialog runModalForDirectory:startDirectory file:nil types:nil];
+#else
[m_pDialog setDirectoryURL:startDirectory];
retVal = [(NSOpenPanel*)m_pDialog runModal];
+#endif
break;
case NAVIGATIONSERVICES_SAVE:
+#if MACOSX_SDK_VERSION < 1060
+ retVal = [m_pDialog runModalForDirectory:startDirectory file:[NSString stringWithOUString:((SalAquaFilePicker*)this)->getSaveFileName()]];
+#else
[m_pDialog setDirectoryURL:startDirectory];
[m_pDialog setNameFieldStringValue:[NSString stringWithOUString:static_cast<SalAquaFilePicker*>(this)->getSaveFileName()]];
retVal = [m_pDialog runModal];
+#endif
break;
// [m_pDialog beginSheetForDirectory:startDirectory file:[m_pDialog saveFilename] modalForWindow:[NSApp keyWindow] modalDelegate:((SalAquaFilePicker*)this)->getDelegate() didEndSelector:@selector(savePanelDidEnd:returnCode:contextInfo:) contextInfo:nil];
default:
@@ -192,10 +214,17 @@ int SalAquaPicker::run()
}
if (retVal == NSFileHandlingPanelOKButton) {
+#if MACOSX_SDK_VERSION < 1060
+ NSString* pDir = [m_pDialog directory];
+ if (pDir) {
+ implsetDisplayDirectory([[NSURL fileURLWithPath:pDir] OUStringForInfo:FULLPATH]);
+ }
+#else
NSURL* pDir = [m_pDialog directoryURL];
if (pDir) {
implsetDisplayDirectory([pDir OUStringForInfo:FULLPATH]);
}
+#endif
}
DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm b/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
index aa06d13..25f8f0d 100644
--- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
+++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
@@ -350,7 +350,11 @@ Reference< XSpellAlternatives >
aLang = [aLang stringByAppendingString:aTaggedCountry];
}
[macSpell setLanguage:aLang];
+#if MACOSX_SDK_VERSION < 1060
+ NSArray *guesses = [macSpell guessesForWord:aNSStr];
+#else
NSArray *guesses = [macSpell guessesForWordRange:NSMakeRange(0, [aNSStr length]) inString:aNSStr language:aLang inSpellDocumentWithTag:0];
+#endif
count = [guesses count];
if (count)
{
diff --git a/sal/osl/unx/system.cxx b/sal/osl/unx/system.cxx
index 3d0fb6a..7793c27 100644
--- a/sal/osl/unx/system.cxx
+++ b/sal/osl/unx/system.cxx
@@ -157,10 +157,17 @@ int macxp_resolveAlias(char *path, int buflen)
(void) buflen;
return 0;
#else
+#if MACOSX_SDK_VERSION < 1060
+ FSRef aFSRef;
+ OSStatus nErr;
+ Boolean bFolder;
+ Boolean bAliased;
+#else
CFStringRef cfpath;
CFURLRef cfurl;
CFErrorRef cferror;
CFDataRef cfbookmark;
+#endif
char *unprocessedPath = path;
@@ -174,6 +181,49 @@ int macxp_resolveAlias(char *path, int buflen)
if ( unprocessedPath )
*unprocessedPath = '\0';
+#if MACOSX_SDK_VERSION < 1060
+ nErr = noErr;
+ bFolder = FALSE;
+ bAliased = FALSE;
+
+ if ( FSPathMakeRef( (const UInt8 *)path, &aFSRef, 0 ) == noErr )
+ {
+ nErr = FSResolveAliasFileWithMountFlags( &aFSRef, TRUE, &bFolder, &bAliased, kResolveAliasFileNoUI );
+ if ( nErr == nsvErr )
+ {
+ errno = ENOENT;
+ nRet = -1;
+ }
+ else if ( nErr == noErr && bAliased )
+ {
+ char tmpPath[ PATH_MAX ];
+ if ( FSRefMakePath( &aFSRef, (UInt8 *)tmpPath, PATH_MAX ) == noErr )
+ {
+ int nLen = strlen( tmpPath ) + ( unprocessedPath ? strlen( unprocessedPath + 1 ) + 1 : 0 );
+ if ( nLen < buflen && nLen < PATH_MAX )
+ {
+ if ( unprocessedPath )
+ {
+ int nTmpPathLen = strlen( tmpPath );
+ strcat( tmpPath, "/" );
+ strcat( tmpPath, unprocessedPath + 1 );
+ strcpy( path, tmpPath);
+ unprocessedPath = path + nTmpPathLen;
+ }
+ else if ( !unprocessedPath )
+ {
+ strcpy( path, tmpPath);
+ }
+ }
+ else
+ {
+ errno = ENAMETOOLONG;
+ nRet = -1;
+ }
+ }
+ }
+ }
+#else
cfpath = CFStringCreateWithCString( NULL, path, kCFStringEncodingUTF8 );
cfurl = CFURLCreateWithFileSystemPath( NULL, cfpath, kCFURLPOSIXPathStyle, false );
CFRelease( cfpath );
@@ -233,6 +283,7 @@ int macxp_resolveAlias(char *path, int buflen)
}
}
}
+#endif
if ( unprocessedPath )
*unprocessedPath++ = '/';
diff --git a/sal/osl/unx/uunxapi.cxx b/sal/osl/unx/uunxapi.cxx
index a984816..064000d 100644
--- a/sal/osl/unx/uunxapi.cxx
+++ b/sal/osl/unx/uunxapi.cxx
@@ -35,7 +35,7 @@ inline rtl::OString OUStringToOString(const rtl_uString* s)
osl_getThreadTextEncoding());
}
-#if HAVE_FEATURE_MACOSX_SANDBOX
+#if defined(MACOSX) && MACOSX_SDK_VERSION >= 1070 && HAVE_FEATURE_MACOSX_SANDBOX
#include <Foundation/Foundation.h>
#include <Security/Security.h>
@@ -289,7 +289,7 @@ int open_c(const char *cpPath, int oflag, int mode)
int result = open(cpPath, oflag, mode);
-#if HAVE_FEATURE_MACOSX_SANDBOX
+#if defined(MACOSX) && MACOSX_SDK_VERSION >= 1070 && HAVE_FEATURE_MACOSX_SANDBOX
if (isSandboxed && result != -1 && (oflag & O_CREAT) && (oflag & O_EXCL))
{
// A new file was created. Check if it is outside the sandbox.
diff --git a/vcl/inc/osx/salframe.h b/vcl/inc/osx/salframe.h
index 8bb0acf..fc7bb34 100644
--- a/vcl/inc/osx/salframe.h
+++ b/vcl/inc/osx/salframe.h
@@ -93,7 +93,11 @@ public:
sal_uLong mnICOptions;
// To prevent display sleep during presentation
+#if MACOSX_SDK_VERSION < 1060
+ boost::shared_ptr< Timer > mpActivityTimer;
+#else
IOPMAssertionID mnAssertionID;
+#endif
public:
/** Constructor
diff --git a/vcl/inc/osx/salframeview.h b/vcl/inc/osx/salframeview.h
index 93f8b8f..d125743 100644
--- a/vcl/inc/osx/salframeview.h
+++ b/vcl/inc/osx/salframeview.h
@@ -22,7 +22,11 @@
#include "osx/a11ywrapper.h"
+#if MACOSX_SDK_VERSION < 1060
+ at interface SalFrameWindow : NSWindow
+#else
@interface SalFrameWindow : NSWindow<NSWindowDelegate>
+#endif
{
AquaSalFrame* mpFrame;
id mDraggingDestinationHandler;
@@ -59,7 +63,11 @@
-(void)unregisterDraggingDestinationHandler:(id)theHandler;
@end
+#if MACOSX_SDK_VERSION < 1060
+ at interface SalFrameView : AquaA11yWrapper <NSTextInput>
+#else
@interface SalFrameView : AquaA11yWrapper <NSTextInputClient>
+#endif
{
AquaSalFrame* mpFrame;
@@ -113,7 +121,11 @@
/*
text action methods
*/
+#if MACOSX_SDK_VERSION < 1060
+-(void)insertText:(id)aString;
+#else
-(void)insertText:(id)aString replacementRange:(NSRange)replacementRange;
+#endif
-(void)insertTab: (id)aSender;
-(void)insertBacktab: (id)aSender;
-(void)moveLeft: (id)aSender;
diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h
index 87c35c1..cd0289e 100644
--- a/vcl/inc/quartz/salgdi.h
+++ b/vcl/inc/quartz/salgdi.h
@@ -29,6 +29,15 @@
#include <ApplicationServices/ApplicationServices.h>
#include "osx/osxvcltypes.h"
#include "osx/salframe.h"
+
+#if MACOSX_SDK_VERSION < 1060
+// The following symbols are SPI (System Programming Interface) in 10.5.
+extern "C" {
+ void CTRunGetAdvances(CTRunRef run, CFRange range, CGSize buffer[]);
+ const CGSize* CTRunGetAdvancesPtr(CTRunRef run);
+ extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel;
+}
+#endif
#else
#include <CoreGraphics/CoreGraphics.h>
#include <CoreText/CoreText.h>
diff --git a/vcl/osx/DropTarget.cxx b/vcl/osx/DropTarget.cxx
index a6721a6..48dd337 100644
--- a/vcl/osx/DropTarget.cxx
+++ b/vcl/osx/DropTarget.cxx
@@ -264,9 +264,17 @@ NSDragOperation DropTarget::draggingUpdated(id sender)
}
if (dragOp == NSDragOperationNone)
+#if MACOSX_SDK_VERSION < 1060
+ SetThemeCursor(kThemeNotAllowedCursor);
+#else
[[NSCursor operationNotAllowedCursor] set];
+#endif
else if (dragOp == NSDragOperationCopy)
+#if MACOSX_SDK_VERSION < 1060
+ SetThemeCursor(kThemeCopyArrowCursor);
+#else
[[NSCursor dragCopyCursor] set];
+#endif
else
[[NSCursor arrowCursor] set];
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 226f539..5defbeb 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -37,6 +37,11 @@
#include "osx/a11yfactory.h"
#include "quartz/utils.h"
+#if MACOSX_SDK_VERSION < 1060
+#include "vcl/timer.hxx"
+#include "osx/saltimer.h"
+#endif
+
#include "salwtype.hxx"
#include "premac.h"
@@ -193,7 +198,11 @@ void AquaSalFrame::initWindowAndView()
[mpNSWindow setAcceptsMouseMovedEvents: YES];
[mpNSWindow setHasShadow: YES];
+#if MACOSX_SDK_VERSION < 1060
+ objc_msgSend(mpNSWindow, @selector(setDelegate:), mpNSWindow);
+#else
[mpNSWindow setDelegate: static_cast<id<NSWindowDelegate> >(mpNSWindow)];
+#endif
if( [mpNSWindow respondsToSelector: @selector(setRestorable:)])
{
@@ -750,6 +759,27 @@ void AquaSalFrame::ShowFullScreen( bool bFullScreen, sal_Int32 nDisplay )
SendPaintEvent();
}
+#if MACOSX_SDK_VERSION < 1060
+class PreventSleepTimer : public AutoTimer
+{
+public:
+ PreventSleepTimer()
+ {
+ SetTimeout( 30000 );
+ Start();
+ }
+
+ virtual ~PreventSleepTimer()
+ {
+ }
+
+ virtual void Timeout() SAL_OVERRIDE
+ {
+ UpdateSystemActivity(OverallAct);
+ }
+};
+#endif
+
void AquaSalFrame::StartPresentation( bool bStart )
{
if ( !mpNSWindow )
@@ -761,10 +791,14 @@ void AquaSalFrame::StartPresentation( bool bStart )
if( bStart )
{
GetSalData()->maPresentationFrames.push_back( this );
+#if MACOSX_SDK_VERSION < 1060
+ mpActivityTimer.reset( new PreventSleepTimer() );
+#else
IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep,
kIOPMAssertionLevelOn,
CFSTR("LibreOffice presentation running"),
&mnAssertionID);
+#endif
[mpNSWindow setLevel: NSPopUpMenuWindowLevel];
if( mbShown )
[mpNSWindow makeMainWindow];
@@ -772,7 +806,11 @@ void AquaSalFrame::StartPresentation( bool bStart )
else
{
GetSalData()->maPresentationFrames.remove( this );
+#if MACOSX_SDK_VERSION < 1060
+ mpActivityTimer.reset();
+#else
IOPMAssertionRelease(mnAssertionID);
+#endif
[mpNSWindow setLevel: NSNormalWindowLevel];
}
}
diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index 248c8eb..27be98d 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -34,6 +34,14 @@
#define WHEEL_EVENT_FACTOR 1.5
+// for fullscreen support on OS X < 10.7
+#if MACOSX_SDK_VERSION < 1070
+ #define NSWindowCollectionBehaviorFullScreenPrimary (1 << 7)
+ #define NSWindowCollectionBehaviorFullScreenAuxiliary (1 << 8)
+// #define NSFullScreenWindowMask (1 << 14)
+#endif
+
+
static sal_uInt16 ImplGetModifierMask( unsigned int nMask )
{
sal_uInt16 nRet = 0;
@@ -158,6 +166,18 @@ static const struct ExceptionalKey
static AquaSalFrame* getMouseContainerFrame()
{
AquaSalFrame* pDispatchFrame = NULL;
+#if MACOSX_SDK_VERSION < 1060
+ NSInteger nWindows = 0;
+ NSCountWindows( &nWindows );
+ NSInteger* pWindows = (NSInteger*)alloca( nWindows * sizeof(NSInteger) );
+ NSWindowList( nWindows, pWindows ); // NSWindowList is supposed to be in z-order front to back
+ for(int i = 0; i < nWindows && ! pDispatchFrame; i++ )
+ {
+ NSWindow* pWin = [NSApp windowWithWindowNumber: pWindows[i]];
+ if( pWin && [pWin isMemberOfClass: [SalFrameWindow class]] && [(SalFrameWindow*)pWin containsMouse] )
+ pDispatchFrame = [(SalFrameWindow*)pWin getSalFrame];
+ }
+#else
NSArray* aWindows = [NSWindow windowNumbersWithOptions:0];
for(NSUInteger i = 0; i < [aWindows count] && ! pDispatchFrame; i++ )
{
@@ -165,6 +185,7 @@ static AquaSalFrame* getMouseContainerFrame()
if( pWin && [pWin isMemberOfClass: [SalFrameWindow class]] && [(SalFrameWindow*)pWin containsMouse] )
pDispatchFrame = [(SalFrameWindow*)pWin getSalFrame];
}
+#endif
return pDispatchFrame;
}
@@ -755,11 +776,19 @@ private:
if( bNewSeries )
mfMagnifyDeltaSum = 0.0;
+#if MACOSX_SDK_VERSION < 1060
+ mfMagnifyDeltaSum += [pEvent deltaZ];
+#else
mfMagnifyDeltaSum += [pEvent magnification];
+#endif
mfLastMagnifyTime = [pEvent timestamp];
// TODO: change to 0.1 when CommandWheelMode::ZOOM handlers allow finer zooming control
+#if MACOSX_SDK_VERSION < 1060
+ static const float fMagnifyFactor = 0.25;
+#else
static const float fMagnifyFactor = 0.25*500; // steps are 500 times smaller for -magnification
+#endif
static const float fMinMagnifyStep = 15.0 / fMagnifyFactor;
if( fabs(mfMagnifyDeltaSum) <= fMinMagnifyStep )
return;
@@ -1012,9 +1041,15 @@ private:
}
}
+#if MACOSX_SDK_VERSION < 1060
+-(void)insertText:(id)aString
+#else
-(void)insertText:(id)aString replacementRange:(NSRange)replacementRange
+#endif
{
+#if MACOSX_SDK_VERSION >= 1060
(void) replacementRange; // FIXME: surely it must be used
+#endif
YIELD_GUARD;
@@ -1584,9 +1619,15 @@ private:
return mSelectedRange;
}
+#if MACOSX_SDK_VERSION < 1060
+- (void)setMarkedText:(id)aString selectedRange:(NSRange)selRange
+#else
- (void)setMarkedText:(id)aString selectedRange:(NSRange)selRange replacementRange:(NSRange)replacementRange
+#endif
{
+#if MACOSX_SDK_VERSION >= 1060
(void) replacementRange; // FIXME - use it!
+#endif
YIELD_GUARD;
@@ -1656,10 +1697,16 @@ private:
mSelectedRange = mMarkedRange = NSMakeRange(NSNotFound, 0);
}
+#if MACOSX_SDK_VERSION < 1060
+- (NSAttributedString *)attributedSubstringFromRange:(NSRange)aRange
+#else
- (NSAttributedString *)attributedSubstringForProposedRange:(NSRange)aRange actualRange:(NSRangePointer)actualRange
+#endif
{
(void) aRange;
+#if MACOSX_SDK_VERSION >= 1060
(void) actualRange;
+#endif
// FIXME - Implement
return nil;
@@ -1703,11 +1750,17 @@ private:
mpLastEvent = nil;
}
+#if MACOSX_SDK_VERSION < 1060
+- (NSRect)firstRectForCharacterRange:(NSRange)aRange
+#else
- (NSRect)firstRectForCharacterRange:(NSRange)aRange actualRange:(NSRangePointer)actualRange
+#endif
{
// FIXME - These should probably be used?
(void) aRange;
+#if MACOSX_SDK_VERSION >= 1060
(void) actualRange;
+#endif
YIELD_GUARD;
diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx
index ed42091..3016373 100644
--- a/vcl/osx/salinst.cxx
+++ b/vcl/osx/salinst.cxx
@@ -1050,7 +1050,12 @@ NSImage* CreateNSImage( const Image& rImage )
NSImage* pImage = [[NSImage alloc] initWithSize: NSMakeSize( aSize.Width(), aSize.Height() )];
if( pImage )
{
+#if MACOSX_SDK_VERSION < 1060
+ [pImage setFlipped:YES];
+ [pImage lockFocus];
+#else
[pImage lockFocusFlipped:YES];
+#endif
NSGraphicsContext* pContext = [NSGraphicsContext currentContext];
CGContextRef rCGContext = reinterpret_cast<CGContextRef>([pContext graphicsPort]);
diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index 6d2c6d8..12451e7 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -246,7 +246,11 @@ AquaSalMenu::AquaSalMenu( bool bMenuBar ) :
if( ! mbMenuBar )
{
mpMenu = [[SalNSMenu alloc] initWithMenu: this];
+#if MACOSX_SDK_VERSION < 1060
+ objc_msgSend(mpMenu, @selector(setDelegate:), mpMenu);
+#else
[mpMenu setDelegate: (id<NSMenuDelegate>)mpMenu];
+#endif
}
else
{
diff --git a/vcl/osx/salprn.cxx b/vcl/osx/salprn.cxx
index f8fe422..3d7f2d2 100644
--- a/vcl/osx/salprn.cxx
+++ b/vcl/osx/salprn.cxx
@@ -462,7 +462,11 @@ bool AquaSalInfoPrinter::StartJob( const OUString* i_pFileName,
{
[mpPrintInfo setJobDisposition: NSPrintSaveJob];
NSString* pPath = CreateNSString( *i_pFileName );
+#if MACOSX_SDK_VERSION < 1060
+ [pPrintDict setObject:[NSURL fileURLWithPath:pPath] forKey:NSPrintSavePath];
+#else
[pPrintDict setObject:[NSURL fileURLWithPath:pPath] forKey:NSPrintJobSavingURL];
+#endif
[pPath release];
}
diff --git a/vcl/quartz/ctfonts.cxx b/vcl/quartz/ctfonts.cxx
index 5fb772b..894a7aa 100644
--- a/vcl/quartz/ctfonts.cxx
+++ b/vcl/quartz/ctfonts.cxx
@@ -80,9 +80,13 @@ CoreTextStyle::CoreTextStyle( const FontSelectPattern& rFSD )
((mpFontData->GetWeight() < WEIGHT_SEMIBOLD) &&
(mpFontData->GetWeight() != WEIGHT_DONTKNOW)) )
{
+#if MACOSX_SDK_VERSION >= 1060
int nStroke = -10.0;
CFNumberRef rStroke = CFNumberCreate(NULL, kCFNumberSInt32Type, &nStroke);
CFDictionarySetValue(mpStyleDict, kCTStrokeWidthAttributeName, rStroke);
+#else /* kCTStrokeWidthAttributeName is not available */
+ /* do we really need "fake" bold? */
+#endif
}
// fake italic
@@ -312,8 +316,10 @@ ImplDevFontAttributes DevFontFromCTFontDescriptor( CTFontDescriptorRef pFD, bool
// get font-enabled status
if( bFontEnabled ) {
int bEnabled = TRUE; // by default (and when we're on OS X < 10.6) it's "enabled"
+#if MACOSX_SDK_VERSION >= 1060
CFNumberRef pEnabled = (CFNumberRef)CTFontDescriptorCopyAttribute( pFD, kCTFontEnabledAttribute );
CFNumberGetValue( pEnabled, kCFNumberIntType, &bEnabled );
+#endif
*bFontEnabled = bEnabled;
}
diff --git a/vcl/quartz/ctlayout.cxx b/vcl/quartz/ctlayout.cxx
index fe294cb..af545f4 100644
--- a/vcl/quartz/ctlayout.cxx
+++ b/vcl/quartz/ctlayout.cxx
@@ -251,6 +251,11 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
// - CoreText handles spaces specially (in particular at the text end)
if( mnTrailingSpaceCount )
{
+#if MACOSX_SDK_VERSION < 1070
+ // don't recreate line layout here, because this can lead to problems
+ // (looks like internal issues inside early CoreText versions)
+ mfTrailingSpaceWidth = CTLineGetTrailingWhitespaceWidth( mpCTLine );
+#else
if(mfTrailingSpaceWidth <= 0.0)
{
mfTrailingSpaceWidth = CTLineGetTrailingWhitespaceWidth( mpCTLine );
@@ -275,7 +280,7 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
SAL_INFO( "vcl.ct", "CTLineCreateWithAttributedString(\"" << GetOUString(aCFText) << "\") = " << mpCTLine );
CFRelease( pAttrStr );
CFRelease( aCFText );
-
+#endif
// in RTL-layouts trailing spaces are leftmost
// TODO: use BiDi-algorithm to thoroughly check this assumption
if( rArgs.mnFlags & SAL_LAYOUT_BIDI_RTL)
@@ -283,9 +288,12 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
mfBaseAdv = mfTrailingSpaceWidth;
}
}
+#if MACOSX_SDK_VERSION < 1070
+ CTLineRef pNewCTLine = CTLineCreateJustifiedLine( mpCTLine, 1.0, nPixelWidth - mfTrailingSpaceWidth );
+#else
CTLineRef pNewCTLine = CTLineCreateJustifiedLine( mpCTLine, 1.0, nPixelWidth);
SAL_INFO( "vcl.ct", "CTLineCreateJustifiedLine(" << mpCTLine << ",1.0," << nPixelWidth << ") = " << pNewCTLine );
-
+#endif
if( !pNewCTLine )
{
// CTLineCreateJustifiedLine can and does fail
@@ -299,7 +307,11 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
SAL_INFO( "vcl.ct", "CFRelease(" << mpCTLine << ")" );
CFRelease( mpCTLine );
mpCTLine = pNewCTLine;
+#if MACOSX_SDK_VERSION < 1070
+ mfCachedWidth = nPixelWidth;
+#else
mfCachedWidth = nPixelWidth + mfTrailingSpaceWidth;
+#endif
}
}
@@ -354,9 +366,13 @@ bool CTLayout::DrawTextSpecial( SalGraphics& rGraphics, sal_uInt32 flags ) const
CFDictionaryGetCount(mpTextStyle->GetStyleDict()),
mpTextStyle->GetStyleDict());
+#if MACOSX_SDK_VERSION < 1060
+ /* just don't do 'kCTStrokeWidthAttributeName' */
+#else
int nStroke = 2;
CFNumberRef rStroke = CFNumberCreate(NULL, kCFNumberSInt32Type, &nStroke);
CFDictionarySetValue(styledict, kCTStrokeWidthAttributeName, rStroke);
+#endif
CFAttributedStringRef pAttrStr = CFAttributedStringCreate(
NULL,
diff --git a/vcl/quartz/salgdi.cxx b/vcl/quartz/salgdi.cxx
index 2cb8271..5c2c374 100644
--- a/vcl/quartz/salgdi.cxx
+++ b/vcl/quartz/salgdi.cxx
@@ -327,12 +327,28 @@ static bool AddTempDevFont(const OUString& rFontFileURL)
bool success = false;
+#if MACOSX_SDK_VERSION >= 1060
CFErrorRef error;
success = CTFontManagerRegisterFontsForURL(rFontURL, kCTFontManagerScopeProcess, &error);
if (!success)
{
CFRelease(error);
}
+#else /* CTFontManagerRegisterFontsForURL is not available on OS X <10.6 */
+ CGDataProviderRef dataProvider = CGDataProviderCreateWithURL(rFontURL);
+ CGFontRef graphicsFont = CGFontCreateWithDataProvider(dataProvider);
+ if (graphicsFont)
+ {
+ CTFontRef coreTextFont = CTFontCreateWithGraphicsFont(graphicsFont, /*fontSize*/ 0, /*matrix*/ NULL, /*attributes*/ NULL);
+ if (coreTextFont)
+ {
+ success = true;
+ CFRelease(coreTextFont);
+ }
+ CGFontRelease(graphicsFont);
+ }
+ CGDataProviderRelease(dataProvider);
+#endif
return success;
}
commit 0e166a30aef709c32d564f469a556cd666acf655
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sun Oct 5 08:11:22 2014 -0400
avmediaMacAVF is not available on OS X 10.5/10.6
related commits:
4fa8282816cb39692678e9da6b6693e821a3039b
d4759066933e87f6b56dde40e9e4c224bc1f723f
Change-Id: Ice433ac738096c4142cc78ce793f2b2f1e2a1708
diff --git a/Repository.mk b/Repository.mk
index aa9224f..635c487 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -291,7 +291,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
acc \
$(call gb_Helper_optional,AVMEDIA,avmedia) \
$(if $(filter MACOSX,$(OS)),\
- avmediaMacAVF \
+ $(if $(filter-out 1050 1060,$(MACOSX_SDK_VERSION)),avmediaMacAVF) \
$(if $(ENABLE_MACOSX_SANDBOX),,avmediaQuickTime) \
) \
$(call gb_Helper_optional,SCRIPTING, \
diff --git a/avmedia/Module_avmedia.mk b/avmedia/Module_avmedia.mk
index 06af36f..27b588d 100644
--- a/avmedia/Module_avmedia.mk
+++ b/avmedia/Module_avmedia.mk
@@ -44,10 +44,14 @@ endif
endif
ifeq ($(OS),MACOSX)
+ifneq (1050,$(MACOSX_SDK_VERSION))
+ifneq (1060,$(MACOSX_SDK_VERSION))
$(eval $(call gb_Module_add_targets,avmedia,\
Library_avmediaMacAVF \
))
endif
+endif
+endif
ifneq ($(ENABLE_DIRECTX),)
$(eval $(call gb_Module_add_targets,avmedia,\
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index affb629..adaef73 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -124,7 +124,9 @@ $(eval $(call gb_Rdb_add_components,services,\
writerperfect/source/writer/wpftwriter \
writerperfect/source/calc/wpftcalc \
$(if $(filter MACOSX,$(OS)), \
- $(call gb_Helper_optional,AVMEDIA,avmedia/source/macavf/avmediaMacAVF) \
+ $(if $(filter 1050 1060,$(MACOSX_SDK_VERSION)),, \
+ $(call gb_Helper_optional,AVMEDIA,avmedia/source/macavf/avmediaMacAVF) \
+ ) \
$(if $(filter TRUE,$(ENABLE_MACOSX_SANDBOX)),, \
$(call gb_Helper_optional,AVMEDIA,avmedia/source/quicktime/avmediaQuickTime) \
) \
commit ba0e991974d4adabe6252c4f6c6673ad24c33ada
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Thu Dec 25 00:39:19 2014 -0500
cpp_uno: OSL_ASSERT -> assert; OSL_ENSURE -> assert
Change-Id: I24a46b5603a933930c1578ec25b1905e2d216249
diff --git a/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
index 0cba20d..81bae49f 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
@@ -82,7 +82,7 @@ static typelib_TypeClass cpp2uno_call(
ng++;
// stack space
- OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+ assert( sizeof(void *) == sizeof(sal_Int32) && "### unexpected size!" );
// parameters
void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
void ** pCppArgs = pUnoArgs + nParams;
@@ -332,7 +332,7 @@ static typelib_TypeClass cpp_mediate(
void ** gpreg, void ** fpreg, void ** ovrflw,
sal_Int64 * pRegisterReturn /* space for register return */ )
{
- OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+ assert( sizeof(sal_Int32)==sizeof(void *) && "### unexpected!" );
// gpreg: [ret *], this, [other gpr params]
// fpreg: [fpr params]
@@ -356,7 +356,7 @@ static typelib_TypeClass cpp_mediate(
typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
- OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+ assert( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex && "### illegal vtable index!" );
if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
{
throw RuntimeException( "illegal vtable index!", (XInterface *)pThis );
@@ -364,7 +364,7 @@ static typelib_TypeClass cpp_mediate(
// determine called method
sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
- OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+ assert( nMemberPos < pTypeDescr->nAllMembers && "### illegal member index!" );
TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
@@ -537,8 +537,8 @@ unsigned char * codeSnippet( unsigned char * code, sal_Int32 functionIndex, sal
unsigned long * p = (unsigned long *) code;
- // OSL_ASSERT( sizeof (long) == 4 );
- OSL_ASSERT((((unsigned long)code) & 0x3) == 0 ); //aligned to 4 otherwise a mistake
+ // assert( sizeof (long) == 4 );
+ assert((((unsigned long)code) & 0x3) == 0 ); //aligned to 4 otherwise a mistake
/* generate this code */
// # so first save gpr 3 to gpr 10 (aligned to 4)
@@ -688,7 +688,7 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
for (sal_Int32 i = 0; i < type->nMembers; ++i) {
typelib_TypeDescription * member = 0;
TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
- OSL_ASSERT(member != 0);
+ assert(member != 0);
switch (member->eTypeClass) {
case typelib_TypeClass_INTERFACE_ATTRIBUTE:
// Getter:
@@ -721,7 +721,7 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
break;
default:
- OSL_ASSERT(false);
+ assert(false);
break;
}
TYPELIB_DANGER_RELEASE(member);
diff --git a/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
index 10fd194..55a7172 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
@@ -320,7 +320,7 @@ static void cpp_call(
// return
typelib_TypeDescription * pReturnTypeDescr = 0;
TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
- // OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+ // assert( pReturnTypeDescr && "### expected return type description!" );
void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
@@ -347,7 +347,7 @@ static void cpp_call(
*pPT++ = 'I';
// stack space
- // OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+ // assert( sizeof(void *) == sizeof(sal_Int32) && "### unexpected size!" );
// args
void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
// indices of values this have to be converted (interface conversion cpp<=>uno)
@@ -455,7 +455,7 @@ static void cpp_call(
try
{
- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+ assert( !( (pCppStack - pCppStackStart ) & 3) && "UNALIGNED STACK !!! (Please DO panic)" );
callVirtualMethod(
pAdjustedThisPtr, aVtableSlot.index,
pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
commit b907add410dee8851cc8d15f3c891f59ea5327d6
Author: Douglas Mencken <dougmencken at gmail.com>
Date: Sun Oct 5 07:40:55 2014 -0400
Revert "PPC Mac support can go away now (again)"
This reverts commit e29862bcc509916e7fe3e9b2f43b0672c49b7f6e.
Change-Id: Ie6f7b94c2760b34f2b9e3ef7e619905ccb26892e
diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk
index 5d9454c..09de8e6 100644
--- a/bridges/Library_cpp_uno.mk
+++ b/bridges/Library_cpp_uno.mk
@@ -150,6 +150,12 @@ bridge_noncallexception_noopt_objects := callvirtualmethod
bridge_exception_objects := abi cpp2uno except uno2cpp
endif
+else ifeq ($(OS)-$(CPUNAME),MACOSX-POWERPC)
+
+bridges_SELECTED_BRIDGE := gcc3_macosx_powerpc
+bridge_noopt_objects := uno2cpp
+bridge_exception_objects := cpp2uno except
+
else ifeq ($(OS)-$(CPUNAME),SOLARIS-SPARC)
bridges_SELECTED_BRIDGE := gcc3_solaris_sparc
diff --git a/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
new file mode 100644
index 0000000..0cba20d
--- /dev/null
+++ b/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
@@ -0,0 +1,732 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+#include <com/sun/star/uno/genfunc.hxx>
+#include <uno/data.h>
+#include <typelib/typedescription.hxx>
+
+#include "bridges/cpp_uno/shared/bridge.hxx"
+#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
+#include "bridges/cpp_uno/shared/types.hxx"
+#include "bridges/cpp_uno/shared/vtablefactory.hxx"
+
+#include "share.hxx"
+
+using namespace ::com::sun::star::uno;
+
+namespace
+{
+
+static typelib_TypeClass cpp2uno_call(
+ bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+ const typelib_TypeDescription * pMemberTypeDescr,
+ typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+ sal_Int32 nParams, typelib_MethodParameter * pParams,
+ void ** gpreg, void ** fpreg, void ** ovrflw,
+ sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+ int ng = 0; //number of gpr registers used
+ int nf = 0; //number of fpr regsiters used
+
+ void ** pCppStack; //temporary stack pointer
+
+ // gpreg: [ret *], this, [gpr params]
+ // fpreg: [fpr params]
+ // ovrflw: [gpr or fpr params (properly aligned)]
+
+ // return
+ typelib_TypeDescription * pReturnTypeDescr = 0;
+ if (pReturnTypeRef)
+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+
+ void * pUnoReturn = 0;
+ void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+
+ // handle optional return pointer
+ if (pReturnTypeDescr)
+ {
+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+ {
+ pUnoReturn = pRegisterReturn; // direct way for simple types
+ }
+ else // complex return via ptr (pCppReturn)
+ {
+ pCppReturn = *gpreg;
+ gpreg++; //ovrflw++;
+ ng++;
+
+ pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+ ? alloca( pReturnTypeDescr->nSize )
+ : pCppReturn); // direct way
+ }
+ }
+ // pop "this"
+ gpreg++; //ovrflw++;
+ ng++;
+
+ // stack space
+ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+ // parameters
+ void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+ void ** pCppArgs = pUnoArgs + nParams;
+ // indices of values this have to be converted (interface conversion cpp<=>uno)
+ sal_Int32 * pTempIndices = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+ // type descriptions for reconversions
+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+ sal_Int32 nTempIndices = 0;
+
+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+ {
+ const typelib_MethodParameter & rParam = pParams[nPos];
+ typelib_TypeDescription * pParamTypeDescr = 0;
+ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+ // value
+ {
+
+ switch (pParamTypeDescr->eTypeClass)
+ {
+
+ case typelib_TypeClass_DOUBLE:
+ if (nf < 13) {
+ pCppArgs[nPos] = fpreg;
+ pUnoArgs[nPos] = fpreg;
+ nf++;
+ fpreg += 2;
+ } else {
+ if (((long)ovrflw) & 4) ovrflw++;
+ pCppArgs[nPos] = ovrflw;
+ pUnoArgs[nPos] = ovrflw;
+ ovrflw += 2;
+ }
+ break;
+
+ case typelib_TypeClass_FLOAT:
+ // fpreg are all double values so need to
+ // modify fpreg to be a single word float value
+ if (nf < 13) {
+ float tmp = (float) (*((double *)fpreg));
+ (*((float *) fpreg)) = tmp;
+ pCppArgs[nPos] = fpreg;
+ pUnoArgs[nPos] = fpreg;
+ nf++;
+ fpreg += 2;
+ } else {
+#if 0 /* abi is not being followed correctly */
+ if (((long)ovrflw) & 4) ovrflw++;
+ float tmp = (float) (*((double *)ovrflw));
+ (*((float *) ovrflw)) = tmp;
+ pCppArgs[nPos] = ovrflw;
+ pUnoArgs[nPos] = ovrflw;
+ ovrflw += 2;
+#else
+ pCppArgs[nPos] = ovrflw;
+ pUnoArgs[nPos] = ovrflw;
+ ovrflw += 1;
+#endif
+ }
+ break;
+
+ case typelib_TypeClass_HYPER:
+ case typelib_TypeClass_UNSIGNED_HYPER:
+ if (ng & 1) {
+ ng++;
+ gpreg++;
+ }
+ if (ng < 8) {
+ pCppArgs[nPos] = gpreg;
+ pUnoArgs[nPos] = gpreg;
+ ng += 2;
+ gpreg += 2;
+ } else {
+ if (((long)ovrflw) & 4) ovrflw++;
+ pCppArgs[nPos] = ovrflw;
+ pUnoArgs[nPos] = ovrflw;
+ ovrflw += 2;
+ }
+ break;
+
+ case typelib_TypeClass_BYTE:
+ case typelib_TypeClass_BOOLEAN:
+ if (ng < 8) {
+ pCppArgs[nPos] = (((char *)gpreg) + 3);
+ pUnoArgs[nPos] = (((char *)gpreg) + 3);
+ ng++;
+ gpreg++;
+ } else {
+ pCppArgs[nPos] = (((char *)ovrflw) + 3);
+ pUnoArgs[nPos] = (((char *)ovrflw) + 3);
+ ovrflw++;
+ }
+ break;
+
+
+ case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_SHORT:
+ case typelib_TypeClass_UNSIGNED_SHORT:
+ if (ng < 8) {
+ pCppArgs[nPos] = (((char *)gpreg)+ 2);
+ pUnoArgs[nPos] = (((char *)gpreg)+ 2);
+ ng++;
+ gpreg++;
+ } else {
+ pCppArgs[nPos] = (((char *)ovrflw) + 2);
+ pUnoArgs[nPos] = (((char *)ovrflw) + 2);
+ ovrflw++;
+ }
+ break;
+
+
+ default:
+ if (ng < 8) {
+ pCppArgs[nPos] = gpreg;
+ pUnoArgs[nPos] = gpreg;
+ ng++;
+ gpreg++;
+ } else {
+ pCppArgs[nPos] = ovrflw;
+ pUnoArgs[nPos] = ovrflw;
+ ovrflw++;
+ }
+ break;
+
+ }
+ // no longer needed
+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+ }
+ else // ptr to complex value | ref
+ {
+
+ if (ng < 8) {
+ pCppArgs[nPos] = *(void **)gpreg;
+ pCppStack = gpreg;
+ ng++;
+ gpreg++;
+ } else {
+ pCppArgs[nPos] = *(void **)ovrflw;
+ pCppStack = ovrflw;
+ ovrflw++;
+ }
+
+ if (! rParam.bIn) // is pure out
+ {
+ // uno out is unconstructed mem!
+ pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+ pTempIndices[nTempIndices] = nPos;
+ // will be released at reconversion
+ ppTempParamTypeDescr[nTempIndices++] = pParamTypeDescr;
+ }
+ // is in/inout
+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ {
+ uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ *(void **)pCppStack, pParamTypeDescr,
+ pThis->getBridge()->getCpp2Uno() );
+ pTempIndices[nTempIndices] = nPos; // has to be reconverted
+ // will be released at reconversion
+ ppTempParamTypeDescr[nTempIndices++] = pParamTypeDescr;
+ }
+ else // direct way
+ {
+ pUnoArgs[nPos] = *(void **)pCppStack;
+ // no longer needed
+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+ }
+ }
+ }
+
+ // ExceptionHolder
+ uno_Any aUnoExc; // Any will be constructed by callee
+ uno_Any * pUnoExc = &aUnoExc;
+
+ // invoke uno dispatch call
+ (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+ // in case an exception occurred...
+ if (pUnoExc)
+ {
+ // destruct temporary in/inout params
+ for ( ; nTempIndices--; )
+ {
+ sal_Int32 nIndex = pTempIndices[nTempIndices];
+
+ if (pParams[nIndex].bIn) // is in/inout => was constructed
+ uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndices], 0 );
+ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndices] );
+ }
+ if (pReturnTypeDescr)
+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+
+ CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+ // has to destruct the any
+ // is here for dummy
+ return typelib_TypeClass_VOID;
+ }
+ else // else no exception occurred...
+ {
+ // temporary params
+ for ( ; nTempIndices--; )
+ {
+ sal_Int32 nIndex = pTempIndices[nTempIndices];
+ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndices];
+
+ if (pParams[nIndex].bOut) // inout/out
+ {
+ // convert and assign
+ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+ uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+ pThis->getBridge()->getUno2Cpp() );
+ }
+ // destroy temp uno param
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list