A Divendres 23 Abril 2010 20:11:00, SAn va escriure: > On Fri, Apr 23, 2010 at 09:47, David García Garzón > > <david.gar...@barcelonamedia.org> wrote: > > Adding that to SHCXXFLAGS has sense, adding to CPPPATH would be even > > nicer, although, as you say, maybe there is a better way based on > > pkg-config, and/or patching qt4.py to work well without this. > > > > But QT4_MOC as defined in the patch has no sense at all. This option is > > used as moc command (tipical value is '/usr/bin/moc'). I cannot find an > > explanation for it working but that the statement has no effect in the > > place it is patched (so build will work without the statement) or that > > moc generated files were generated in previous executions, (so the patch > > wouldn't work with a clean build). > > $ QTDIR=/usr/lib/qt scons install prefix=$pkgdir/usr clam_prefix=/usr > qt_plugins_install_path=/usr/lib/qt/plugins/designer release=0 > verbose=1 > [...] > moc -I/home/san/clam/clean/pkg/usr/include -I/usr/local/include > -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include > -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 > -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 > -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 > -I/usr/lib/glib-2.0/include -I/usr/include/alsa -I/usr/include/QtCore > -I/usr/include/QtGui -I/usr/include/QtOpenGL -I/usr/include/QtXml > -I/usr/include/QtSvg -I/usr/include/QtUiTools > -I/usr/include/QtDesigner -I/usr/include/QtWebKit > -I/usr/include/QtNetwork -o > src/clamWidgetsPlugin/generated/moc_KeySpacePlugin.cxx > src/clamWidgetsPlugin/KeySpacePlugin.hxx > [...] > XTERM_SHELL, /bin/bash > PATH, > /bin:/usr/bin:/sbin:/usr/sbin:/opt/kde/bin:/usr/bin/perlbin/site:/usr/bin/ > perlbin/vendor:/usr/bin/perlbin/core:/opt/qt/bin TERM, xterm > QT_XFT, true > PKG_CONFIG_PATH, /usr/lib/pkgconfig:/opt/qt/lib/pkgconfig > _, /usr/bin/scons > PWD, /home/san/clam/Ms/src/NetworkEditor-1.4.0 > QTDIR, /usr/lib/qt > Building src/clamWidgetsPlugin/generated/moc_KeySpacePlugin.cxx with > action: $QT4_MOC $QT4_MOCFROMHFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE > ['moc', '-I/home/san/clam/clean/pkg/usr/include', > '-I/usr/local/include', '-I/usr/include/libxml++-2.6', > '-I/usr/lib/libxml++-2.6/include', '-I/usr/include/libxml2', > '-I/usr/include/glibmm-2.4', '-I/usr/lib/glibmm-2.4/include', > '-I/usr/include/sigc++-2.0', '-I/usr/lib/sigc++-2.0/include', > '-I/usr/include/glib-2.0', '-I/usr/lib/glib-2.0/include', > '-I/usr/include/alsa', '-I/usr/include/QtCore', > '-I/usr/include/QtGui', '-I/usr/include/QtOpenGL', > '-I/usr/include/QtXml', '-I/usr/include/QtSvg', > '-I/usr/include/QtUiTools', '-I/usr/include/QtDesigner', > '-I/usr/include/QtWebKit', '-I/usr/include/QtNetwork', '-o', > '"src/clamWidgetsPlugin/generated/moc_KeySpacePlugin.cxx"', > '"src/clamWidgetsPlugin/KeySpacePlugin.hxx"'] > src/clamWidgetsPlugin/KeySpacePlugin.hxx:33: Error: Undefined interface > scons: *** [src/clamWidgetsPlugin/generated/moc_KeySpacePlugin.cxx] Error 1 > scons: building terminated because of errors. > > (i have patched scons *only* to print more stuff, and SConstruct to > use -O0, wishing to down the build time) > > So, i changed > env.Append(QT4_MOC=["-I/usr/include"]) > for > env.Append(QT4_MOCFROMHFLAGS=["-I/usr/include"]) > its okey now?
Does the CPPPATH work? env.AppendUnique(CPPPATH=['/usr/include']) If not try to append it before or after the EnableQtModules call. It should not, but it could be a difference. > >> > I would also like that as most platforms could rely on pkg-config for > >> > qt. Did you have problems using it (by undefining QTDIR)? > >> > >> Yes. Its not explicit in the dependences but the meta package > >> base-devel (with gcc, fakeroot, > >> pkg-config) its a must when you use the AUR repositories (its in the > >> AUR guide). So it should be > >> using pkg-config and it doesnt find QTDIR. > > > > Forgive the tool about the warning on no QTDIR defined. It shouldn't be > > needed if proper pkg-config files for Qt libs is available. > > Take a look, without defining QTDIR > > $ scons install prefix=../../pkg/usr clam_prefix=/usr > qt_plugins_install_path=/usr/lib/qt/plugins/designer release=0 > verbose=1 > scons: Reading SConscript files ... > Loading nsis tool... > Lodading dmg tool... > Version: 1.4.0 > Package version: 1.4.0 > scons: done reading SConscript files. > scons: Building targets ... > /opt/qt/bin/uic -o src/generated/ui_About.hxx src/About.ui > Building src/generated/ui_About.hxx with action: > $QT4_UIC $QT4_UICFLAGS -o $TARGET $SOURCE > ['/opt/qt/bin/uic', '-o', '"src/generated/ui_About.hxx"', '"src/About.ui"'] > uic: File generated with too recent version of Qt Designer (4.0 vs. 3.3.8) > scons: *** [src/generated/ui_About.hxx] Error 1 > scons: building terminated because of errors. > > but the pkgconfig looks good (well, thanks to the network editor now i > know that pkg-config exists): > > [...@abulafia NetworkEditor-1.4.0]$ cat /usr/lib/pkgconfig/QtCore.pc > prefix=/usr > exec_prefix=${prefix} > libdir=${prefix}/lib > includedir=${prefix}/include/QtCore > qt_config=lex yacc warn_on uic resources qt warn_on release > incremental link_prl exceptions no_mocdepend release stl > qt_no_framework silent system-sqlite release shared dll largefile stl > precompile_header mmx 3dnow sse sse2 dylib create_prl link_prl > depend_includepath QTDIR_build use_libmysqlclient_r qt_install_headers > qt warn_on depend_includepath qmake_cache target_qt hide_symbols > bsymbolic_functions create_libtool create_pc explicitlib moc thread > shared dll > moc_location=/usr/bin/moc > uic_location=/usr/bin/uic > > Name: Qtcore > Description: Qtcore Library > Version: 4.6.2 > Libs: -L${libdir} -lQtCore > Libs.private: -L/usr/lib -lpthread -lz -lm -ldl -pthread > -lgthread-2.0 -lrt -lglib-2.0 > Cflags: -DQT_SHARED -I/usr/include -I${includedir} > > >> Withoud using pkg-config > >> CLAM doesnt build because > >> it cant find libxml++-2.6 (something like > >> /usr/include/libxml++/libxml++.h and not > >> /usr/include/libxml++-2.6/libxml++-2.6.h) > > > > I can't get the point on what you say. You can (must) use pkg-config for > > the rest of the packages (libxml++...). > > Well i thougt that pkg-config wasnt a dependency. > > > I have a few more questions ;) > > 1) > Take a look to the prefix's on *.pc > > [...@abulafia src]$ cat /usr/lib/pkgconfig/clam_core.pc > name = clam_core > prefix = /home/san/clam/clean/pkg/usr > libdir = ${prefix}/lib > includedir = ${prefix}/include > > Name: ${name} > Description: C++ Framework for analysis, synthesis and transformation > of music audio signals > Url: http://clam-project.org > Version: 1.4.0 > Requires: > Conflicts: > Libs: -L${libdir} -l${name} > Cflags: -I${includedir} -DCLAM_FLOAT -DUSE_XMLPP=1 -DCLAM_USE_XML > -DCLAM_USE_XML -DUSE_LADSPA=1 -I/usr/local/include > -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include > -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 > -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 > -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 > -I/usr/lib/glib-2.0/include > > [...@abulafia src]$ cat /usr/lib/pkgconfig/clam_qtmonitors.pc > name = clam_qtmonitors > prefix = /home/san/clam/Ne/pkg > libdir = ${prefix}/lib > includedir = ${prefix}/include > > Name: ${name} > Description: C++ Framework for analysis, synthesis and transformation > of music audio signals > Url: http://clam-project.org > Version: 1.4.0 > Requires: clam_core, clam_processing, clam_audioio > Conflicts: > Libs: -L${libdir} -l${name} > Cflags: -I${includedir} > > they are wrong? I think they should say prefix = /usr, and that value > is taken from the scons install --prefix=DIR > but because i am "doing the package" and not using the "final" prefix. > How should i change them? In post install or what? core, processing and audioio, scons has two different options 'prefix' and 'prefix_for_packaging'. Just use them. Sadly we don't have such option in the rest of the sconstructs (plugins, apps...) Maybe is something that we should eventually introduce. > 2) > How to tell NetworkEditor the correct path of example-data so when i > click in examples it opens directly that? > Now it is pointing to the pkgdir/usr/share instead of /usr/share/blah > > I had read the sources of the debian packages, but still dont > understand! (well i dont have experience with debian) > > thanks! and sory for the length > SAn The problem is about defining DATA_EXAMPLES_PATH macro as we do in line 131 of the SConstruct. As the comment says, if you define the prefix as the (missing) prefix_for_packaging, the path in networks is set to that path. And won't work when installed. So, yes, definitelly we should add such scons flag. The fast workaround, modifying such a line to hardcode /usr. -- David García Garzón (Work) david dot garcia at upf anotherdot edu http://www.iua.upf.edu/~dgarcia _______________________________________________ clam-devel mailing list clam-devel@lists.clam-project.org http://lists.clam-project.org/listinfo.cgi/clam-devel-clam-project.org