diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f2902151..82adb0df6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: runs-on: [ubuntu-latest] - docker-image: [gcc7, gcc11, centos7] + docker-image: [centos7, ubuntu2004, ubuntu2204] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/dockerfiles/Dockerfile_centos7 b/.github/workflows/dockerfiles/Dockerfile_centos7 index d1c68de9c..f20ac8dbf 100644 --- a/.github/workflows/dockerfiles/Dockerfile_centos7 +++ b/.github/workflows/dockerfiles/Dockerfile_centos7 @@ -8,13 +8,10 @@ RUN yum install -y \ qt5-qtbase-* \ qt5-qttools* \ qt5-qtsvg \ - qt5-qtsvg-devel \ qt5-qtxmlpatterns \ - qt5-qtxmlpatterns-devel \ qt5-qtmultimedia \ - qt5-qtmultimedia-devel \ qt5-qt3d \ - qt5-qt3d-devel + qt5-*-devel RUN mkdir -p work @@ -25,8 +22,21 @@ WORKDIR work ARG QT_SELECT=qt5 RUN uname -a; gcc --version | grep "gcc"; python --version; qmake-qt5 --version +CMD ["make"] + +# 1. build PythonQt and the generator + RUN qmake-qt5 -r PythonQt.pro \ PYTHON_VERSION=$(python --version | cut -d " " -f 2 | cut -d "." -f1,2) \ PYTHON_DIR=$(which python | xargs dirname | xargs dirname) +RUN make -CMD ["make"] +# 2. generate wrappers using the built generator + +# workaround to allow to find the Qt include dirs for installed standard qt packages +RUN mkdir /usr/include/qt5ln; ln -s /usr/include/qt5 /usr/include/qt5ln/include + +RUN echo "export QTDIR=/usr/include/qt5ln" > generate.sh +RUN echo "cd generator; ./pythonqt_generator" >> generate.sh + +CMD ["bash", "generate.sh"] diff --git a/.github/workflows/dockerfiles/Dockerfile_gcc7 b/.github/workflows/dockerfiles/Dockerfile_ubuntu2004 similarity index 50% rename from .github/workflows/dockerfiles/Dockerfile_gcc7 rename to .github/workflows/dockerfiles/Dockerfile_ubuntu2004 index c18b622b7..e67340681 100644 --- a/.github/workflows/dockerfiles/Dockerfile_gcc7 +++ b/.github/workflows/dockerfiles/Dockerfile_ubuntu2004 @@ -1,12 +1,14 @@ -FROM gcc:7 +FROM ubuntu:20.04 -RUN apt-get update && apt-get install -y --force-yes \ +RUN apt-get update + +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes \ + build-essential \ python3 \ python3-dev \ libpython3-dev \ qtbase5-dev \ qtbase5-private-dev \ - qtchooser \ qt5-qmake \ qtbase5-dev-tools \ qttools5-dev \ @@ -29,8 +31,19 @@ WORKDIR work ARG QT_SELECT=qt5 RUN uname -a; gcc --version | grep "gcc"; python3 --version; qmake --version +# 1. build PythonQt and the generator + RUN qmake -r PythonQt.pro \ PYTHON_VERSION=$(python3 --version | cut -d " " -f 2 | cut -d "." -f1,2) \ - PYTHON_DIR=$(which python3 | xargs dirname | xargs dirname) + PYTHON_DIR=$(which python3 | xargs dirname | xargs dirname) +RUN make + +# 2. generate wrappers using the built generator + +# workaround to allow to find the Qt include dirs for installed standard qt packages +RUN mkdir /usr/include/qt5; ln -s /usr/include/x86_64-linux-gnu/qt5 /usr/include/qt5/include + +RUN echo "export QTDIR=/usr/include/qt5" > generate.sh +RUN echo "cd generator; ./pythonqt_generator" >> generate.sh -CMD ["make"] +CMD ["bash", "generate.sh"] diff --git a/.github/workflows/dockerfiles/Dockerfile_gcc11 b/.github/workflows/dockerfiles/Dockerfile_ubuntu2204 similarity index 55% rename from .github/workflows/dockerfiles/Dockerfile_gcc11 rename to .github/workflows/dockerfiles/Dockerfile_ubuntu2204 index 42d53564b..e8b4b38a0 100644 --- a/.github/workflows/dockerfiles/Dockerfile_gcc11 +++ b/.github/workflows/dockerfiles/Dockerfile_ubuntu2204 @@ -1,12 +1,14 @@ -FROM gcc:11 +FROM ubuntu:22.04 -RUN apt-get update && apt-get install -y --force-yes \ +RUN apt-get update + +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes \ + build-essential \ python3 \ python3-dev \ libpython3-dev \ qtbase5-dev \ qtbase5-private-dev \ - qtchooser \ qt5-qmake \ qtbase5-dev-tools \ qttools5-dev \ @@ -29,8 +31,19 @@ WORKDIR work ARG QT_SELECT=qt5 RUN uname -a; gcc --version | grep "gcc"; python3 --version; qmake --version +# 1. build PythonQt and the generator + RUN qmake -r PythonQt.pro \ PYTHON_VERSION=$(python3 --version | cut -d " " -f 2 | cut -d "." -f1,2) \ PYTHON_DIR=$(which python3 | xargs dirname | xargs dirname) +RUN make + +# 2. generate wrappers using the built generator + +# workaround to allow to find the Qt include dirs for installed standard qt packages +RUN mkdir /usr/include/qt5; ln -s /usr/include/x86_64-linux-gnu/qt5 /usr/include/qt5/include + +RUN echo "export QTDIR=/usr/include/qt5" > generate.sh +RUN echo "cd generator; ./pythonqt_generator" >> generate.sh -CMD ["make"] +CMD ["bash", "generate.sh"] diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b81b..000000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/src/PythonQt.cpp b/src/PythonQt.cpp index c62eb1b4d..5a31cec8b 100644 --- a/src/PythonQt.cpp +++ b/src/PythonQt.cpp @@ -58,7 +58,6 @@ #include -#include #include PythonQt* PythonQt::_self = nullptr;