diff --git a/.gitignore b/.gitignore index 884a0a6..832eb65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *~ *.gz *.zip +*.whl /quickfix \ No newline at end of file diff --git a/install-python.sh b/install-python.sh new file mode 100755 index 0000000..5de3c74 --- /dev/null +++ b/install-python.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -e +if [ -z "$1" ] + then + echo "No argument supplied for python executable path" + exit 1 +fi +echo "Installing QuickFix for Python: $1" + +rm -rf quickfix + +git clone --depth 1 https://github.com/quickfix/quickfix.git +rm -rf quickfix/.git + +#Clean up the build environment +rm -rf quickfix-python/C++ +rm -rf quickfix-python/spec +rm -rf quickfix-python/quickfix*.py +rm -rf quickfix-python/doc +rm -rf quickfix-python/LICENSE + +mkdir quickfix-python/C++ +mkdir quickfix-python/spec + +#Move the source into the folder at hand +cp quickfix/LICENSE quickfix-python + +cp quickfix/src/python3/*.py quickfix-python +cp quickfix/src/C++/*.h quickfix-python/C++ +cp quickfix/src/C++/*.hpp quickfix-python/C++ +cp quickfix/src/C++/*.cpp quickfix-python/C++ +cp -R quickfix/src/C++/double-conversion quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.cpp quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.h quickfix-python/C++ + +cp quickfix/spec/FIX*.xml quickfix-python/spec + +#Satisfy empty headers +touch quickfix-python/C++/config.h +touch quickfix-python/C++/config_windows.h +touch quickfix-python/C++/Allocator.h +rm -f quickfix-python/C++/stdafx.* + +#Do the build for the active python +pushd quickfix-python + CFLAGS="-I \"$(pwd)/C++\"" $1 setup.py install +popd diff --git a/package-python-wheels.sh b/package-python-wheels.sh new file mode 100755 index 0000000..70592f5 --- /dev/null +++ b/package-python-wheels.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/quickfix-python-wheels/manylinux.sh +docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/quickfix-python-wheels/manylinux.sh diff --git a/package-python.sh b/package-python.sh index e1f573f..6c68175 100755 --- a/package-python.sh +++ b/package-python.sh @@ -1,3 +1,7 @@ +rm -rf quickfix +git clone --depth 1 https://github.com/quickfix/quickfix.git +rm -rf quickfix/.git + rm -rf quickfix-python/C++ rm -rf quickfix-python/spec rm -rf quickfix-python/quickfix*.py @@ -21,6 +25,7 @@ cp quickfix/spec/FIX*.xml quickfix-python/spec touch quickfix-python/C++/config.h touch quickfix-python/C++/config_windows.h +touch quickfix-python/C++/Allocator.h rm -f quickfix-python/C++/stdafx.* pushd quickfix-python diff --git a/quickfix-python-wheels/manylinux.sh b/quickfix-python-wheels/manylinux.sh new file mode 100755 index 0000000..c009c42 --- /dev/null +++ b/quickfix-python-wheels/manylinux.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +rm -rf quickfix + +git clone --depth 1 https://github.com/quickfix/quickfix.git +rm -rf quickfix/.git + +#Install for the python at hand +rm -rf quickfix-python +cp -r /io/quickfix-python ./quickfix-python +rm -rf quickfix-python/C++ +rm -rf quickfix-python/spec +rm -rf quickfix-python/quickfix*.py +rm -rf quickfix-python/doc +rm -rf quickfix-python/LICENSE + +mkdir quickfix-python/C++ +mkdir quickfix-python/spec + +cp quickfix/LICENSE quickfix-python + +cp quickfix/src/python3/*.py quickfix-python +cp quickfix/src/C++/*.h quickfix-python/C++ +cp quickfix/src/C++/*.hpp quickfix-python/C++ +cp quickfix/src/C++/*.cpp quickfix-python/C++ +cp -R quickfix/src/C++/double-conversion quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.cpp quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.h quickfix-python/C++ + +cp quickfix/spec/FIX*.xml quickfix-python/spec + +touch quickfix-python/C++/config.h +touch quickfix-python/C++/config_windows.h +touch quickfix-python/C++/Allocator.h +rm -f quickfix-python/C++/stdafx.* + +pushd quickfix-python +for PYBIN in /opt/python/*/bin/; do + echo "$PYBIN" + "${PYBIN}/pip" wheel . -w quickfix-python-wheels +done +for whl in quickfix-python-wheels/*.whl; do + auditwheel repair "$whl" -w /io/quickfix-python-wheels/ +done +popd + +#pushd quickfix +# ./bootstrap +# ./configure --with-python2 +# make +# pushd src/python2 +# make check +# popd +#popd \ No newline at end of file