Python SIP module

Hi,

cmake/modules/PythonDeps.cmake is having trouble finding SIP on my
system. The sip.h on my system is in a nonstandard place. I have a
work around, but it is not fully tested yet. I made my own
FindSIP.cmake that is called from PythonDeps.cmake. It both finds
sip.h and tests that the sip module loads in Python. It works through
completion of cmake. I haven’t found out if the build requires and
finds the sip.h yet though due to other problems with building. I
definitely found this problem in the master and in Geoff’s
pettt-master branch. I’m waiting to see if the build works to know if
the cmake changes work.

Gary

On Tue, Feb 28, 2012 at 3:03 PM, Gary Kedziora gkedziora@gmail.com wrote:

Hi,

cmake/modules/PythonDeps.cmake is having trouble finding SIP on my
system. The sip.h on my system is in a nonstandard place. I have a
work around, but it is not fully tested yet. I made my own
FindSIP.cmake that is called from PythonDeps.cmake. It both finds
sip.h and tests that the sip module loads in Python. It works through
completion of cmake. I haven’t found out if the build requires and
finds the sip.h yet though due to other problems with building. I
definitely found this problem in the master and in Geoff’s
pettt-master branch. I’m waiting to see if the build works to know if
the cmake changes work.

This was in a version of Geoff’s with that was merged to the master.
I checked the master also, and it had a construct that was not general
enough for the SIP portion of PythonDeps.cmake.

I got it to build with some modification to cmake files. I modified
~/cmake/modules/PythonDeps.cmake by calling find_package(SIP). In
FindSIP.cmake the main thing is that I have

find_path(SIP_INCLUDE_DIR NAMES sip.h
 PATHS
 ${INCLUDE_INSTALL_DIR}
 ${CMAKE_INCLUDE_DIR}
 PATH_SUFFIXES SIP
)

Should probably include other directories in there as well. And
finally, in ~/libavogadro/src/python/CMakeLists.txt I add
${SIP_INCLUDE_DIR} to the include_directories() function.

Let me know if I should provide further details and the best way to do that.

Thanks,
Gary

Hi Gary,

On Thu, Mar 1, 2012 at 10:56 AM, Gary Kedziora gkedziora@gmail.com wrote:

On Tue, Feb 28, 2012 at 3:03 PM, Gary Kedziora gkedziora@gmail.com wrote:

Hi,

cmake/modules/PythonDeps.cmake is having trouble finding SIP on my
system. The sip.h on my system is in a nonstandard place. I have a
work around, but it is not fully tested yet. I made my own
FindSIP.cmake that is called from PythonDeps.cmake. It both finds
sip.h and tests that the sip module loads in Python. It works through
completion of cmake. I haven’t found out if the build requires and
finds the sip.h yet though due to other problems with building. I
definitely found this problem in the master and in Geoff’s
pettt-master branch. I’m waiting to see if the build works to know if
the cmake changes work.

This was in a version of Geoff’s with that was merged to the master.
I checked the master also, and it had a construct that was not general
enough for the SIP portion of PythonDeps.cmake.

I got it to build with some modification to cmake files. I modified
~/cmake/modules/PythonDeps.cmake by calling find_package(SIP). In
FindSIP.cmake the main thing is that I have

find_path(SIP_INCLUDE_DIR NAMES sip.h
PATHS
{INCLUDE_INSTALL_DIR} {CMAKE_INCLUDE_DIR}
PATH_SUFFIXES SIP
)

Should probably include other directories in there as well. And
finally, in ~/libavogadro/src/python/CMakeLists.txt I add
${SIP_INCLUDE_DIR} to the include_directories() function.

Let me know if I should provide further details and the best way to do that.

How did you install SIP over there? The suggested modifications seem
reasonable, and I would love to reproduce the failure (and ensure the
fix works here). You can provide a patch through Gerrit if you would
like to, or supply me with a little extra information and I can work
on getting a patch ready for master. I would like to get this in
before the 1.1.0 release.

Thanks,

Marcus