PySide Bugzilla Closed for New Bugs

PySide is now a Qt Add-on and uses the Qt Project's JIRA Bug Tracker instead of this Bugzilla instance. This Bugzilla is left for reference purposes.

Bug 627 - Compile error in generatorrunner - missing abstractmetalang.h, etc
: Compile error in generatorrunner - missing abstractmetalang.h, etc
Status: CLOSED FIXED
Product: PySide
Classification: Unclassified
Component: PySide
: HEAD
: Macintosh Mac OS
: P2 normal
Assigned To: renato filho
:
:
:
  Show dependency treegraph
 
Reported: 2011-01-20 03:27 EET by Daniel Ashbrook
Modified: 2011-02-02 19:04 EET (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Ashbrook 2011-01-20 03:27:28 EET
Cmake config:

cmake .. -DCMAKE_INSTALL_PREFIX=../../install/usr
-DGENERATOR=../../usr/bin/shiboken
-DALTERNATIVE_QT_INCLUDE_DIR=/Library/Frameworks
-DSITE_PACKAGE=../../install/Library/Python/2.6/site-packages

Running make:

In file included from /Users/dan/tmp/pyside/generatorrunner/generator.cpp:24:
/Users/dan/tmp/pyside/generatorrunner/generator.h:30:30: error:
abstractmetalang.h: No such file or directory
/Users/dan/tmp/pyside/generatorrunner/generator.cpp:25:27: error:
reporthandler.h: No such file or directory
/Users/dan/tmp/pyside/generatorrunner/generator.cpp:26:21: error: fileout.h: No
such file or directory
/Users/dan/tmp/pyside/generatorrunner/generator.cpp:27:26: error:
apiextractor.h: No such file or directory

And various error following from this.
Comment 1 Matti Airas 2011-01-20 08:21:17 EET
Did you follow the instructions at [1] when trying the compile PySide? If you
did and it still didn't work out, I'd regard this as a documentation
issue.PySide is built on a daily basis on the OpenBossa buildfarm alson on OS
X, so it CAN be done, we just need to be sure to tell people, HOW. :-I

[1] http://developer.qt.nokia.com/wiki/Building_PySide_on_Mac_OS_X

I'm prioritizing this P2.
Comment 2 Daniel Ashbrook 2011-01-20 20:29:43 EET
Yes, I've successfully compiled before using the same instructions. I'm
assuming the patches on that page are in HEAD, though.

This may be a case of a missing cmake argument, as the needed .h files are
located in ../../install/usr/include/apiextrator . Unfortunately cmake is kind
of inscrutable so I'm not sure what argument needs to be included.
Comment 3 renato filho 2011-01-21 10:52:20 EET
Yes the patches have already integrated on mainline, I removed this from build
instructions to avoid mistakes.


The argument necessary to help cmake to find the installed libraries can be :
-DCMAKE_INSTALL_PREFIX=[...]  this argument need be the same in all pyside
modules, the the cmake program will automatically search on the specified path
for the necessary files.

Or you can check on cmake doc for more information:
http://www.cmake.org/cmake/help/cmake-2-8-docs.html
Comment 4 Daniel Ashbrook 2011-01-21 13:58:43 EET
See my cmake config line above; I have -DCMAKE_INSTALL_PREFIX=../../install/usr
but it does not seem to find the .h files listed in
../../install/usr/include/apiextractor/ .
Comment 5 renato filho 2011-01-21 14:11:43 EET
you need check if you have more then one "ApiExtractorConfig.cmake" installed
in your system. Then check if this file installed has the correct value to::

SET(APIEXTRACTOR_INCLUDE_DIR "/usr/local/include/apiextractor")

and if inside this dir has the necessary files.
Comment 6 Daniel Ashbrook 2011-01-21 14:26:38 EET
Ok, so it seems that from a previous binary install I had
/usr/lib/cmake/ApiExtractor-0.9.1/ApiExtractorConfig.cmake . This file had
someone else's directory structure specified since I didn't make the binary.
So, despite specifying -DCMAKE_INSTALL_PREFIX=../../install/usr (for my
~/tmp/pyside build structure), cmake was getting SET(APIEXTRACTOR_INCLUDE_DIR
...) from that file and being unable to locate the include files. This seems
like a bug - either in documentation or in code. Since in my
~/tmp/pyside/install/usr/lib/cmake directory I have ApiExtractor-0.9.3, and I
specify that with -DCMAKE_INSTALL_PREFIX, it would seem to me that cmake should
ignore any older versions.
Comment 7 renato filho 2011-02-02 11:51:05 EET
CMAKE_INSTALL_PREFIX only append the path in the CMAKE_MODULE_PATH if you want
to change the CMAKE_MODULE_PATH you need specify this manually. Because
CMAKE_MODULE_PATH defaul value is "/usr/lib/cmake/" then cmake will give
priority to files inside this path before start to look in
CMAKE_INSTALL_PREFIX.

This is the default behavior of cmake and this is not a PySide bug, there is
documentation about that on cmake documentation you can check that.

And if you remove any installed library which uses cmake make sure to remove
the Cmake files too, this is necessary to keep everything working fine.

I will close this bug, since this is a acceptable and documented behavior.

Thanks
Comment 8 renato filho 2011-02-02 15:46:10 EET
released on beta 5
Comment 9 Daniel Ashbrook 2011-02-02 19:04:56 EET
I updated the cmake documentation on the wiki to make this behavior clear.