Kaydet (Commit) d712218c authored tarafından David Ostrovsky's avatar David Ostrovsky Kaydeden (comit) David Tardon

fixing pyuno bridge on mingw: packaging system-python

Change-Id: Ib46248d217b0161dc20dde0274842bd7381f0cda
üst 3f5245db
......@@ -338,8 +338,13 @@ export MINGW_PIXMAN_DLL=@MINGW_PIXMAN_DLL@
export MINGW_PLC4_DLL=@MINGW_PLC4_DLL@
export MINGW_PLDS4_DLL=@MINGW_PLDS4_DLL@
export MINGW_PNG15_DLL=@MINGW_PNG15_DLL@
export MINGW_PYTHON_DLL=@MINGW_PYTHON_DLL@
export MINGW_PYTHON_EXE=@MINGW_PYTHON_EXE@
export MINGW_PYTHON_MAJOR_VERSION=@MINGW_PYTHON_MAJOR_VERSION@
export MINGW_PYVERSION=@MINGW_PYVERSION@
export MINGW_RAPTOR_DLL=@MINGW_RAPTOR_DLL@
export MINGW_RASQAL_DLL=@MINGW_RASQAL_DLL@
export MINGW_READLINE_DLL=@MINGW_READLINE_DLL@
export MINGW_REDLAND_DLL=@MINGW_REDLAND_DLL@
export MINGW_SHARED_GCCLIB=@MINGW_SHARED_GCCLIB@
export MINGW_SHARED_GXXLIB=@MINGW_SHARED_GXXLIB@
......@@ -348,7 +353,9 @@ export MINGW_SQLITE3_DLL=@MINGW_SQLITE3_DLL@
export MINGW_SSH2_DLL=@MINGW_SSH2_DLL@
export MINGW_SSL3_DLL=@MINGW_SSL3_DLL@
export MINGW_SSL_DLL=@MINGW_SSL_DLL@
export MINGW_SYSROOT=@MINGW_SYSROOT@
export MINGW_TASN1_DLL=@MINGW_TASN1_DLL@
export MINGW_TERMCAP_DLL=@MINGW_TERMCAP_DLL@
export MINGW_ZLIB_DLL=@MINGW_ZLIB_DLL@
export MINIZIP_CFLAGS=@MINIZIP_CFLAGS@
export MINIZIP_LIBS=@MINIZIP_LIBS@
......
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil -*-
2dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil -*-
dnl configure.in serves as input for the GNU autoconf package
dnl in order to create a configure script.
......@@ -4444,6 +4444,19 @@ if test "$cross_compiling" != "yes" -a "$enable_dbgutil" != "no" -a \
fi
AC_SUBST([VALGRIND_CFLAGS])
dnl ===================================================================
dnl Set the MinGW sys-root
dnl ===================================================================
if test "$WITH_MINGW" = "yes"; then
for sysroot in /usr/i686-w64-mingw32/sys-root/mingw; do
if test -d "$sysroot"; then
MINGW_SYSROOT="$sysroot"
break
fi
done
fi
AC_SUBST([MINGW_SYSROOT])
dnl ===================================================================
dnl Set the MinGW include directories
dnl ===================================================================
......@@ -6678,17 +6691,24 @@ if test $enable_python = system; then
else
dnl How to find out the cross-compilation Python installation path?
dnl Let's hardocode what we know for different distributions for now...
for python_sysroot in /usr/i686-w64-mingw32/sys-root/mingw; do
for python_version in 2.6; do
if test -f ${python_sysroot}/include/python${python_version}/Python.h; then
PYTHON_CFLAGS="-I${python_sysroot}/include/python$python_version"
PYTHON_LIBS="-L${python_sysroot}lib -lpython$python_version $python_libs"
break
fi
done
test -n "$PYTHON_CFLAGS" && break
for python_version in 2.6; do
if test -f ${MINGW_SYSROOT}/include/python${python_version}/Python.h; then
PYTHON_CFLAGS="-I${MINGW_SYSROOT}/include/python$python_version"
PYTHON_LIBS="-L${MINGW_SYSROOT}lib -lpython$python_version $python_libs"
MINGW_PYTHON_EXE=python.exe
libo_MINGW_CHECK_DLL([PYTHON], [libpython$python_version])
libo_MINGW_CHECK_DLL([READLINE], [libreadline6])
libo_MINGW_CHECK_DLL([TERMCAP], [libtermcap])
# could we somehow extract the really mingw python version from
# actual distro package?
# 2.6.2 currently on OpenSUSE 12.1?
# rpm -q mingw32-python => mingw32-python-2.6.2-17.17.noarch
MINGW_PYTHON_MAJOR_VERSION="$python_version"
MINGW_PYVERSION=$python_version.2
break
fi
done
test -n "$PYTHON_CFLAGS" && break
fi
fi
......@@ -6742,6 +6762,12 @@ fi
AC_SUBST(SYSTEM_PYTHON)
AC_SUBST(PYTHON_CFLAGS)
AC_SUBST(PYTHON_LIBS)
AC_SUBST([MINGW_PYTHON_EXE])
AC_SUBST([MINGW_PYTHON_DLL])
AC_SUBST([MINGW_READLINE_DLL])
AC_SUBST([MINGW_TERMCAP_DLL])
AC_SUBST(MINGW_PYVERSION)
AC_SUBST(MINGW_PYTHON_MAJOR_VERSION)
dnl ===================================================================
dnl Check for system Berkeley db
......
......@@ -74,17 +74,21 @@ MINGW_DLLS:= \
$(MINGW_NSS3_DLL) \
$(MINGW_NSSUTIL3_DLL) \
$(MINGW_PIXMAN_DLL) \
$(MINGW_PYTHON_DLL) \
$(MINGW_PYTHON_EXE) \
$(MINGW_PLC4_DLL) \
$(MINGW_PLDS4_DLL) \
$(MINGW_PNG15_DLL) \
$(MINGW_RAPTOR_DLL) \
$(MINGW_RASQAL_DLL) \
$(MINGW_READLINE_DLL) \
$(MINGW_REDLAND_DLL) \
$(MINGW_SQLITE3_DLL) \
$(MINGW_SSH2_DLL) \
$(MINGW_SSL3_DLL) \
$(MINGW_SSL_DLL) \
$(MINGW_TASN1_DLL) \
$(MINGW_TERMCAP_DLL) \
$(MINGW_ZLIB_DLL)
.IF "$(MINGW_SHARED_GCCLIB)" == "YES"
......
......@@ -29,7 +29,15 @@ $(eval $(call gb_CustomTarget_CustomTarget,pyuno/pyversion))
$(call gb_CustomTarget_get_target,pyuno/pyversion) : \
$(call gb_CustomTarget_get_workdir,pyuno/pyversion)/pyversion.hxx
# system python
ifeq ($(SYSTEM_PYTHON),YES)
# mingw: MINGW_PYVERSION is defined in configure
ifeq ($(GUI)$(COM),WNTGCC)
PYVERSION=$(MINGW_PYVERSION)
endif
else
include $(OUTDIR)/inc/pyversion.Makefile
endif
$(call gb_CustomTarget_get_workdir,pyuno/pyversion)/pyversion.hxx : $(SRCDIR)/pyuno/zipcore/pyversion.inc | \
$(call gb_CustomTarget_get_workdir,pyuno/pyversion)/.dir
......
......@@ -26,7 +26,18 @@
$(eval $(call gb_CustomTarget_CustomTarget,pyuno/zipcore))
# system python (only mingw)
ifeq ($(SYSTEM_PYTHON),YES)
# mingw: MINGW_PYVERSION and MINGW_SYSROOT are defined in configure
ifeq ($(GUI)$(COM),WNTGCC)
PYVERSION=$(MINGW_PYVERSION)
pyuno_PYTHON_LIB_DIR=$(MINGW_SYSROOT)/lib/python$(MINGW_PYTHON_MAJOR_VERSION)
endif
else
include $(OUTDIR)/inc/pyversion.Makefile
pyuno_PYTHON_LIB_DIR=$(OUTDIR)/lib/python
endif
pyuno_PYTHON_ARCHIVE_NAME:=python-core-$(PYVERSION).zip
FIND=find
GREP=grep
......@@ -36,12 +47,12 @@ $(call gb_CustomTarget_get_target,pyuno/zipcore) : \
# capture the files to have them in prerequisite list
pyuno_zipcore_FINDLIBFILES:=\
$(shell $(FIND) $(OUTDIR)/lib/python -type f| $(GREP) -v "\.pyc" | $(GREP) -v "\.py~" | $(GREP) -v .orig | $(GREP) -v _failed)
$(shell $(FIND) $(pyuno_PYTHON_LIB_DIR) -type f| $(GREP) -v "\.pyc" | $(GREP) -v "\.py~" | $(GREP) -v .orig | $(GREP) -v _failed)
# create zip archive
$(call gb_CustomTarget_get_workdir,pyuno/zipcore)/$(pyuno_PYTHON_ARCHIVE_NAME) : $(pyuno_zipcore_FINDLIBFILES) | \
$(call gb_CustomTarget_get_workdir,pyuno/zipcore)/.dir
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ZIP,1)
cd $(OUTDIR)/lib/python && zip $@ $(shell cd $(OUTDIR)/lib/python && $(FIND) . -type f | $(GREP) -v "\.pyc" | $(GREP) -v "\.py~" | $(GREP) -v .orig | $(GREP) -v _failed)
cd $(pyuno_PYTHON_LIB_DIR) && zip $@ $(shell cd $(pyuno_PYTHON_LIB_DIR) && $(FIND) . -type f | $(GREP) -v "\.pyc" | $(GREP) -v "\.py~" | $(GREP) -v .orig | $(GREP) -v _failed)
# vim: set noet sw=4 ts=4:
......@@ -41,7 +41,11 @@ $(eval $(call gb_Module_add_targets,pyuno,\
))
endif
ifneq ($(SYSTEM_PYTHON),YES)
#
# Windows: only --enable-python=internal possible
# mingw: both cases possible: internal && system
# that why it makes sense to handle the next 3 targets
# with SYSTEM_PYTHON=YES and SYSTEM_PYTHON=NO
# zipcore: pyuno/python.exe on Windows
# zipcore: pyversion.hxx on Windows
......@@ -52,6 +56,7 @@ $(eval $(call gb_Module_add_targets,pyuno,\
))
endif
ifneq ($(SYSTEM_PYTHON),YES)
# zipcore: python.sh on Unix
ifeq ($(GUI),UNX)
......@@ -76,6 +81,16 @@ $(eval $(call gb_Module_add_targets,pyuno,\
))
endif
else # SYSTEM_PYTHON
# previous two targets has to be executed also with system-python on mingw
ifeq ($(OS)$(COM),WNTGCC)
$(eval $(call gb_Module_add_targets,pyuno,\
CustomTarget_zipcore \
Package_zipcore \
))
endif
endif # SYSTEM_PYTHON
endif # DISABLE_PYTHON
......
......@@ -26,7 +26,16 @@
$(eval $(call gb_Package_Package,python_zipcore,$(call gb_CustomTarget_get_workdir,pyuno/zipcore)))
# system python
ifeq ($(SYSTEM_PYTHON),YES)
# mingw: MINGW_PYVERSION is defined in configure
ifeq ($(GUI)$(COM),WNTGCC)
PYVERSION=$(MINGW_PYVERSION)
endif
else
include $(OUTDIR)/inc/pyversion.Makefile
endif
pyuno_PYTHON_ARCHIVE_NAME:=python-core-$(PYVERSION).zip
$(eval $(call gb_Package_add_file,python_zipcore,bin/$(pyuno_PYTHON_ARCHIVE_NAME),$(pyuno_PYTHON_ARCHIVE_NAME)))
......
......@@ -138,11 +138,7 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) {
wchar_t pythonexe[MAX_PATH];
wchar_t * pythonexeEnd = tools::buildPath(
pythonexe, path, pathEnd,
#ifdef __MINGW32__
MY_STRING(L"\\python-core-" MY_PYVERSION L"\\bin\\python.bin"));
#else
MY_STRING(L"\\python-core-" MY_PYVERSION L"\\bin\\python.exe"));
#endif
if (pythonexeEnd == NULL) {
exit(EXIT_FAILURE);
}
......
......@@ -40,6 +40,15 @@ else ifeq ($(SYSTEM_PYTHON),YES)
$(eval $(call gb_InstallModule_add_defs,scp2/python,\
-DSYSTEM_PYTHON \
))
# mingw: mix mode copy file from system python to installation set
ifeq ($(GUI)$(COM),WNTGCC)
$(eval $(call gb_InstallModule_add_defs,scp2/python,\
-DPYVERSION=$(MINGW_PYVERSION) \
-DMINGW_SYSTEM_PYTHON \
))
endif
else
include $(OUTDIR)/inc/pyversion.Makefile
......
......@@ -310,7 +310,7 @@ Unixlink gid_Unixlink_Python_libpython
Styles = ();
End
#endif //MACOSX
#endif
#endif //SYSTEM_PYTHON
#ifdef UNX
......@@ -324,5 +324,47 @@ End
#endif
#ifdef MINGW_SYSTEM_PYTHON
// python_wrapper.exe
File gid_File_Py_Bin_Python
BIN_FILE_BODY;
Name = EXENAME(pyuno/python);
Dir = gid_Brand_Dir_Program;
Styles = (PACKED);
End
Directory gid_Dir_Py_PythonCore
ParentID = gid_Brand_Dir_Program;
HostName = STRING(CONCAT2(python-core-,PYVERSION));
End
Directory gid_Dir_Py_PythonCore_Lib
ParentID = gid_Dir_Py_PythonCore;
HostName = "lib";
End
File gid_File_Py_Python_Core
TXT_FILE_BODY;
Dir = gid_Dir_Py_PythonCore_Lib;
Name = STRING(CONCAT3(python-core-,PYVERSION,.zip));
Styles = (ARCHIVE);
End
Directory gid_Dir_Py_PythonCore_Bin
ParentID = gid_Dir_Py_PythonCore;
HostName = bin;
End
File gid_File_Py_Python_Bin
BIN_FILE_BODY;
Dir = gid_Dir_Py_PythonCore_Bin;
Name = EXENAME(python);
Styles = (PACKED);
End
#endif //MINGW_SYSTEM_PYTHON
// DISABLE_PYUNO
#endif
......@@ -41,7 +41,8 @@ Module gid_Module_Optional_Pyuno
gid_Dir_PythonFramework_Versions_ver_lib,
gid_Dir_PythonFramework_Versions_ver_lib_pythonver,
gid_Dir_PythonFramework_Versions_ver_lib_pythonver_config,
gid_Dir_Py_PythonCore, gid_Dir_Py_PythonCore_Bin,
gid_Dir_Py_PythonCore,
gid_Dir_Py_PythonCore_Bin,
gid_Dir_Py_PythonCore_Lib);
Files = (gid_File_Pyuno,
gid_File_Lib_Pyuno,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment