qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.52k stars 2.99k forks source link

3.16.0 build fails with -DWITH_BINDINGS=no && WITH_QGIS_PROCESS=yes in target `qgis_process` #39973

Closed a17r closed 3 years ago

a17r commented 3 years ago

Even though there is a conditional to be found inside src/process/CMakeLists.txt...

IF (WITH_BINDINGS)
  TARGET_LINK_LIBRARIES(qgis_process qgispython)
ENDIF(WITH_BINDINGS)

...this doesn't build as main.cpp and qgsprocess.cpp unconditionally include qgsprocess.h which then unconditionally includes qgspythonrunner.h and qgspythonutils.h.

Used build options:

cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DQGIS_MANUAL_SUBDIR=share/man/ -DQGIS_LIB_SUBDIR=lib64 \
-DQGIS_PLUGIN_SUBDIR=lib64/qgis -DQWT_INCLUDE_DIR=/usr/include/qwt6 -DQWT_LIBRARY=/usr/lib64/libqwt6-qt5.so \
-DPEDANTIC=OFF -DUSE_CCACHE=OFF -DWITH_ANALYSIS=ON -DWITH_APIDOC=OFF -DWITH_GUI=ON -DWITH_INTERNAL_MDAL=ON \
-DWITH_QSPATIALITE=ON -DENABLE_TESTS=OFF -DWITH_3D=no -DWITH_GEOREFERENCER=no -DWITH_GRASS7=no \
-DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON -DWITH_SERVER=no -DCMAKE_DISABLE_FIND_PACKAGE_NetCDF=ON -DUSE_OPENCL=no \
-DWITH_ORACLE=no -DWITH_QWTPOLAR=no -DWITH_POSTGRESQL=yes -DWITH_BINDINGS=no -DWITH_CUSTOM_WIDGETS=no \
-DWITH_QUICK=yes -DWITH_QTWEBKIT=OFF

Error snippet:

In file included from src/process/qgis_process_autogen/EWIEGA46WW/../../../../../qgis-3.16.0/src/process/qgsprocess.h:22,
                 from src/process/qgis_process_autogen/EWIEGA46WW/moc_qgsprocess.cpp:10,
                 from src/process/qgis_process_autogen/mocs_compilation.cpp:2:
qgis-3.16.0/src/python/qgspythonutils.h:22:10: fatal error: qgis_python.h: No such file or directory
   22 | #include "qgis_python.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.
3nids commented 3 years ago

@nyalldawson is process supposed to work without Python? i.e. shall we make the includes conditionals and see if it builds or return an error in CMake if there is no Python and process is enabled?

nyalldawson commented 3 years ago

@3nids

is process supposed to work without Python?

Yes, it should work