From aed116c4fcc2d50172225981ea0d2833ff4fad01 Mon Sep 17 00:00:00 2001 From: Marcin Woliński <wolinski@ipipan.waw.pl> Date: Fri, 3 Jul 2020 15:08:45 +0200 Subject: [PATCH] skrypty kompilacyjne wstawione do repozytorium --- buildAll.sh | 309 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- buildDarwin.sh | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------- buildDict.sh | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ buildLinux.sh | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ buildOtherDict.sh | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ buildWindows.sh | 314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fsabuilder/CMakeLists.txt | 14 +++++++------- 7 files changed, 930 insertions(+), 384 deletions(-) delete mode 100755 buildAll.sh create mode 100755 buildDict.sh create mode 100755 buildLinux.sh create mode 100755 buildOtherDict.sh create mode 100755 buildWindows.sh diff --git a/buildAll.sh b/buildAll.sh deleted file mode 100755 index 8c11421..0000000 --- a/buildAll.sh +++ /dev/null @@ -1,309 +0,0 @@ -#!/bin/bash - -set -e -o pipefail - -if [ "$#" -ne 4 ]; then - echo "Must provide exactly 4 arguments: <CROSSMORFEUSZ_ROOT> <INPUT_DICTIONARIES> <DEFAULT_DICT_NAME> <DICT_VERSION>" - exit 1 -fi - -export CROSSMORFEUSZ_ROOT="$1" -export INPUT_DICTIONARIES="$2" -export DEFAULT_DICT_NAME="$3" -export DICT_VERSION="$4" -export ANALYZER_DICTIONARY_CPP=`mktemp`.cpp -export GENERATOR_DICTIONARY_CPP=`mktemp`.cpp -export DICT_DIR=`mktemp -d` - -function buildDictionaries { - - INPUT_TAGSET=input/morfeusz-sgjp.tagset - SEGMENT_RULES_FILE=input/segmenty.dat - - python fsabuilder/morfeusz_builder \ - --input-files="$INPUT_DICTIONARIES" \ - --tagset-file="$INPUT_TAGSET" \ - --segments-file="$SEGMENT_RULES_FILE" \ - --analyzer-cpp="$ANALYZER_DICTIONARY_CPP" \ - --generator-cpp="$GENERATOR_DICTIONARY_CPP" \ - --dict="$DEFAULT_DICT_NAME" \ - --dict-dir="$DICT_DIR" - - echo "DONE building dictionaries" >&2 -} - -function build { - set -e -o pipefail - os=$1 - arch=$2 - embedded=$3 - python_ver=$4 - shift - shift - shift - shift - targets=$@ - - srcDir=`pwd` - buildDir=buildall/$os-$arch-$embedded - targetDir=$srcDir/target - toolchain=$srcDir/toolchains/Toolchain-$os-$arch.cmake - - echo "Will use $toolchain toolchain" - - # rm -rf $buildDir - #~ rm -rf $targetDir - rm -f $buildDir/CMakeCache.txt - mkdir -p $buildDir - mkdir -p $targetDir - cd $buildDir - - if [ "$embedded" = true ] - then - if [ "$os" == "Linux" ] - then - CPACK_GENERATOR=TGZ - fi - CMAKE_ARGS="-D CROSSMORFEUSZ_ROOT=$CROSSMORFEUSZ_ROOT \ - -D CMAKE_TOOLCHAIN_FILE=$toolchain \ - -D TARGET_DIR=$targetDir \ - -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \ - -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \ - -D DEFAULT_DICT_NAME=$DEFAULT_DICT_NAME \ - -D SKIP_DICTIONARY_BUILDING=1 \ - -D EMBEDDED_DEFAULT_DICT=1 \ - -D DICT_VERSION=$DICT_VERSION" - if [ "$CPACK_GENERATOR" != "" ] - then - CMAKE_ARGS="$CMAKE_ARGS -D CPACK_GENERATOR=$CPACK_GENERATOR" - fi - else - echo "setting default ACL to prevent control-file-has-bad-permissions lintian error" - setfacl -R -d -m o::rx -m g::rx -m u::rwx . - - CMAKE_ARGS="-D CROSSMORFEUSZ_ROOT=$CROSSMORFEUSZ_ROOT \ - -D CMAKE_TOOLCHAIN_FILE=$toolchain \ - -D TARGET_DIR=$targetDir \ - -D DEFAULT_DICT_DIR=$DICT_DIR \ - -D DEFAULT_DICT_NAME=$DEFAULT_DICT_NAME \ - -D SKIP_DICTIONARY_BUILDING=1 \ - -D CPACK_GENERATOR=DEB \ - -D DICT_VERSION=$DICT_VERSION" - fi - CMAKE_ARGS="$CMAKE_ARGS -D PY=$python_ver" - cmake $CMAKE_ARGS $srcDir 2>&1 - echo "building $toolchain" >&2 - make - make $targets - - for f in `find "$targetDir" -name "*-Linux-*.deb"` - do - mv "$f" "`echo $f | sed -r 's/Linux-amd64.deb$/amd64.deb/' | sed -r 's/Linux-i386.deb/i386.deb/'`" - done - - for f in `find "$targetDir" -name "*-Linux-*.egg"` - do - mv "$f" "`echo $f | sed -r 's/Linux-amd64.egg$/linux-x86_64.egg/' | sed -r 's/Linux-i386.egg$/linux-i686.egg/'`" - done - - if [ "$os" = Linux -a "$embedded" = false ]; then - "$srcDir/createDictionaryDeb.sh" "$DICT_DIR" "${DEFAULT_DICT_NAME}" "${DICT_VERSION}" "${targetDir}" - fi - - cd "$srcDir" -} - -function log { - os=$1 - arch=$2 - stdbuf -oL sed -e $"s/^/$os-$arch:\t/" | tee "log/$os-$arch.out" -} - -function buildegg { - os=$1 - arch=$2 - embedded=$3 - python_ver=$4 - - srcDir=`pwd` - buildDir=buildall/$os-$arch-$embedded/morfeusz/wrappers/python${python_ver:0:1} - if [[ "$python_ver" =~ 2.* ]] - then - eggName=morfeusz2-0.4.0-py2.7 - eggDir=$buildDir/$eggName - pythonIncl=python27 - if [ "$os-$arch" == "Windows-amd64" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python27 - elif [ "$os-$arch" == "Windows-i386" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/windows32/Python27 - elif [ "$os-$arch" == "Linux-i386" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/linux32/python/include/python2.7 - elif [ "$os-$arch" == "Darwin-amd64" ] - then - pythonIncl=python2.7 - pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/Python.framework/Headers - pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/Python.framework/Versions/2.7/lib - fi - else - if [ "$os-$arch" == "Windows-amd64" ] - then - if [ "$python_ver" == "3.6" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python36 - eggName=morfeusz2-0.4.0-py3.6 - eggDir=$buildDir/$eggName - pythonIncl=python36 - elif [ "$python_ver" == "3.7" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python37 - eggName=morfeusz2-0.4.0-py3.7 - eggDir=$buildDir/$eggName - pythonIncl=python37 - fi - else - eggName=morfeusz2-0.4.0-py3.6 - eggDir=$buildDir/$eggName - pythonIncl=python36 - if [ "$os-$arch" == "Windows-i386" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/windows32/Python36-32 - elif [ "$os-$arch" == "Linux-i386" ] - then - pythonDir=$CROSSMORFEUSZ_ROOT/linux32/python3/include/python3.4m - elif [ "$os-$arch" == "Darwin-amd64" ] - then - pythonIncl=python3.6 - pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/Python3.framework/Versions/3.6/Headers - pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/Python3.framework/Versions/3.6/lib - fi - fi - fi - - targetDir=$srcDir/target - echo "$srcDir" - echo "$buildDir" - echo "$eggDir" - echo "$pythonDir" - if [ "$os-$arch" == "Windows-amd64" ] - then - gcc_command="x86_64-w64-mingw32-gcc -pthread -static-libgcc -static-libstdc++ -std=c++98 -DNDEBUG -DMS_WIN64 -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -fPIC -I$srcDir/morfeusz -I$buildDir/../../.. -I$pythonDir/include -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" - echo "$gcc_command" - eval $gcc_command - gpp_command="x86_64-w64-mingw32-g++ -pthread -static-libgcc -static-libstdc++ -DMS_WIN64 -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonDir/libs -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.pyd" - echo "$gpp_command" - eval $gpp_command - elif [ "$os-$arch" == "Windows-i386" ] - then - gcc_command="i686-w64-mingw32-gcc -pthread -static-libgcc -static-libstdc++ -std=c++98 -DNDEBUG -DMS_WIN64 -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -fPIC -I$srcDir/morfeusz -I$buildDir/../../.. -I$pythonDir/include -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" - echo "$gcc_command" - eval $gcc_command - gpp_command="i686-w64-mingw32-g++ -pthread -static-libgcc -static-libstdc++ -DMS_WIN64 -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonDir/libs -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.pyd" - echo "$gpp_command" - eval $gpp_command - elif [ "$os-$arch" == "Linux-i386" ] - then - gcc_command="x86_64-linux-gnu-gcc -m32 -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I$srcDir/morfeusz -I$buildDir/../../.. -I$pythonDir -I$pythonDir/.. -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" - echo "$gcc_command" - eval $gcc_command - gpp_command="x86_64-linux-gnu-g++ -m32 -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 $buildDir/swigPYTHON.o -L$buildDir/../.. -lmorfeusz2 -o $eggDir/_morfeusz2.so" - echo "$gpp_command" - eval $gpp_command - elif [ "$os-$arch" == "Darwin-amd64" ] - then - gcc_command="/home/zil/crossmorfeusz/darwin64/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-gcc -std=c++98 -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -Wformat -D_FORTIFY_SOURCE=2 -fPIC -I$srcDir/morfeusz -I$buildDir/../../.. -I$pythonDir -I$pythonDir/.. -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" - echo "$gcc_command" - eval $gcc_command - gpp_command="/home/zil/crossmorfeusz/darwin64/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-g++ -std=c++98 -Wall -O3 -DNDEBUG -dynamiclib -Wl,-headerpad_max_install_names -install_name _morfeusz2.so $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonLib -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.so" - echo "$gpp_command" - eval $gpp_command - fi - - - if [ "$os" == "Windows" ] - then - cp $buildDir/../../morfeusz2.dll $eggDir/ - elif [ "$os" == "Linux" ] - then - cp $buildDir/../../libmorfeusz2.so $eggDir/ - elif [ "$os" == "Darwin" ] - then - cp $buildDir/../../libmorfeusz2.dylib $eggDir/ - fi - - cp $buildDir/morfeusz2.py $eggDir/ - if [ -d "$buildDir/$eggName" ]; then - cd $buildDir/$eggName - if [ "$os-$arch" == "Windows-amd64" ] - then - zip -r $eggName-win-amd64.zip ./* - cp $eggName-win-amd64.zip $targetDir/$eggName-win-amd64.egg - elif [ "$os-$arch" == "Windows-i386" ] - then - zip -r $eggName-win32.zip ./* - cp $eggName-win32.zip $targetDir/$eggName-win32.egg - elif [ "$os-$arch" == "Linux-i386" ] - then - zip -r $eggName-linux-i686.zip ./* - cp $eggName-linux-i686.zip $targetDir/$eggName-linux-i686.egg - elif [ "$os-$arch" == "Darwin-amd64" ] - then - zip -r $eggName-macosx-10.9-x86_64.zip ./* - cp $eggName-macosx-10.9-x86_64.zip $targetDir/$eggName-macosx-10.9-x86_64.egg - fi - fi - -} - -export -f build -export -f log -export -f buildegg - -rm -rf log target buildall -mkdir -p log buildall - -buildDictionaries 2>&1 | log All all - -{ - echo "build Linux amd64 true 2.7 package package-java package-python2 package-builder 2>&1 | log Linux-tgz2 amd64; \ - build Linux amd64 true 3.0 package-python3 2>&1 | log Linux-tgz3 amd64" - echo "build Linux amd64 false 0 lib-deb bin-deb dev-deb dictionary-deb java-deb 2>&1 | log Linux-deb amd64" - echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 2.7 package package-java py2morfeusz 2>&1 | log Linux-tgz i386; \ - buildegg Linux i386 true 2.7 2>&1 | log Linux i386; \ - LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 3.0 py3morfeusz 2>&1 | log Linux-tgz i386; \ - buildegg Linux i386 true 3.0 2>&1 | log Linux i386" - echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 false 0 lib-deb bin-deb java-deb 2>&1 | log Linux-deb i386" - echo "build Windows amd64 true 2.7 package package-java py2morfeusz 2>&1 | log Windows amd64; \ - buildegg Windows amd64 true 2.7 2>&1 | log Windows amd64; \ - build Windows amd64 true 3.6 py3morfeusz 2>&1 | log Windows amd64; \ - buildegg Windows amd64 true 3.6 2>&1 | log Windows amd64; \ - build Windows amd64 true 3.7 py3morfeusz 2>&1 | log Windows amd64; \ - buildegg Windows amd64 true 3.7 2>&1 | log Windows amd64" - echo "build Windows i386 true 2.7 package package-java py2morfeusz 2>&1 | log Windows i386; \ - buildegg Windows i386 true 2.7 2>&1 | log Windows i386; \ - build Windows i386 true 3.0 py3morfeusz 2>&1 | log Windows i386 \ - buildegg Windows i386 true 3.0 2>&1 | log Windows i386" - echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64; \ - buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64; \ - build Darwin amd64 true 3 py3morfeusz 2>&1 | log Darwin amd64; \ - buildegg Darwin amd64 true 3 2>&1 | log Darwin amd64" - echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64" - echo "buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64" - -} | xargs -n1 -P6 -d$'\n' bash -c - -srcDir=`pwd` -targetDir=$srcDir/target - -for f in `find "$targetDir" -name "*-py3.6-linux-x86_64.egg"` -do - cp -f "$f" "`echo $f | sed -r 's/py3.6/py3.7/'`" -done - -for f in `find "$targetDir" -name "*-py3.5-linux-x86_64.egg"` -do - cp -f "$f" "`echo $f | sed -r 's/py3.5/py3.6/'`" - cp -f "$f" "`echo $f | sed -r 's/py3.5/py3.7/'`" -done diff --git a/buildDarwin.sh b/buildDarwin.sh index 0cb687a..6435657 100755 --- a/buildDarwin.sh +++ b/buildDarwin.sh @@ -1,57 +1,68 @@ #!/bin/bash +# Kompiluje bibliotekę i buduje paczki dystrybucyjne zawierające +# Morfeusza i słowniki SGJP i Polimorf +# +# Założenia: +# • kod źródłowy Morfeusza jest w MORFEUSZ_SRC +# • słowniki są już skompilowane w katalogu DICT_DIR +# • kompilacja odbędzie się w katalogu BUILD_DIR (który zostanie skasowany i utworzony) +# • wyniki zostaną umieszczone w TARGET_DIR -set -e -o pipefail +#set -ex -o pipefail +set -x -if [ "$#" -ne 4 ]; then - echo "Must provide exactly 4 arguments: <CROSSMORFEUSZ_ROOT> <INPUT_DICTIONARIES> <DEFAULT_DICT_NAME> <DICT_VERSION>" +if [ "$#" -ne 3 ]; then + echo "Expected arguments: ‹DICT_NAME› ‹DICT_VERSION› ‹64/32›" exit 1 fi -export CROSSMORFEUSZ_ROOT="$1" -export INPUT_DICTIONARIES="$2" -export DEFAULT_DICT_NAME="$3" -export DICT_VERSION="$4" -export ANALYZER_DICTIONARY_CPP=`mktemp`.cpp -export GENERATOR_DICTIONARY_CPP=`mktemp`.cpp -export DICT_DIR=`mktemp -d` +export DICT_NAME="$1" +export DICT_VERSION="$2" +export BITS=$3 + + +export MORFEUSZ_SRC=`pwd`/Morfeusz +export DICT_DIR=`pwd`/dicts +export CROSSMORFEUSZ_ROOT=$HOME/crossmorfeusz +export ANALYZER_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-a.cpp +export GENERATOR_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-s.cpp + + +export BUILD_ROOT=`pwd`/build/$1 +export TARGET_ROOT=`pwd`/target + -function buildDictionaries { - - INPUT_TAGSET=input/morfeusz-sgjp.tagset - SEGMENT_RULES_FILE=input/segmenty.dat - - python fsabuilder/morfeusz_builder \ - --input-files="$INPUT_DICTIONARIES" \ - --tagset-file="$INPUT_TAGSET" \ - --segments-file="$SEGMENT_RULES_FILE" \ - --analyzer-cpp="$ANALYZER_DICTIONARY_CPP" \ - --generator-cpp="$GENERATOR_DICTIONARY_CPP" \ - --dict="$DEFAULT_DICT_NAME" \ - --dict-dir="$DICT_DIR" - - echo "DONE building dictionaries" >&2 -} function build { set -e -o pipefail os=$1 - arch=$2 + bity=$2 embedded=$3 - shift - shift - shift + python_ver=$4 + shift 4 targets=$@ + + if [ "$bity" = "64" ]; then + arch=amd64 + else + arch=i386 + fi + + toolchain=$MORFEUSZ_SRC/toolchains/Toolchain-$os-$arch.cmake + + buildDir=$BUILD_ROOT/$os-$bity-$embedded + targetDir=$TARGET_ROOT/$os/$bity + +# rm -rf $buildDir || true + mkdir -p $buildDir + - srcDir=`pwd` - buildDir=buildall/$os-$arch-$embedded - targetDir=$srcDir/target - toolchain=$srcDir/toolchains/Toolchain-$os-$arch.cmake - - echo "Will use $toolchain toolchain" +# echo "Will use $toolchain toolchain" - rm -rf $buildDir + # rm -rf $buildDir #~ rm -rf $targetDir mkdir -p $buildDir + rm -f $buildDir/CMakeCache.txt mkdir -p $targetDir cd $buildDir @@ -66,62 +77,209 @@ function build { -D TARGET_DIR=$targetDir \ -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \ -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \ - -D DEFAULT_DICT_NAME=$DEFAULT_DICT_NAME \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ -D SKIP_DICTIONARY_BUILDING=1 \ -D EMBEDDED_DEFAULT_DICT=1 \ - -D DICT_VERSION=$DICT_VERSION" + -D DICT_VERSION=$DICT_VERSION " if [ "$CPACK_GENERATOR" != "" ] then CMAKE_ARGS="$CMAKE_ARGS -D CPACK_GENERATOR=$CPACK_GENERATOR" fi else - echo "setting default ACL to prevent control-file-has-bad-permissions lintian error" - setfacl -R -d -m o::rx -m g::rx -m u::rwx . + # "setting default ACL to prevent control-file-has-bad-permissions lintian error" + #setfacl -R -d -m o::rx -m g::rx -m u::rwx . CMAKE_ARGS="-D CROSSMORFEUSZ_ROOT=$CROSSMORFEUSZ_ROOT \ -D CMAKE_TOOLCHAIN_FILE=$toolchain \ -D TARGET_DIR=$targetDir \ -D DEFAULT_DICT_DIR=$DICT_DIR \ - -D DEFAULT_DICT_NAME=$DEFAULT_DICT_NAME \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ -D SKIP_DICTIONARY_BUILDING=1 \ -D CPACK_GENERATOR=DEB \ - -D DICT_VERSION=$DICT_VERSION" + -D DICT_VERSION=$DICT_VERSION " fi - cmake $CMAKE_ARGS $srcDir 2>&1 - echo "building $toolchain" >&2 - make + CMAKE_ARGS="$CMAKE_ARGS -D PY=$python_ver" + cmake $CMAKE_ARGS $MORFEUSZ_SRC 2>&1 + echo "building for $os-$arch" >&2 +# make make $targets - for f in `find "$targetDir" -name "*-Linux-*.deb"` - do - mv "$f" "`echo $f | sed -r 's/Linux-amd64.deb$/amd64.deb/' | sed -r 's/Linux-i386.deb/i386.deb/'`" - done + # for f in `find "$targetDir" -name "*-Linux-*.deb"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.deb$/amd64.deb/' | sed -r 's/Linux-i386.deb/i386.deb/'`" + # done + + # for f in `find "$targetDir" -name "*-Linux-*.egg"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.egg$/linux-x86_64.egg/' | sed -r 's/Linux-i386.egg$/linux-i686.egg/'`" + # done - cd "$srcDir" } +export -f build + +function buildegg { + os=$1 + bity=$2 + embedded=$3 + python_ver=$4 + + if [ "$bity" = "64" ]; then + arch=amd64 + else + arch=i386 + fi + + buildDir=$BUILD_ROOT/$os-$bity-$embedded/morfeusz/wrappers/python${python_ver:0:1} + if [[ "$python_ver" =~ 2.* ]] + then + eggName=morfeusz2-0.4.0-py2.7 + eggDir=$buildDir/$eggName + pythonIncl=python27 + if [ "$os-$arch" == "Windows-amd64" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python27 + elif [ "$os-$arch" == "Windows-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows32/Python27 + elif [ "$os-$arch" == "Linux-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/linux32/python/include/python2.7 + elif [ "$os-$arch" == "Darwin-amd64" ] + then + pythonIncl=python2.7 + pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/Python.framework/Headers + pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/Python.framework/Versions/2.7/lib + fi + else + if [ "$os-$arch" == "Windows-amd64" ] + then + if [ "$python_ver" == "3.6" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python36 + eggName=morfeusz2-0.4.0-py3.6 + eggDir=$buildDir/$eggName + pythonIncl=python36 + elif [ "$python_ver" == "3.7" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python37 + eggName=morfeusz2-0.4.0-py3.7 + eggDir=$buildDir/$eggName + pythonIncl=python37 + fi + else + eggName=morfeusz2-0.4.0-py3.6 + eggDir=$buildDir/$eggName + pythonIncl=python36 + if [ "$os-$arch" == "Windows-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows32/Python36-32 + elif [ "$os-$arch" == "Linux-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/linux32/python3/include/python3.4m + elif [ "$os-$arch" == "Darwin-amd64" ] + then + pythonIncl=python3.6m + pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/anaconda3.6-macos/include/python3.6m + pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/anaconda3.6-macos/lib + # pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/Python3.framework/Versions/3.6/Headers + # pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/Python3.framework/Versions/3.6/lib + fi + fi + fi + + targetDir=$TARGET_ROOT/$os/$bity + echo "src_dir: $MORFEUSZ_SRC" + echo "python_build_dir: $buildDir" + echo "egg_dir: $eggDir" + echo "python_lib_dir: $pythonDir" + if [ "$os-$arch" == "Windows-amd64" ] + then + gcc_command="x86_64-w64-mingw32-gcc -pthread -static-libgcc -static-libstdc++ -std=c++98 -DNDEBUG -DMS_WIN64 -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir/include -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="x86_64-w64-mingw32-g++ -pthread -static-libgcc -static-libstdc++ -DMS_WIN64 -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonDir/libs -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.pyd" + echo "$gpp_command" + eval $gpp_command + elif [ "$os-$arch" == "Windows-i386" ] + then + gcc_command="i686-w64-mingw32-gcc -pthread -static-libgcc -static-libstdc++ -std=c++98 -DNDEBUG -DMS_WIN64 -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir/include -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="i686-w64-mingw32-g++ -pthread -static-libgcc -static-libstdc++ -DMS_WIN64 -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonDir/libs -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.pyd" + echo "$gpp_command" + eval $gpp_command + elif [ "$os-$arch" == "Linux-i386" ] + then + gcc_command="x86_64-linux-gnu-gcc -m32 -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir -I$pythonDir/.. -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="x86_64-linux-gnu-g++ -m32 -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 $buildDir/swigPYTHON.o -L$buildDir/../.. -lmorfeusz2 -o $eggDir/_morfeusz2.so" + echo "$gpp_command" + eval $gpp_command + elif [ "$os-$arch" == "Darwin-amd64" ] + then + gcc_command="/usr/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-gcc -std=c++98 -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -Wformat -D_FORTIFY_SOURCE=2 -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir -I$pythonDir/.. -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + eval $gcc_command + gpp_command="/usr/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-g++ -std=c++98 -Wall -O3 -DNDEBUG -dynamiclib -Wl,-headerpad_max_install_names -install_name _morfeusz2.so $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonLib -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.so" + eval $gpp_command + INSTALL_NAME_TOOL=/usr/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-install_name_tool + ${INSTALL_NAME_TOOL} -change /usr/x86_64-apple-darwin9/x86_64-apple-darwin9/lib/libstdc++.6.dylib /usr/lib/libstdc++.6.dylib $eggDir/_morfeusz2.so + ${INSTALL_NAME_TOOL} -change libmorfeusz2.dylib @loader_path/libmorfeusz2.dylib $eggDir/_morfeusz2.so + # ${INSTALL_NAME_TOOL} -change libmorfeusz2.dylib @executable_path/../bin/libmorfeusz2.dylib $eggDir/_morfeusz2.so + fi + + + if [ "$os" == "Windows" ] + then + cp $buildDir/../../morfeusz2.dll $eggDir/ + elif [ "$os" == "Linux" ] + then + cp $buildDir/../../libmorfeusz2.so $eggDir/ + elif [ "$os" == "Darwin" ] + then + cp $buildDir/../../libmorfeusz2.dylib $eggDir/ + fi + + cp $buildDir/morfeusz2.py $eggDir/ + if [ -d "$buildDir/$eggName" ]; then + cd $buildDir/$eggName + if [ "$os-$arch" == "Windows-amd64" ] + then + zip -r $eggName-win-amd64.zip ./* + cp $eggName-win-amd64.zip $targetDir/$eggName-win-amd64.egg + elif [ "$os-$arch" == "Windows-i386" ] + then + zip -r $eggName-win32.zip ./* + cp $eggName-win32.zip $targetDir/$eggName-win32.egg + elif [ "$os-$arch" == "Linux-i386" ] + then + zip -r $eggName-linux-i686.zip ./* + cp $eggName-linux-i686.zip $targetDir/$eggName-linux-i686.egg + elif [ "$os-$arch" == "Darwin-amd64" ] + then + zip -r $eggName-macosx-10.9-x86_64.zip ./* + cp $eggName-macosx-10.9-x86_64.zip $targetDir/$eggName-macosx-10.9-x86_64.egg + fi + fi + +} +export -f buildegg function log { os=$1 arch=$2 - stdbuf -oL sed -e $"s/^/$os-$arch:\t/" | tee "log/$os-$arch.out" + stdbuf -oL sed -e $"s/^/$os-$arch:\t/" | tee -a "log/$os-$arch.out" } - -export -f build export -f log -rm -rf log target -mkdir -p log - -buildDictionaries 2>&1 | log All all - -{ - #echo "build Linux amd64 true package package-java package-python package-builder 2>&1 | log Linux-tgz amd64" - #echo "build Linux amd64 false package 2>&1 | log Linux-deb amd64" - #echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true package package-java 2>&1 | log Linux-tgz i386" - #echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 false package 2>&1 | log Linux-deb i386" - #echo "build Windows amd64 true package package-java 2>&1 | log Windows amd64" - #echo "build Windows i386 true package package-java 2>&1 | log Windows i386" - echo "build Darwin amd64 true package package-java 2>&1 | log Darwin amd64" -} | xargs -n1 -P2 -d$'\n' bash -c +##??? rm -rf log $BUILD_ROOT +mkdir -p log +build Darwin $BITS true 2 package package-java gui-dmg 2>&1 | log Darwin $BITS; +build Darwin $BITS true 2 py2morfeusz 2>&1 | log Darwin $BITS; +buildegg Darwin $BITS true 2 2>&1 | log Darwin $BITS; +build Darwin $BITS true 3 py3morfeusz 2>&1 | log Darwin $BITS; +buildegg Darwin $BITS true 3 2>&1 | log Darwin $BITS +#build Darwin $BITS true 2 package package-java py2morfeusz 2>&1 | log Darwin $BITS +#buildegg Darwin $BITS true 2 2>&1 | log Darwin $BITS diff --git a/buildDict.sh b/buildDict.sh new file mode 100755 index 0000000..1e4240c --- /dev/null +++ b/buildDict.sh @@ -0,0 +1,67 @@ +#! /bin/bash +# Buduje postać binarną i pliki .cpp zawierające słowniki SGJP i Polimorf +# +# Założenia: +# • kod źródłowy Morfeusza jest w MORFEUSZ_SRC +# • słowniki źródłowe są w katalogu SRC_DICT_DIR i nazywają się ‹słownik›-‹data›.tab +# • wynik kompilacji zostanie umieszczony w katalogu DICT_DIR (który zostanie skasowany i utworzony) +# • kompilacja odbędzie się w katalogu BUILD_DIR (który zostanie skasowany i utworzony) + + +set -ex -o pipefail + +if [ "$#" -ne 1 ]; then + echo "Exactly 1 argument needed: ‹DICT_VERSION›" + exit 1 +fi + +export MORFEUSZ_SRC=`pwd`/Morfeusz +export DICT_DIR=`pwd`/dicts +export SRC_DICT_DIR=$DICT_DIR +export BUILD_DIR=`pwd`/build/dicts + +rm -rf $BUILD_DIR || true + +mkdir -p $BUILD_DIR $DICT_DIR + +cd $BUILD_DIR +cmake $MORFEUSZ_SRC + + +export DICT_VERSION="$1" + +# argument: nazwa słownika +function buildDictionary { + set -x + DICT_NAME=$1 + + MAIN_DICT=$SRC_DICT_DIR/$DICT_NAME-$DICT_VERSION.tab + INPUT_DICTIONARIES="$MAIN_DICT,$MORFEUSZ_SRC/input/dodatki.tab" + INPUT_TAGSET=$MORFEUSZ_SRC/input/morfeusz-sgjp.tagset + SEGMENT_RULES_FILE=$MORFEUSZ_SRC/input/segmenty.dat + ANALYZER_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-a.cpp + GENERATOR_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-s.cpp + + fsabuilder/morfeusz_builder \ + --input-files="$INPUT_DICTIONARIES" \ + --tagset-file="$INPUT_TAGSET" \ + --segments-file="$SEGMENT_RULES_FILE" \ + --analyzer-cpp="$ANALYZER_DICTIONARY_CPP" \ + --generator-cpp="$GENERATOR_DICTIONARY_CPP" \ + --dict="$DICT_NAME" \ + --dict-dir="$DICT_DIR" + + echo "DONE building dictionaries" >&2 + + DICT_PACKAGE=morfeusz2-dictionary-${DICT_NAME}-${DICT_VERSION}.tgz + (cd $DICT_DIR; tar czvf $DICT_PACKAGE $DICT_NAME-a.dict $DICT_NAME-s.dict ) + gzip "$MAIN_DICT" +} + +export -f buildDictionary + + +{ + echo "buildDictionary sgjp" + echo "buildDictionary polimorf" +} | xargs -n1 -P6 -d$'\n' bash -c diff --git a/buildLinux.sh b/buildLinux.sh new file mode 100755 index 0000000..dfce9be --- /dev/null +++ b/buildLinux.sh @@ -0,0 +1,161 @@ +#!/bin/bash +# Kompiluje bibliotekę i buduje paczki dystrybucyjne zawierające +# Morfeusza i słowniki SGJP i Polimorf +# +# Założenia: +# • kod źródłowy Morfeusza jest w MORFEUSZ_SRC +# • słowniki są już skompilowane w katalogu DICT_DIR +# • kompilacja odbędzie się w katalogu BUILD_DIR (który zostanie skasowany i utworzony) +# • wyniki zostaną umieszczone w TARGET_DIR + +#set -ex -o pipefail +set -x + +if [ "$#" -ne 4 ]; then + echo "Expected arguments: ‹DICT_NAME› ‹DICT_VERSION› ‹BUILD_ENV› ‹64/32›" + exit 1 +fi + +export DICT_NAME="$1" +export DICT_VERSION="$2" + +export MORFEUSZ_SRC=`pwd`/Morfeusz +export DICT_DIR=`pwd`/dicts +export ANALYZER_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-a.cpp +export GENERATOR_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-s.cpp + +# Wersja środowiska kompilacyjnego (znaczy pod którym Ubuntu budujemy: 14.04, 16.04, 18.04, 19.04 …): +# Staje się debianowym numerem subwersji: morfeusz…_1.9.27-18.04_amd64.deb +export BUILD_ENV=$3 + +export BITS=$4 + +export BUILD_ROOT=`pwd`/build/$1 +export TARGET_ROOT=`pwd`/target + + + +function build { + set -e -o pipefail + os=$1 + arch=$2 + embedded=$3 + python_ver=$4 + shift 4 + targets=$@ + +# toolchain=$MORFEUSZ_SRC/toolchains/Toolchain-$os-$arch.cmake + toolchain=$MORFEUSZ_SRC/toolchains/Toolchain-Linux-native.cmake + if [ "$os" = "Linux" ]; then + buildDir=$BUILD_ROOT/$os-$BUILD_ENV-$arch-$embedded + targetDir=$TARGET_ROOT/$os/$BUILD_ENV/$arch + else + buildDir=$BUILD_ROOT/$os-$arch-$embedded + targetDir=$TARGET_ROOT/$os/$arch + fi +# rm -rf $buildDir || true + mkdir -p $buildDir + + +# echo "Will use $toolchain toolchain" + + # rm -rf $buildDir + #~ rm -rf $targetDir + mkdir -p $buildDir + rm -f $buildDir/CMakeCache.txt + mkdir -p $targetDir + cd $buildDir + + if [ "$embedded" = true ] + then + if [ "$os" == "Linux" ] + then + CPACK_GENERATOR=TGZ + fi + CMAKE_ARGS="-D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \ + -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ + -D SKIP_DICTIONARY_BUILDING=1 \ + -D EMBEDDED_DEFAULT_DICT=1 \ + -D DICT_VERSION=$DICT_VERSION \ + -D BUILT_ON=$BUILD_ENV " + if [ "$CPACK_GENERATOR" != "" ] + then + CMAKE_ARGS="$CMAKE_ARGS -D CPACK_GENERATOR=$CPACK_GENERATOR" + fi + else + # "setting default ACL to prevent control-file-has-bad-permissions lintian error" + setfacl -R -d -m o::rx -m g::rx -m u::rwx . + + CMAKE_ARGS="-D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D DEFAULT_DICT_DIR=$DICT_DIR \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ + -D SKIP_DICTIONARY_BUILDING=1 \ + -D CPACK_GENERATOR=DEB \ + -D DICT_VERSION=$DICT_VERSION \ + -D BUILT_ON=$BUILD_ENV " + fi + CMAKE_ARGS="$CMAKE_ARGS -D PY=$python_ver" + cmake $CMAKE_ARGS $MORFEUSZ_SRC 2>&1 + echo "building for $os-$arch ($BUILD_ENV)" >&2 +# make + make $targets + + # for f in `find "$targetDir" -name "*-Linux-*.deb"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.deb$/amd64.deb/' | sed -r 's/Linux-i386.deb/i386.deb/'`" + # done + + # for f in `find "$targetDir" -name "*-Linux-*.egg"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.egg$/linux-x86_64.egg/' | sed -r 's/Linux-i386.egg$/linux-i686.egg/'`" + # done + +} +export -f build + +function log { + os=$1 + arch=$2 + stdbuf -oL sed -e $"s/^/$os-$BUILD_ENV-$arch:\t/" | tee -a "log/$os-$BUILD_ENV-$arch.out" +} +export -f log + +##??? rm -rf log $BUILD_ROOT +mkdir -p log + +build Linux $BITS true 2.7 package package-java gui-tgz package-python2 2>&1 | log Linux-tgz2 $BITS; +build Linux $BITS true 3.0 package-python3 package-builder 2>&1 | log Linux-tgz3 $BITS +build Linux $BITS false 0 lib-deb bin-deb dev-deb dictionary-deb java-deb gui-deb 2>&1 | log Linux-deb $BITS + + +# { +# echo "build Linux amd64 true 2.7 package package-java package-python2 package-builder 2>&1 | log Linux-tgz2 amd64; \ +# build Linux amd64 true 3.0 package-python3 2>&1 | log Linux-tgz3 amd64" +# echo "build Linux amd64 false 0 lib-deb bin-deb dev-deb dictionary-deb java-deb 2>&1 | log Linux-deb amd64" +# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 2.7 package package-java py2morfeusz 2>&1 | log Linux-tgz i386; \ +# buildegg Linux i386 true 2.7 2>&1 | log Linux i386; \ +# LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 3.0 py3morfeusz 2>&1 | log Linux-tgz i386; \ +# buildegg Linux i386 true 3.0 2>&1 | log Linux i386" +# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 false 0 lib-deb bin-deb java-deb 2>&1 | log Linux-deb i386" +# echo "build Windows amd64 true 2.7 package package-java py2morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 2.7 2>&1 | log Windows amd64; \ +# build Windows amd64 true 3.6 py3morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 3.6 2>&1 | log Windows amd64; \ +# build Windows amd64 true 3.7 py3morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 3.7 2>&1 | log Windows amd64" +# echo "build Windows i386 true 2.7 package package-java py2morfeusz 2>&1 | log Windows i386; \ +# buildegg Windows i386 true 2.7 2>&1 | log Windows i386; \ +# build Windows i386 true 3.0 py3morfeusz 2>&1 | log Windows i386 \ +# buildegg Windows i386 true 3.0 2>&1 | log Windows i386" +# echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64; \ +# buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64; \ +# build Darwin amd64 true 3 py3morfeusz 2>&1 | log Darwin amd64; \ +# buildegg Darwin amd64 true 3 2>&1 | log Darwin amd64" +# echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64" +# echo "buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64" + +# } | xargs -n1 -P6 -d$'\n' bash -c diff --git a/buildOtherDict.sh b/buildOtherDict.sh new file mode 100755 index 0000000..6fc5cfc --- /dev/null +++ b/buildOtherDict.sh @@ -0,0 +1,155 @@ +#!/bin/bash +# Kompiluje pakiet debianowy z dodatkowym słownikiem dla Morfeusza +# [Zrobione z myślą o Polimorfie, ale można użyć do innych.] +# +# Założenia: +# • kod źródłowy Morfeusza jest w MORFEUSZ_SRC +# • słowniki są już skompilowane w katalogu DICT_DIR +# • kompilacja odbędzie się w katalogu BUILD_DIR (który zostanie skasowany i utworzony) +# • wyniki zostaną umieszczone w TARGET_DIR + +#set -ex -o pipefail +set -x + +if [ "$#" -ne 2 ]; then + echo "Expected arguments: ‹DICT_NAME› ‹DICT_VERSION›" + exit 1 +fi + +export DICT_NAME="$1" +export DICT_VERSION="$2" + +export MORFEUSZ_SRC=`pwd`/Morfeusz +export DICT_DIR=`pwd`/dicts +export CROSSMORFEUSZ_ROOT=${HOME}/crossmorfeusz +export ANALYZER_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-a.cpp +export GENERATOR_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-s.cpp + +# Wersja środowiska kompilacyjnego (znaczy pod którym Ubuntu budujemy: 14.04, 16.04, 18.04, 19.04 …): +# Staje się debianowym numerem subwersji: morfeusz…_1.9.27-18.04_amd64.deb +export BUILD_ENV=18.04 + +export BITS=64 + +export BUILD_ROOT=`pwd`/build/$1 +export TARGET_ROOT=`pwd`/target + + + +function build { + set -e -o pipefail + os=$1 + arch=$2 + embedded=$3 + python_ver=$4 + shift 4 + targets=$@ + +# toolchain=$MORFEUSZ_SRC/toolchains/Toolchain-$os-$arch.cmake + toolchain=$MORFEUSZ_SRC/toolchains/Toolchain-Linux-native.cmake + buildDir=$BUILD_ROOT/$os-$BUILD_ENV-$arch-$embedded + targetDir=$TARGET_ROOT/$os/$BUILD_ENV/$arch +# rm -rf $buildDir || true + mkdir -p $buildDir + + +# echo "Will use $toolchain toolchain" + + # rm -rf $buildDir + #~ rm -rf $targetDir + mkdir -p $buildDir + rm -f $buildDir/CMakeCache.txt + mkdir -p $targetDir + cd $buildDir + + if [ "$embedded" = true ] + then + if [ "$os" == "Linux" ] + then + CPACK_GENERATOR=TGZ + fi + CMAKE_ARGS="-D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \ + -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ + -D SKIP_DICTIONARY_BUILDING=1 \ + -D EMBEDDED_DEFAULT_DICT=1 \ + -D DICT_VERSION=$DICT_VERSION \ + -D BUILT_ON=$BUILD_ENV " + if [ "$CPACK_GENERATOR" != "" ] + then + CMAKE_ARGS="$CMAKE_ARGS -D CPACK_GENERATOR=$CPACK_GENERATOR" + fi + else + # "setting default ACL to prevent control-file-has-bad-permissions lintian error" + setfacl -R -d -m o::rx -m g::rx -m u::rwx . + + CMAKE_ARGS="-D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D DEFAULT_DICT_DIR=$DICT_DIR \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ + -D SKIP_DICTIONARY_BUILDING=1 \ + -D CPACK_GENERATOR=DEB \ + -D DICT_VERSION=$DICT_VERSION \ + -D BUILT_ON=$BUILD_ENV " + fi + CMAKE_ARGS="$CMAKE_ARGS -D PY=$python_ver" + cmake $CMAKE_ARGS $MORFEUSZ_SRC 2>&1 + echo "building $DICT_NAME for $os-$arch ($BUILD_ENV)" >&2 +# make + make $targets + + # for f in `find "$targetDir" -name "*-Linux-*.deb"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.deb$/amd64.deb/' | sed -r 's/Linux-i386.deb/i386.deb/'`" + # done + + # for f in `find "$targetDir" -name "*-Linux-*.egg"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.egg$/linux-x86_64.egg/' | sed -r 's/Linux-i386.egg$/linux-i686.egg/'`" + # done + +} +export -f build + +function log { + os=$1 + arch=$2 + stdbuf -oL sed -e $"s/^/$os-$BUILD_ENV-$arch:\t/" | tee "log/$os-$BUILD_ENV-$arch-$DICT_NAME.out" +} +export -f log + +##??? rm -rf log $BUILD_ROOT +mkdir -p log + +build Linux $BITS false 0 dictionary-deb 2>&1 | log Linux-deb $BITS + + +# { +# echo "build Linux amd64 true 2.7 package package-java package-python2 package-builder 2>&1 | log Linux-tgz2 amd64; \ +# build Linux amd64 true 3.0 package-python3 2>&1 | log Linux-tgz3 amd64" +# echo "build Linux amd64 false 0 lib-deb bin-deb dev-deb dictionary-deb java-deb 2>&1 | log Linux-deb amd64" +# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 2.7 package package-java py2morfeusz 2>&1 | log Linux-tgz i386; \ +# buildegg Linux i386 true 2.7 2>&1 | log Linux i386; \ +# LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 3.0 py3morfeusz 2>&1 | log Linux-tgz i386; \ +# buildegg Linux i386 true 3.0 2>&1 | log Linux i386" +# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 false 0 lib-deb bin-deb java-deb 2>&1 | log Linux-deb i386" +# echo "build Windows amd64 true 2.7 package package-java py2morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 2.7 2>&1 | log Windows amd64; \ +# build Windows amd64 true 3.6 py3morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 3.6 2>&1 | log Windows amd64; \ +# build Windows amd64 true 3.7 py3morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 3.7 2>&1 | log Windows amd64" +# echo "build Windows i386 true 2.7 package package-java py2morfeusz 2>&1 | log Windows i386; \ +# buildegg Windows i386 true 2.7 2>&1 | log Windows i386; \ +# build Windows i386 true 3.0 py3morfeusz 2>&1 | log Windows i386 \ +# buildegg Windows i386 true 3.0 2>&1 | log Windows i386" +# echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64; \ +# buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64; \ +# build Darwin amd64 true 3 py3morfeusz 2>&1 | log Darwin amd64; \ +# buildegg Darwin amd64 true 3 2>&1 | log Darwin amd64" +# echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64" +# echo "buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64" + +# } | xargs -n1 -P6 -d$'\n' bash -c diff --git a/buildWindows.sh b/buildWindows.sh new file mode 100755 index 0000000..e3ffff9 --- /dev/null +++ b/buildWindows.sh @@ -0,0 +1,314 @@ +#!/bin/bash +# Kompiluje bibliotekę i buduje paczki dystrybucyjne zawierające +# Morfeusza i słowniki SGJP i Polimorf +# +# Założenia: +# • kod źródłowy Morfeusza jest w MORFEUSZ_SRC +# • słowniki są już skompilowane w katalogu DICT_DIR +# • kompilacja odbędzie się w katalogu BUILD_DIR (który zostanie skasowany i utworzony) +# • wyniki zostaną umieszczone w TARGET_DIR + +#set -ex -o pipefail +set -x + +if [ "$#" -ne 3 ]; then + echo "Expected arguments: ‹DICT_NAME› ‹DICT_VERSION› ‹64/32›" + exit 1 +fi + +export DICT_NAME="$1" +export DICT_VERSION="$2" +export BITS=$3 + + +export MORFEUSZ_SRC=`pwd`/Morfeusz +export DICT_DIR=`pwd`/dicts +export CROSSMORFEUSZ_ROOT=${HOME}/crosslibs +export ANALYZER_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-a.cpp +export GENERATOR_DICTIONARY_CPP=$DICT_DIR/$DICT_NAME-s.cpp + + +export BUILD_ROOT=`pwd`/build/$1 +export TARGET_ROOT=`pwd`/target + + + +function build { + set -e -o pipefail + os=$1 + bity=$2 + embedded=$3 + python_ver=$4 + shift 4 + targets=$@ + + if [ "$bity" = "64" ]; then + arch=amd64 + else + arch=i386 + fi + + toolchain=$MORFEUSZ_SRC/toolchains/Toolchain-$os-$arch.cmake + + buildDir=$BUILD_ROOT/$os-$bity-$embedded + targetDir=$TARGET_ROOT/$os/$bity + +# rm -rf $buildDir || true + mkdir -p $buildDir + + +# echo "Will use $toolchain toolchain" + + # rm -rf $buildDir + #~ rm -rf $targetDir + mkdir -p $buildDir + rm -f $buildDir/CMakeCache.txt + mkdir -p $targetDir + cd $buildDir + + if [ "$embedded" = true ] + then + if [ "$os" == "Linux" ] + then + CPACK_GENERATOR=TGZ + fi + CMAKE_ARGS="-D CROSSMORFEUSZ_ROOT=$CROSSMORFEUSZ_ROOT \ + -D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \ + -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ + -D SKIP_DICTIONARY_BUILDING=1 \ + -D EMBEDDED_DEFAULT_DICT=1 \ + -D DICT_VERSION=$DICT_VERSION " + if [ "$CPACK_GENERATOR" != "" ] + then + CMAKE_ARGS="$CMAKE_ARGS -D CPACK_GENERATOR=$CPACK_GENERATOR" + fi + else + # "setting default ACL to prevent control-file-has-bad-permissions lintian error" + #setfacl -R -d -m o::rx -m g::rx -m u::rwx . + + CMAKE_ARGS="-D CROSSMORFEUSZ_ROOT=$CROSSMORFEUSZ_ROOT \ + -D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D DEFAULT_DICT_DIR=$DICT_DIR \ + -D DEFAULT_DICT_NAME=$DICT_NAME \ + -D SKIP_DICTIONARY_BUILDING=1 \ + -D CPACK_GENERATOR=DEB \ + -D DICT_VERSION=$DICT_VERSION " + fi + CMAKE_ARGS="$CMAKE_ARGS -D PY=$python_ver" + cmake $CMAKE_ARGS $MORFEUSZ_SRC 2>&1 + echo "building for $os-$arch" >&2 +# make + make $targets + + # for f in `find "$targetDir" -name "*-Linux-*.deb"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.deb$/amd64.deb/' | sed -r 's/Linux-i386.deb/i386.deb/'`" + # done + + # for f in `find "$targetDir" -name "*-Linux-*.egg"` + # do + # mv "$f" "`echo $f | sed -r 's/Linux-amd64.egg$/linux-x86_64.egg/' | sed -r 's/Linux-i386.egg$/linux-i686.egg/'`" + # done + +} +export -f build + +function buildegg { + os=$1 + bity=$2 + embedded=$3 + python_ver=$4 + + if [ "$bity" = "64" ]; then + arch=amd64 + else + arch=i386 + fi + + buildDir=$BUILD_ROOT/$os-$bity-$embedded/morfeusz/wrappers/python${python_ver:0:1} + if [[ "$python_ver" =~ 2.* ]] + then + eggName=morfeusz2-0.4.0-py2.7 + eggDir=$buildDir/$eggName + pythonIncl=python27 + if [ "$os-$arch" == "Windows-amd64" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python27 + elif [ "$os-$arch" == "Windows-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows32/Python27 + elif [ "$os-$arch" == "Linux-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/linux32/python/include/python2.7 + elif [ "$os-$arch" == "Darwin-amd64" ] + then + pythonIncl=python2.7 + pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/Python.framework/Headers + pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/Python.framework/Versions/2.7/lib + fi + else + if [ "$os-$arch" == "Windows-amd64" ] + then + if [ "$python_ver" == "3.6" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python36 + eggName=morfeusz2-0.4.0-py3.6 + eggDir=$buildDir/$eggName + pythonIncl=python36 + elif [ "$python_ver" == "3.7" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows64/Python37 + eggName=morfeusz2-0.4.0-py3.7 + eggDir=$buildDir/$eggName + pythonIncl=python37 + fi + else + eggName=morfeusz2-0.4.0-py3.6 + eggDir=$buildDir/$eggName + pythonIncl=python36 + if [ "$os-$arch" == "Windows-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/windows32/Python36-32 + elif [ "$os-$arch" == "Linux-i386" ] + then + pythonDir=$CROSSMORFEUSZ_ROOT/linux32/python3/include/python3.4m + elif [ "$os-$arch" == "Darwin-amd64" ] + then + pythonIncl=python3.6 + pythonDir=$CROSSMORFEUSZ_ROOT/darwin64/Python3.framework/Versions/3.6/Headers + pythonLib=$CROSSMORFEUSZ_ROOT/darwin64/Python3.framework/Versions/3.6/lib + fi + fi + fi + + targetDir=$TARGET_ROOT/$os/$bity + echo "src_dir: $MORFEUSZ_SRC" + echo "python_build_dir: $buildDir" + echo "egg_dir: $eggDir" + echo "python_lib_dir: $pythonDir" + if [ "$os-$arch" == "Windows-amd64" ] + then + gcc_command="x86_64-w64-mingw32-gcc -pthread -static-libgcc -static-libstdc++ -std=c++98 -DNDEBUG -DMS_WIN64 -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir/include -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="x86_64-w64-mingw32-g++ -pthread -static-libgcc -static-libstdc++ -DMS_WIN64 -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonDir/libs -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.pyd" + echo "$gpp_command" + eval $gpp_command + elif [ "$os-$arch" == "Windows-i386" ] + then + gcc_command="i686-w64-mingw32-gcc -pthread -static-libgcc -static-libstdc++ -std=c++98 -DNDEBUG -DMS_WIN64 -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir/include -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="i686-w64-mingw32-g++ -pthread -static-libgcc -static-libstdc++ -DMS_WIN64 -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wdate-time -D_FORTIFY_SOURCE=2 -g -fno-stack-protector -Wformat -Werror=format-security $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonDir/libs -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.pyd" + echo "$gpp_command" + eval $gpp_command + elif [ "$os-$arch" == "Linux-i386" ] + then + gcc_command="x86_64-linux-gnu-gcc -m32 -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir -I$pythonDir/.. -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="x86_64-linux-gnu-g++ -m32 -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 $buildDir/swigPYTHON.o -L$buildDir/../.. -lmorfeusz2 -o $eggDir/_morfeusz2.so" + echo "$gpp_command" + eval $gpp_command + elif [ "$os-$arch" == "Darwin-amd64" ] + then + gcc_command="/home/zil/crossmorfeusz/darwin64/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-gcc -std=c++98 -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -Wformat -D_FORTIFY_SOURCE=2 -fPIC -I$MORFEUSZ_SRC/morfeusz -I$buildDir/../../.. -I$pythonDir -I$pythonDir/.. -c $buildDir/swigPYTHON.cpp -o $buildDir/swigPYTHON.o" + echo "$gcc_command" + eval $gcc_command + gpp_command="/home/zil/crossmorfeusz/darwin64/x86_64-apple-darwin9/bin/x86_64-apple-darwin9-g++ -std=c++98 -Wall -O3 -DNDEBUG -dynamiclib -Wl,-headerpad_max_install_names -install_name _morfeusz2.so $buildDir/swigPYTHON.o -L$buildDir/../.. -L$pythonLib -lmorfeusz2 -l$pythonIncl -o $eggDir/_morfeusz2.so" + echo "$gpp_command" + eval $gpp_command + fi + + + if [ "$os" == "Windows" ] + then + cp $buildDir/../../morfeusz2.dll $eggDir/ + elif [ "$os" == "Linux" ] + then + cp $buildDir/../../libmorfeusz2.so $eggDir/ + elif [ "$os" == "Darwin" ] + then + cp $buildDir/../../libmorfeusz2.dylib $eggDir/ + fi + + cp $buildDir/morfeusz2.py $eggDir/ + if [ -d "$buildDir/$eggName" ]; then + cd $buildDir/$eggName + if [ "$os-$arch" == "Windows-amd64" ] + then + zip -r $eggName-win-amd64.zip ./* + cp $eggName-win-amd64.zip $targetDir/$eggName-win-amd64.egg + elif [ "$os-$arch" == "Windows-i386" ] + then + zip -r $eggName-win32.zip ./* + cp $eggName-win32.zip $targetDir/$eggName-win32.egg + elif [ "$os-$arch" == "Linux-i386" ] + then + zip -r $eggName-linux-i686.zip ./* + cp $eggName-linux-i686.zip $targetDir/$eggName-linux-i686.egg + elif [ "$os-$arch" == "Darwin-amd64" ] + then + zip -r $eggName-macosx-10.9-x86_64.zip ./* + cp $eggName-macosx-10.9-x86_64.zip $targetDir/$eggName-macosx-10.9-x86_64.egg + fi + fi + +} +export -f buildegg + +function log { + os=$1 + arch=$2 + stdbuf -oL sed -e $"s/^/$os-$arch:\t/" | tee -a "log/$os-$arch.out" +} +export -f log + +##??? rm -rf log $BUILD_ROOT +mkdir -p log + +build Windows $BITS true 2.7 package package-java py2morfeusz 2>&1 | log Windows $BITS +build Windows $BITS true 2.7 gui-installer 2>&1 | log Windows $BITS +buildegg Windows $BITS true 2.7 2>&1 | log Windows $BITS +build Windows $BITS true 3.6 py3morfeusz 2>&1 | log Windows $BITS +buildegg Windows $BITS true 3.6 2>&1 | log Windows $BITS +build Windows $BITS true 3.7 py3morfeusz 2>&1 | log Windows $BITS +buildegg Windows $BITS true 3.7 2>&1 | log Windows $BITS + +# build Windows $BITS true 2.7 package package-java py2morfeusz 2>&1 | log Windows $BITS +# buildegg Windows $BITS true 2.7 2>&1 | log Windows $BITS +# build Windows $BITS true 3.0 py3morfeusz 2>&1 | log Windows $BITS +# buildegg Windows $BITS true 3.0 2>&1 | log Windows $BITS + + +# { +# echo "build Linux amd64 true 2.7 package package-java package-python2 package-builder 2>&1 | log Linux-tgz2 amd64; \ +# build Linux amd64 true 3.0 package-python3 2>&1 | log Linux-tgz3 amd64" +# echo "build Linux amd64 false 0 lib-deb bin-deb dev-deb dictionary-deb java-deb 2>&1 | log Linux-deb amd64" +# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 2.7 package package-java py2morfeusz 2>&1 | log Linux-tgz i386; \ +# buildegg Linux i386 true 2.7 2>&1 | log Linux i386; \ +# LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 true 3.0 py3morfeusz 2>&1 | log Linux-tgz i386; \ +# buildegg Linux i386 true 3.0 2>&1 | log Linux i386" +# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 false 0 lib-deb bin-deb java-deb 2>&1 | log Linux-deb i386" +# echo "build Windows amd64 true 2.7 package package-java py2morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 2.7 2>&1 | log Windows amd64; \ +# build Windows amd64 true 3.6 py3morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 3.6 2>&1 | log Windows amd64; \ +# build Windows amd64 true 3.7 py3morfeusz 2>&1 | log Windows amd64; \ +# buildegg Windows amd64 true 3.7 2>&1 | log Windows amd64" +# echo "build Windows i386 true 2.7 package package-java py2morfeusz 2>&1 | log Windows i386; \ +# buildegg Windows i386 true 2.7 2>&1 | log Windows i386; \ +# build Windows i386 true 3.0 py3morfeusz 2>&1 | log Windows i386 \ +# buildegg Windows i386 true 3.0 2>&1 | log Windows i386" +# echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64; \ +# buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64; \ +# build Darwin amd64 true 3 py3morfeusz 2>&1 | log Darwin amd64; \ +# buildegg Darwin amd64 true 3 2>&1 | log Darwin amd64" +# echo "build Darwin amd64 true 2 package package-java py2morfeusz 2>&1 | log Darwin amd64" +# echo "buildegg Darwin amd64 true 2 2>&1 | log Darwin amd64" + +# } | xargs -n1 -P6 -d$'\n' bash -c diff --git a/fsabuilder/CMakeLists.txt b/fsabuilder/CMakeLists.txt index 23afe8b..320b48b 100644 --- a/fsabuilder/CMakeLists.txt +++ b/fsabuilder/CMakeLists.txt @@ -10,26 +10,26 @@ set (DEPS "") configure_file (${SETUP_PY_IN} ${SETUP_PY}) add_custom_command (OUTPUT ${SETUP_PY} - COMMAND python + COMMAND python3 ARGS setup.py build DEPENDS ${DEPS}) add_custom_target (builder-setup DEPENDS ${SETUP_PY}) add_custom_target (install-builder - COMMAND python ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX} + COMMAND python3 ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX} DEPENDS builder-setup ) #~ add_custom_target (package-builder-tgz - #~ COMMAND python ${SETUP_PY} bdist -d "${TARGET_DIR}" --plat-name='all' + #~ COMMAND python3 ${SETUP_PY} bdist -d "${TARGET_DIR}" --plat-name='all' #~ DEPENDS builder-setup #~ ) add_custom_target (package-builder-egg - COMMAND python ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" + COMMAND python3 ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" DEPENDS builder-setup ) add_custom_target (package-builder-sdist - COMMAND python ${SETUP_PY} sdist -d "${TARGET_DIR}" + COMMAND python3 ${SETUP_PY} sdist -d "${TARGET_DIR}" DEPENDS builder-setup ) @@ -38,12 +38,12 @@ set (PACKAGE_DEPENDS "package-builder-egg" "package-builder-sdist") if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if (BUILT_ON) add_custom_target (package-builder-deb-sdist - COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing --debian-version ${BUILT_ON} + COMMAND python3 ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package3 "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing --debian-version ${BUILT_ON} DEPENDS builder-setup ) else () add_custom_target (package-builder-deb-sdist - COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing + COMMAND python3 ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package3 "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing DEPENDS builder-setup ) endif () -- libgit2 0.22.2