Commit 267c1347 authored by Tristan Cavelier's avatar Tristan Cavelier

xxx third party -icu -cef

parent ec044f94
......@@ -5,19 +5,24 @@ extends =
../curl/buildout.cfg
../libxml2/buildout.cfg
../zlib/buildout.cfg
# for 3dparty dependencies
../p7zip/buildout.cfg
../boost-lib/buildout.cfg
../icu/buildout.cfg
## for 3dparty dependencies
# ../git/buildout.cfg
# for qmake
../qt/buildout.cfg
# for wrapper
../dash/buildout.cfg
# XXX qmake ! use pre-configure !!
parts +=
onlyoffice-core
[onlyoffice-core]
# XXX please, put the third party component in slapos !
# boost, cef, icu, v8 and pole (is there others ??? XXX TRISTAN XXX)
# XXX please, put the third party components in slapos !
# boost, v8
recipe = slapos.recipe.cmmi
location = ${buildout:parts-directory}/${:_buildout_section_name_}
# XXX remove keep-compile-dir !
keep-compile-dir = true
# This url contains the hash provided by the DocumentServer core submodule hash.
# https://github.com/ONLYOFFICE/DocumentServer/tree/ONLYOFFICE-DocumentServer-4.2.9
......@@ -27,25 +32,108 @@ patch-options = -p0
patches =
${:_profile_base_location_}/rewrite-scripts.patch#3c82738b72fe2765d7da8c98a872f15d
pre-configure-QMAKE_CXXFLAGS =
-std=c++11
-Wno-comment
-Wno-deprecated-declarations
-Wno-endif-labels
-Wno-parentheses
-Wno-reorder
-Wno-sign-compare
-Wno-switch
-Wno-unknown-pragmas
-Wno-unused
-I${curl:location}/include
-I${libxml2:location}/include
-I${zlib:location}/include
pre-configure-QMAKE_LFLAGS =
-L${curl:location}/lib -Wl,-rpath=${curl:location}/lib
-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib
-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
pre-configure =
set -e -x
# put QMAKE_{CXXFLAGS,LFLAGS} into shell vars
qmake_cxxflags=$(echo " ${:pre-configure-QMAKE_CXXFLAGS}" | sed ':a;N;$!ba;s/\n/ /g')
qmake_lflags=$(echo " ${:pre-configure-QMAKE_LFLAGS}" | sed ':a;N;$!ba;s/\n/ /g')
# prepare spec for cryptopp third party (XXX use slapos cryptopp)
sed 's:^CRYPTOPP_QMAKE_SPEC=SED_IT$:CRYPTOPP_QMAKE_SPEC="${qt5-qmake:location}/qtbase/mkspecs/linux-g++":' -i Common/3dParty/cryptopp/build.sh
# fix some typos
sed 's,\(include($$PWD/OfficeUtils.pri)\)),\1,g' -i OfficeUtils/OfficeUtils.pro
sed 's,\$\$SOURCES_UTILS,'"$PWD/OfficeUtils/src,g" -i OfficeUtils/OfficeUtils.pri
sed 's@qmake -r@qmake -r -spec ${qt5-qmake:location}/qtbase/mkspecs/linux-g++ "QMAKE_CXXFLAGS += -std=c++11 -I${curl:location}/include -I${libxml2:location}/include -I${zlib:location}/include" "QMAKE_LFLAGS += -L${curl:location}/lib -Wl,-rpath=${curl:location}/lib -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib"@g' -i Makefile
( cd Common/3dParty && ./make.sh )
# patch Makefile
sed 's@qmake -r@qmake -r -spec ${qt5-qmake:location}/qtbase/mkspecs/linux-g++ '"'QMAKE_CXXFLAGS +=$qmake_cxxflags' 'QMAKE_LFLAGS +=$qmake_lflags'@g" -i Makefile
# ( cd Common/3dParty/boost && ./fetch.sh )
# ( cd Common/3dParty/boost && ./build.sh )
# ( cd Common/3dParty/v8 && ./fetch.sh )
# ( cd Common/3dParty/v8 && ./build.sh )
tar xf ../../tristan__compile__/3dpartycompiled-noicu-nocef.tar.gz
# link boost on 3dParty folders
#echo XXX && rm -rf Common/3dParty/boost/boost_1_58_0
#mkdir -p Common/3dParty/boost/boost_1_58_0/build/slapos
#true mkdir -p Common/3dParty/boost/boost_1_58_0
# XXX use shared libraries as most as possible !
#true ln -sfT ${onlyoffice-boost-lib-1.58.0-static:location}/lib Common/3dParty/boost/boost_1_58_0/build/slapos/static
# true ln -sfT ${onlyoffice-boost-lib-1.58.0-static-fpic:location}/lib Common/3dParty/boost/boost_1_58_0/build/slapos/static_fpic
#true ln -sfT ${boost-lib-1.58.0:location}/lib Common/3dParty/boost/boost_1_58_0/build/slapos/shared
#true ln -sfT ${boost-lib-1.58.0:location}/include/boost Common/3dParty/boost/boost_1_58_0/boost
# for os in linux mac win ; do for arch in 64 32 ; do ln -sf slapos Common/3dParty/boost/boost_1_58_0/build/$${os}_$${arch} ; done ; done
# XXX use cp instead of ln - no reason - just to be sure this is not a symlink issue
#cp -aT ${onlyoffice-boost-lib-1.58.0-static:location}/lib Common/3dParty/boost/boost_1_58_0/build/slapos/static
# cp -aT ${onlyoffice-boost-lib-1.58.0-static-fpic:location}/lib Common/3dParty/boost/boost_1_58_0/build/slapos/static_fpic
#cp -aT ${boost-lib-1.58.0:location}/lib Common/3dParty/boost/boost_1_58_0/build/slapos/shared
#cp -aT ${boost-lib-1.58.0:location}/include/boost Common/3dParty/boost/boost_1_58_0/boost
#mv Common/3dParty/boost/boost_1_58_0/build/slapos Common/3dParty/boost/boost_1_58_0/build/linux_64
# XXX use precompiled from old onlyoffice (that was not failing to link boost_regex)
#true cp -aT ${boost-lib-1.58.0:location}/../tristan__compile__/Common/3dParty/boost/boost_1_58_0/build Common/3dParty/boost/boost_1_58_0/build
#true cp -aT ${boost-lib-1.58.0:location}/../tristan__compile__/Common/3dParty/boost/boost_1_58_0/boost Common/3dParty/boost/boost_1_58_0/boost
# link icu on 3dParty folders
mkdir -p Common/3dParty/icu/slapos/usr/local
ln -sfT ${icu4c-55.1:location}/lib Common/3dParty/icu/slapos/build
ln -sfT ${icu4c-55.1:location}/include Common/3dParty/icu/slapos/usr/local/include
for os in linux mac win ; do for arch in 64 32 ; do ln -sf slapos Common/3dParty/icu/$${os}_$${arch} ; done ; done
# Note: curl, cryptopp and pole third parties are already embedded.
# Note: cef third party seems to be useless in core.
configure-command = true
make-targets = lib bin
environment =
PATH=${gcc:location}/bin:${binutils:location}/bin:${p7zip:location}/bin:${qt5-qmake:location}/qtbase/bin:%(PATH)s
CPPFLAGS="-I${qt5-qmake:location}/qtbase/include -I${curl:location}/include -I${libxml2:location}/include -I${zlib:location}/include"
LD_LIBRARY_PATH=${gcc:location}/lib64:${gcc:location}/lib:${binutils:location}/lib:${qt5-qmake:location}/qtbase/lib:${curl:location}/lib:${libxml2:location}/lib:${zlib:location}/lib
LDFLAGS="-Wl,-rpath=${gcc:location}/lib64 -Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${curl:location}/lib -Wl,-rpath=${libxml2:location}/lib -Wl,-rpath=${zlib:location}/lib"
PATH=${gcc:location}/bin:${binutils:location}/bin:${qt5-qmake:location}/qtbase/bin:%(PATH)s
#${git:location}/bin:
LD_LIBRARY_PATH=${gcc:location}/lib64:${gcc:location}/lib:${binutils:location}/lib:${qt5-qmake:location}/qtbase/lib
post-install =
set -e -x
mkdir -p ${:location}/bin ${:location}/lib
mv -t ${:location}/lib build/lib/*/*
# the binary linux_64 in build/bin/AllFontsGen is renamed AllFontsGen here.
mv build/bin/AllFontsGen/* ${:location}/bin/AllFontsGen
mv -t ${:location}/bin build/bin/*/*
# create wrapper for x2t
mv ${:location}/bin/x2t ${:location}/bin/x2t.bin
echo '#!/bin/sh
exec ${dash:location}/bin/dash -c '\''
export LD_LIBRARY_PATH="${onlyoffice-core:location}/lib:${icu4c-55.1:location}/lib:${curl:location}/lib$${LD_LIBRARY_PATH:-:$LD_LIBRARY_PATH}"
# (XXX add boost/lib if we use it as shared library)
exec ${:location}/bin/x2t.bin "$@"'\'' "$0" "$@"' > ${:location}/bin/x2t
chmod +x ${:location}/bin/x2t
# create wrapper for AllFontsGen
mv ${:location}/bin/AllFontsGen ${:location}/bin/AllFontsGen.bin
echo '#!/bin/sh
exec ${dash:location}/bin/dash -c '\''
export LD_LIBRARY_PATH="${gcc:location}/lib64:${gcc:location}/lib$${LD_LIBRARY_PATH:-:$LD_LIBRARY_PATH}"
exec ${:location}/bin/AllFontsGen.bin "$@"'\'' "$0" "$@"' > ${:location}/bin/AllFontsGen
chmod +x ${:location}/bin/AllFontsGen
# XXX how to use x2t binary :
# export LD_LIBRARY_PATH=${onlyoffice-core:location}/lib:${icu4c-55.1:location}/lib
# exec ${onlyoffice-core:location}/bin/x2t "$@"
[onlyoffice-boost-lib-1.58.0-static]
<= boost-lib-1.58.0
make-targets = ./b2 --clean && ./bjam link=static dll-path=${:location}/lib:${bzip2:location}/lib:${zlib:location}/lib install
[onlyoffice-boost-lib-1.58.0-static-fpic]
<= onlyoffice-boost-lib-1.58.0-static
make-targets = ./b2 link=static cxxflags=-fPIC dll-path=${:location}/lib:${bzip2:location}/lib:${zlib:location}/lib install
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