Closed citizenfish closed 4 years ago
I suppose you have correctly installed QT in /opt/Qt/5.14.2/clang_64/lib
I will fix this in the next version of deps package. you have 2 options , either build without python support (if you do not need it)
-DWITH_BINDINGS=False
to your CMake commanddlopen
-ed by install_name_tool
, by commands like
install_name_tool -add_rpath /opt/Qt/5.14.2/clang_64/lib/ /opt/QGIS/qgis-deps-0.4.0/stage/lib/python3.7/site-packages/PyQt5/QtCore.so
I suppose you have correctly installed QT in /opt/Qt/5.14.2/clang_64/lib
No I had Qt installed in another location. Do you think this will be an issue? As I had set the make parameter as:-
-DCMAKE_PREFIX_PATH=/Users/daveb/dev/Qt/5.14.2/clang_64 \
that is definitely a problem for deps if you downloaded them from the qgis download area and not build yourself. the deps package assumes that the qt is installed on standard location , as it is described in the blog/install ...
Thanks I'll close this issue now. Might be worth updating this in your blog:-
Install the required Qt version referenced from the official Qt download area. Or alternatively download qt-version.tar.gz from deps area
To state that if you have Qt installed already in a different location then the build process won't work.
Feel free to create PR in QGIS to update INSTALL doc.
Have submitted PR.
Now getting a new error after installing Qt into correct location:-
Scanning dependencies of target version
[ 0%] Generating qgsversion.h, qgsversion.inc
Files "/Users/daveb/dev/build/qgsversion.h.temp" to "/Users/daveb/dev/build/qgsversion.h" are different.
[ 0%] Built target version
Scanning dependencies of target t2tdoc
[ 0%] Building /Users/daveb/dev/build/doc/INSTALL from /Users/daveb/dev/QGIS/doc/INSTALL.t2t
Traceback (most recent call last):
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 2026, in parse
opts, args = getopt.getopt(cmdline, short, long_)
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/getopt.py", line 93, in getopt
opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/getopt.py", line 157, in do_longs
has_arg, opt = long_has_args(opt, longopts)
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/getopt.py", line 174, in long_has_args
raise GetoptError(_('option --%s not recognized') % opt, opt)
getopt.GetoptError: option --toc-level not recognized
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/txt2tags", line 11, in <module>
load_entry_point('txt2tags==3.7', 'console_scripts', 'txt2tags')()
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 4865, in exec_command_line
config, doc = process_source_file(infile)
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 4205, in process_source_file
full_parsed = ConfigMaster(full_raw).parse()
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 2449, in parse
self.add(key, value)
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 2338, in add
raw_opts = CommandLine().get_raw_config(val, ignore=ignoreme)
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 2046, in get_raw_config
options, arguments = self.parse(cmdline[:])
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 2028, in parse
Error("%s (try --help)" % errmsg)
File "/usr/local/Cellar/txt2tags/3.7/libexec/lib/python3.8/site-packages/txt2tags.py", line 1833, in Error
raise error(msg)
txt2tags.error: txt2tags: Error: option --toc-level not recognized (try --help)
make[2]: *** [doc/INSTALL] Error 1
make[1]: *** [doc/CMakeFiles/t2tdoc.dir/all] Error 2
make: *** [all] Error 2
check https://github.com/qgis/QGIS/pull/35914
just uninstall txt2tags or use "hack"
-DTXT2TAGS_EXECUTABLE=/bin/true
Now getting a build error from proj_api.h
[ 43%] Building CXX object src/app/CMakeFiles/qgis_app.dir/qgscustomprojectiondialog.cpp.o
In file included from /Users/daveb/dev/QGIS/src/app/qgscustomprojectiondialog.cpp:45:
/opt/QGIS/qgis-deps-0.4.0/stage/include/proj_api.h:37:2: error: 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
#error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
^
1 error generated.
make[2]: *** [src/app/CMakeFiles/qgis_app.dir/qgscustomprojectiondialog.cpp.o] Error 1
make[1]: *** [src/app/CMakeFiles/qgis_app.dir/all] Error 2
make: *** [all] Error 2
which QGIS version you trying to build? today's master?
Yes, that may well be the problem. I can try with a more stable release
I persevered with trying to get master to build and got past the proj error by adding this line to CMakeLists.txt
ADD_DEFINITIONS(-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1)
It's now failing with:-
/Users/daveb/dev/QGIS/src/python/qgspythonutils.h:22:10: fatal error: 'qgis_python.h' file not found
#include "qgis_python.h"
The error above was caused by:-
-DWITH_BINDINGS=False
Removing this gets me to a seg fault with crssync
[ 88%] Running crssync
/bin/sh: line 1: 51727 Segmentation fault: 11 ../../output/bin/crssync
make[2]: *** [src/crssync/CMakeFiles/synccrsdb] Error 139
make[1]: *** [src/crssync/CMakeFiles/synccrsdb.dir/all] Error 2
make: *** [all] Error 2
otool -L ./output/bin/crssync
/Users/daveb/dev/build/output/lib/qgis_core.framework/Versions/3.13/qgis_core (compatibility version 3.13.0, current version 3.13.0)
/Library/Frameworks/PROJ.framework/Versions/5/PROJ (compatibility version 14.0.0, current version 14.0.2)
/Library/Frameworks/GDAL.framework/Versions/2.4/GDAL (compatibility version 26.0.0, current version 26.1.0)
/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libtasn1.6.dylib (compatibility version 13.0.0, current version 13.0.0)
/Users/daveb/dev/build/output/lib/qgis_native.framework/Versions/3.13/qgis_native (compatibility version 3.13.0, current version 3.13.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 52.0.0, weak)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1675.129.0, weak)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0, weak)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1894.40.150, weak)
@rpath/QtMacExtras.framework/Versions/5/QtMacExtras (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtXml.framework/Versions/5/QtXml (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtSvg.framework/Versions/5/QtSvg (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets (compatibility version 5.212.0, current version 5.212.0)
@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtWebKit.framework/Versions/5/QtWebKit (compatibility version 5.212.0, current version 5.212.0)
@rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtConcurrent.framework/Versions/5/QtConcurrent (compatibility version 5.14.0, current version 5.14.2)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/qca-qt5.framework/Versions/2.3.0/qca-qt5 (compatibility version 2.0.0, current version 2.3.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libqt5keychain.1.dylib (compatibility version 1.0.0, current version 0.10.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libgeos_c.1.dylib (compatibility version 1.0.0, current version 1.13.3)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libspatialindex.6.dylib (compatibility version 6.0.0, current version 6.1.1)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libexpat.1.dylib (compatibility version 8.0.0, current version 8.11.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libsqlite3.0.dylib (compatibility version 9.0.0, current version 9.6.0)
/Library/Frameworks/SQLite3.framework/Versions/E/SQLite3 (compatibility version 9.0.0, current version 9.6.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libzip.5.dylib (compatibility version 5.0.0, current version 5.1.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libprotobuf-lite.22.dylib (compatibility version 23.0.0, current version 23.4.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@rpath/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtPositioning.framework/Versions/5/QtPositioning (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.14.0, current version 5.14.2)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
Is this the problem ^^ as it is linking to libs outside of the deps path? (I may be completely misunderstanding the build process). If so any idea what is causing it?
I'm building with:-
QGIS_DEPS_VERSION=0.4.0;\
QT_VERSION=5.14.2;\
PATH=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/bin:$PATH;\
cmake -DQGIS_MAC_DEPS_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage \
-DCMAKE_PREFIX_PATH=/opt/Qt/${QT_VERSION}/clang_64 \
../QGIS
Even if I add:-
-DCMAKE_FIND_FRAMEWORK=NEVER \
It finds proj and gdal in /Library/Frameworks
You might by getting this segfault since you are using both sqlite from the system and from qgis-deps?
Here is my output:
/Users/denis/opt/QGIS-mac-build/build-QGIS/output/lib/qgis_core.framework/Versions/3.13/qgis_core (compatibility version 3.13.0, current version 3.13.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libproj.18.dylib (compatibility version 18.0.0, current version 18.1.3)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libgdal.26.dylib (compatibility version 27.0.0, current version 27.4.0)
/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libtasn1.6.dylib (compatibility version 13.0.0, current version 13.0.0)
/Users/denis/opt/QGIS-mac-build/build-QGIS/output/lib/qgis_native.framework/Versions/3.13/qgis_native (compatibility version 3.13.0, current version 3.13.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 52.0.0, weak)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1675.129.0, weak)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0, weak)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1894.40.150, weak)
@rpath/QtMacExtras.framework/Versions/5/QtMacExtras (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtXml.framework/Versions/5/QtXml (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtSvg.framework/Versions/5/QtSvg (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets (compatibility version 5.212.0, current version 5.212.0)
@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtWebKit.framework/Versions/5/QtWebKit (compatibility version 5.212.0, current version 5.212.0)
@rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtConcurrent.framework/Versions/5/QtConcurrent (compatibility version 5.14.0, current version 5.14.2)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/qca-qt5.framework/Versions/2.3.0/qca-qt5 (compatibility version 2.0.0, current version 2.3.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libqt5keychain.1.dylib (compatibility version 1.0.0, current version 0.10.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libgeos_c.1.dylib (compatibility version 1.0.0, current version 1.13.3)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libspatialindex.6.dylib (compatibility version 6.0.0, current version 6.1.1)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libexpat.1.dylib (compatibility version 8.0.0, current version 8.11.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libsqlite3.0.dylib (compatibility version 9.0.0, current version 9.6.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libspatialite.7.dylib (compatibility version 9.0.0, current version 9.0.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libzip.5.dylib (compatibility version 5.0.0, current version 5.1.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libprotobuf-lite.22.dylib (compatibility version 23.0.0, current version 23.4.0)
/opt/QGIS/qgis-deps-0.4.0/stage/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@rpath/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtPositioning.framework/Versions/5/QtPositioning (compatibility version 5.14.0, current version 5.14.2)
@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.14.0, current version 5.14.2)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
as you can see, I don't have any pointer to /Library/Frameworks/SQLite3.framework/Versions/E/SQLite3.
Yes, I can't figure out why cmake is not finding proj and others in the /opt/QGIS/qgis-deps-0.4.0/stage/ directory
QGIS_DEPS_VERSION=0.4.0;QT_VERSION=5.14.2;PATH=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/bin:$PATH;cmake -DQGIS_MAC_DEPS_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage -DCMAKE_PREFIX_PATH=/opt/Qt/${QT_VERSION}/clang_64 -DCMAKE_FIND_FRAMEWORK=LAST ../QGIS
-- QGIS version: 3.13.0 Master (31300)
-- DAVE /opt/QGIS/qgis-deps-0.4.0/stage
-- Found OpenCL C++ headers: /Users/daveb/dev/QGIS/external/opencl-clhpp/include
-- Found GRASS 7: /opt/QGIS/qgis-deps-0.4.0/stage/grass78 (7.8.2, off_t size = 8)
-- Found Proj: /Library/Frameworks/PROJ.framework version 5 (5.2.0)
-- Found GEOS: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libgeos_c.dylib (3.7.1)
-- Found GDAL: /Library/Frameworks/gdal.framework (2.4.1)
-- Found Expat: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libexpat.dylib
-- Found Spatialindex: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libspatialindex.dylib
-- Found Qwt: /opt/QGIS/qgis-deps-0.4.0/stage/lib/qwt.framework (6.1.4)
-- Found libzip: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libzip.dylib
-- Found Sqlite3: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libsqlite3.dylib
-- Found Protobuf: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libprotobuf.dylib
-- Found zlib: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libz.dylib
-- Found PostgreSQL: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libpq.dylib
-- Found SpatiaLite: /Library/Frameworks/SQLite3.framework
-- Qt WebKit support enabled
-- Found Qt version: 5.14.2
-- Found QScintilla2: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libqscintilla2_qt5.dylib (2.11.4)
-- Found QtKeychain: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libqt5keychain.dylib
-- Found QCA: /opt/QGIS/qgis-deps-0.4.0/stage/lib/qca-qt5.framework (2.3.0)
-- Found QCA OpenSSL plugin
-- Pedantic compiler settings enabled
-- Found GSL: -L/opt/QGIS/qgis-deps-0.4.0/stage/lib -lgsl -lgslcblas
-- Found Python executable: /opt/QGIS/qgis-deps-0.4.0/stage/bin/python3
-- Found Python version: 3.7.7
-- Found Python library: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libpython3.7m.dylib
-- Found Python site-packages: /opt/QGIS/qgis-deps-0.4.0/stage/lib/python3.7/site-packages
-- Found PyQt5 version: 5.14.1
-- Found SIP version: 4.19.21
-- Found QScintilla2 PyQt module: 2.11.4
-- txt2tags not found - disabled
-- Found exiv2: /opt/QGIS/qgis-deps-0.4.0/stage/lib/libexiv2.dylib
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- Using PROJ <6 srs database.
-- Ctest Binary Directory set to: /Users/daveb/dev/build/output/bin
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/daveb/dev/build
not sure, but you can force it in the cmake call:
-DPROJ_INCLUDE_DIR=/opt/QGIS/qgis-deps-0.4.0/stage/include
-DPROJ_LIBRARY=/opt/QGIS/qgis-deps-0.4.0/stage/lib/libproj.dylib
Thank you have have managed to build with:-
QGIS_DEPS_VERSION=0.4.0;\
QT_VERSION=5.14.2;\
PATH=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/bin:$PATH;\
cmake -DQGIS_MAC_DEPS_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage \
-DCMAKE_PREFIX_PATH=/opt/Qt/${QT_VERSION}/clang_64 \
-DPROJ_INCLUDE_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/include \
-DPROJ_LIBRARY=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/lib/libproj.dylib \
-DGDAL_INCLUDE_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/include \
-DGDAL_LIBRARY=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/lib/libgdal.dylib \
-DSPATIALITE_INCLUDE_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/include \
-DSPATIALITE_LIBRARY=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/lib/libspatialite.dylib \
../QGIS
Following your instructions I am getting a cmake error linked to PyQt5:-
Outputs
I have confirmed that this is present using the version of python provided in deps
Outputs:-