[Libreoffice-commits] core.git: 2 commits - bin/gbuild-to-ide pyuno/source
jan Iversen
jani at documentfoundation.org
Sun Dec 25 17:26:40 UTC 2016
bin/gbuild-to-ide | 123 +++++++++++++++++++++++++++++++------
pyuno/source/module/pyuno_util.cxx | 17 +++++
2 files changed, 121 insertions(+), 19 deletions(-)
New commits:
commit 850e89adada534cb8a88b997fbe1f39c5303522f
Author: jan Iversen <jani at documentfoundation.org>
Date: Sun Dec 25 18:24:21 2016 +0100
update to make xcode load on sierra.
This update enables xcode 10.12 to open most projects
This is a pure expansion/correction of the current xcode-ide-integration.
When opening there are currently warnings.
Change-Id: Ibd0cebe1713dd74b2747aff039f094367a340a5f
diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide
index 981b1c5..8fa98ea 100755
--- a/bin/gbuild-to-ide
+++ b/bin/gbuild-to-ide
@@ -557,19 +557,28 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
if level == 0:
return
for i in range(0, level):
- file.write(' ')
+ file.write('\t')
def write_object(self, object, file, indent):
if isinstance(object, int):
file.write('%d' % object)
- elif isinstance(object, str) and not re.search('[^A-Za-z0-9_]', object):
- file.write('%s' % object)
elif isinstance(object, str):
+ if object == '':
+ file.write('""')
+ elif not re.search('[^A-Za-z0-9_]', object):
+ file.write('%s' % object)
+ else:
file.write('"%s"' % object)
elif isinstance(object, dict):
self.write_dict(object, file, indent)
elif isinstance(object, list):
self.write_list(object, file, indent)
+ elif isinstance(object, GbuildTest):
+ file.write('""')
+ elif isinstance(object, GbuildLib):
+ file.write('""')
+ elif isinstance(object, GbuildExe):
+ file.write('""')
# Write a dictionary out as an "old-style (NeXT) ASCII plist"
def write_dict(self, dict, file, indent):
@@ -621,25 +630,87 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
'hasScannedForEncodings': 0,
'knownRegions': ['en'],
'mainGroup': self.mainGroupId,
- 'productRefGroup': self.productRefGroupId,
+ 'productRefGroup': self.productGroupId,
'projectDirPath': '',
'projectRoot': '',
- 'buildConfigurationList': self.generate_id(),
+ 'buildConfigurationList': self.configurationListId,
'targets': [self.targetId]}
return result
+ def generate_ref_target(self, modulename):
+ result = {'isa': 'PBXFileReference',
+ 'explicitFileType': 'compiled.mach-o.executable',
+ 'includeInIndex': 0,
+ 'path': 'target',
+ 'sourceTree': 'BUILT_PRODUCTS_DIR'}
+ return result
+
def generate_target(self, modulename):
result = {'isa': 'PBXNativeTarget',
- 'buildConfigurationList': self.generate_id(),
+ 'buildConfigurationList': self.configurationListId,
'buildPhases': self.generate_build_phases(modulename),
'buildRules': [],
'dependencies': [],
- 'name': modulename,
- 'productName': modulename,
- 'productRefGroup': self.productGroupId,
+ 'name': 'target', # modulename,
+ 'productName': 'target', # modulename,
+ 'productReference': self.targetRefId,
'productType': self.get_product_type(modulename)}
return result
+ def generate_configuration_debug(self, modulename):
+ result = {'isa': 'XCBuildConfiguration',
+ 'buildSettings': {
+ 'ALWAYS_SEARCH_USER_PATHS': 'NO',
+ 'CLANG_ANALYZER_NONNULL': 'YES',
+ 'CLANG_CXX_LANGUAGE_STANDARD': 'gnu++0x',
+ 'CLANG_CXX_LIBRARY': 'libc++',
+ 'CLANG_ENABLE_MODULES': 'YES',
+ 'CLANG_ENABLE_OBJC_ARC': 'YES',
+ 'CLANG_WARN_BOOL_CONVERSION': 'YES',
+ 'CLANG_WARN_CONSTANT_CONVERSION': 'YES',
+ 'CLANG_WARN_DIRECT_OBJC_ISA_USAGE': 'YES_ERROR',
+ 'CLANG_WARN_DOCUMENTATION_COMMENTS': 'YES',
+ 'CLANG_WARN_EMPTY_BODY': 'YES',
+ 'CLANG_WARN_ENUM_CONVERSION': 'YES',
+ 'CLANG_WARN_INFINITE_RECURSION': 'YES',
+ 'CLANG_WARN_INT_CONVERSION': 'YES',
+ 'CLANG_WARN_OBJC_ROOT_CLASS': 'YES_ERROR',
+ 'CLANG_WARN_SUSPICIOUS_MOVE': 'YES',
+ 'CLANG_WARN_UNREACHABLE_CODE': 'YES',
+ 'CLANG_WARN__DUPLICATE_METHOD_MATCH': 'YES',
+ 'CODE_SIGN_IDENTITY': '-',
+ 'COPY_PHASE_STRIP': 'NO',
+ 'DEBUG_INFORMATION_FORMAT': 'dwarf',
+ 'ENABLE_STRICT_OBJC_MSGSEND': 'YES',
+ 'ENABLE_TESTABILITY': 'YES',
+ 'GCC_C_LANGUAGE_STANDARD': 'gnu99',
+ 'GCC_DYNAMIC_NO_PIC': 'NO',
+ 'GCC_NO_COMMON_BLOCKS': 'YES',
+ 'GCC_OPTIMIZATION_LEVEL': 0,
+ 'GCC_PREPROCESSOR_DEFINITIONS': [
+ 'DEBUG=1',
+ '$(inherited)'],
+ 'GCC_WARN_64_TO_32_BIT_CONVERSION': 'YES',
+ 'GCC_WARN_ABOUT_RETURN_TYPE': 'YES_ERROR',
+ 'GCC_WARN_UNDECLARED_SELECTOR': 'YES',
+ 'GCC_WARN_UNINITIALIZED_AUTOS': 'YES_AGGRESSIVE',
+ 'GCC_WARN_UNUSED_FUNCTION': 'YES',
+ 'GCC_WARN_UNUSED_VARIABLE': 'YES',
+ 'MACOSX_DEPLOYMENT_TARGET': '10.12',
+ 'MTL_ENABLE_DEBUG_INFO': 'YES',
+ 'ONLY_ACTIVE_ARCH': 'YES',
+ 'PRODUCT_NAME': '$(TARGET_NAME)',
+ 'SDKROOT': 'macosx'},
+ 'name': 'Debug'}
+ return result
+
+ def generate_configuration_list(self, modulename):
+ result = {'isa': 'XCConfigurationList',
+ 'buildConfigurations': [self.configurationDebugId],
+ 'defaultConfigurationIsVisible': 0,
+ 'defaultConfigurationName': 'Debug'}
+ return result
+
def generate_main_group(self, modulename):
result = {'isa': 'PBXGroup',
'children': [self.subMainGroupId, self.productGroupId],
@@ -647,7 +718,7 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
return result
def generate_sub_main_children(self, modulename):
- return []
+ return list(self.sourceRefList.keys())
def generate_sub_main_group(self, modulename):
result = {'isa': 'PBXGroup',
@@ -678,34 +749,48 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
def generate_sources_build_phase(self, modulename):
result = {'isa': 'PBXSourcesBuildPhase',
'buildActionMask': 2147483647,
- 'files': self.sourceList.keys(),
+ 'files': list(self.sourceList.keys()),
'runOnlyForDeploymentPostprocessing': 0}
return result
def generate_project(self, target):
- self.rootObjectId = self.generate_id()
- self.mainGroupId = self.generate_id()
- self.subMainGroupId = self.generate_id()
- self.productReferenceId = self.generate_id()
+ self.rootObjectId = "X0000001" # self.generate_id()
+ self.mainGroupId = "X0000003" # self.generate_id()
+ self.subMainGroupId = "X0000005" # self.generate_id()
+ self.productReferenceId = "X0000006" # self.generate_id()
self.productRefGroupId = self.generate_id()
- self.productGroupId = self.generate_id()
- self.targetId = self.generate_id()
+ self.productGroupId = "X0000004" # self.generate_id()
+ self.targetId = "X9000001" # self.generate_id()
+ self.targetRefId = self.generate_id()
self.build_source_list(target)
self.sourcesBuildPhaseId = self.generate_id()
+ self.configurationListId = self.generate_id()
+ self.configurationDebugId = self.generate_id()
objects = {self.rootObjectId: self.generate_root_object(target),
self.targetId: self.generate_target(target),
+ self.targetRefId: self.generate_ref_target(target),
self.mainGroupId: self.generate_main_group(target),
self.subMainGroupId: self.generate_sub_main_group(target),
self.productGroupId: self.generate_product_group(target),
- self.sourcesBuildPhaseId: self.generate_sources_build_phase(target)
+ self.sourcesBuildPhaseId: self.generate_sources_build_phase(target),
+ self.configurationListId: self.generate_configuration_list(target),
+ self.configurationDebugId: self.generate_configuration_debug(target)
}
for i in self.sourceList.keys():
ref = self.sourceList[i]
objects[i] = {'isa': 'PBXBuildFile',
'fileRef': ref}
+ path = self.sourceRefList[ref]['path']
+ try:
+ path = path[path.index('/')+1:]
+ name = path[path.rindex('/')+1:]
+ except:
+ name = path
objects[ref] = {'isa': 'PBXFileReference',
'lastKnownFileType': self.sourceRefList[ref]['lastKnownFileType'],
- 'path': self.sourceRefList[ref]['path']}
+ 'path': path,
+ 'name': name,
+ 'sourceTree': '<group>'}
project = {'archiveVersion': 1,
'classes': {},
'objectVersion': 46,
commit bfbc5e539ff3e20473879cf57244befc0256f543
Author: jan Iversen <jani at documentfoundation.org>
Date: Sun Dec 25 09:52:56 2016 +0100
pyuno osx Sierra problem.
On a fresh installed Sierra pyuno fails to build due to a py_UNICODE
conversion problem.
Py_UNICODE expand to "unsigned short", and OUString expect a form of sal_UNICODE
The hack was done locally and not generally expand OUString functionality.
Change-Id: Ib7834c423c1c5cd9cd1e8d1ed8393e80bf8a5e5d
diff --git a/pyuno/source/module/pyuno_util.cxx b/pyuno/source/module/pyuno_util.cxx
index e61ff77..1fd2820 100644
--- a/pyuno/source/module/pyuno_util.cxx
+++ b/pyuno/source/module/pyuno_util.cxx
@@ -40,7 +40,16 @@ PyRef ustring2PyUnicode( const OUString & str )
PyRef ret;
#if Py_UNICODE_SIZE == 2
// YD force conversion since python/2 uses wchar_t
+#ifdef MACOSX
+ // on Sierra, python 2.7 (builtin)
+ // no known conversion from 'const sal_Unicode *' (aka 'const char16_t *') to
+ // 'const Py_UNICODE *' (aka 'const unsigned short *')
+ // An explicit cast to sal_Unicode does not work
+ // Hack to avoid that error
+ ret = PyRef( PyUnicode_FromUnicode( (const unsigned short *)str.getStr(), str.getLength() ), SAL_NO_ACQUIRE );
+#else
ret = PyRef( PyUnicode_FromUnicode( str.getStr(), str.getLength() ), SAL_NO_ACQUIRE );
+#endif
#else
OString sUtf8(OUStringToOString(str, RTL_TEXTENCODING_UTF8));
ret = PyRef( PyUnicode_DecodeUTF8( sUtf8.getStr(), sUtf8.getLength(), nullptr) , SAL_NO_ACQUIRE );
@@ -60,7 +69,15 @@ OUString pyString2ustring( PyObject *pystr )
if( PyUnicode_Check( pystr ) )
{
#if Py_UNICODE_SIZE == 2
+#ifdef MACOSX
+ // on Sierra, python 2.7 (builtin)
+ // no known conversion from 'Py_UNICODE *' (aka 'unsigned short *') to
+ // 'sal_Unicode' (aka 'char16_t') for 1st argument
+ // Hack to avoid that error
+ ret = OUString( (sal_Unicode *)PyUnicode_AS_UNICODE( pystr ) );
+#else
ret = OUString( PyUnicode_AS_UNICODE( pystr ) );
+#endif
#else
#if PY_MAJOR_VERSION >= 3
Py_ssize_t size(0);
More information about the Libreoffice-commits
mailing list