All pastes #760402 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-03 23:51 UTC
rendered paste body
Index: FindBoostPython.cmake
===================================================================
--- FindBoostPython.cmake	(revision 732453)
+++ FindBoostPython.cmake	(working copy)
@@ -20,18 +20,35 @@
 include(CheckIncludeFileCXX)
 include(CheckLibraryExists)
 
+#finding boost and pythonlibs (not the interpreter)
+find_package(Boost)
+find_package(PythonLibs)
+
 # reset vars
 set(BOOST_PYTHON_INCLUDES)
 set(BOOST_PYTHON_LIBS)
 
 # handy arrays
-set(PYTHON_VERSIONS "python;python2.5;python2.4;python2.3;python2.2")
+set(PYTHON_VERSIONS "python;python2.5;python25;python2.4;python24;python2.3;python23;python2.2;python22")
 set(PYTHON_INCLUDE_DIRS "/usr/include/$pyver;/usr/local/include/$pyver;/usr/$pyver/include;/usr/local/$pyver/include;$prefix/include/$pyver;$prefix/$pyver/include")
 set(PYTHON_LIBRARY_DIRS "/usr/lib;/usr/local/lib;/usr/lib/$pyver/config")
+if (WIN32)
+  set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_PATH};${PYTHON_INCLUDE_DIRS}" )
+  set(PYTHON_LIBRARY_DIRS "${PYTHON_INCLUDE_PATH}/../libs;${PYTHON_LIBRARY_DIRS}")
+endif (WIN32)
 set(PYTHON_LIBS "boost_python-gcc-mt;boost_python-mt;boost_python-gcc-mt-1_33;boost_python-gcc-mt-1_33_1;boost_python;boost_python-gcc-mt-1_32")
 
-# 1st: check for boost/shared_ptr.hpp
-check_include_file_cxx(boost/shared_ptr.hpp HAVE_BOOST_SHARED_PTR_HPP)
+if (Boost_FOUND)
+  # 1st: check for boost/shared_ptr.hpp
+  set(my_BOOST_ROOT $ENV{BOOST_ROOT})
+  if(WIN32 AND NOT my_BOOST_ROOT)
+    set(my_BOOST_ROOT ${CMAKE_INSTALL_PREFIX})
+  endif(WIN32 AND NOT my_BOOST_ROOT)
+  if (my_BOOST_ROOT)
+    set(CMAKE_REQUIRED_INCLUDES "${my_BOOST_ROOT}/include")
+  endif (my_BOOST_ROOT)
+  check_include_file_cxx(boost/shared_ptr.hpp HAVE_BOOST_SHARED_PTR_HPP)
+endif (Boost_FOUND)
 
 if(HAVE_BOOST_SHARED_PTR_HPP)
 
@@ -61,8 +78,8 @@
 
                   if(NOT _found)
 
-                    set(CMAKE_REQUIRED_FLAGS "-L${_pylibdir}")
-                    set(CMAKE_REQUIRED_INCLUDES ${_pydir})
+                    set(CMAKE_REQUIRED_FLAGS "-L${_pylibdir} -L${CMAKE_INSTALL_PREFIX}/bin")
+                    set(CMAKE_REQUIRED_INCLUDES ${_pydir} ${my_BOOST_ROOT}/include)
                     set(CMAKE_REQUIRED_LIBRARIES ${_pblib} ${_pyver})
 
                     check_cxx_source_compiles("
@@ -77,20 +94,20 @@
 // python lib dir: ${_pylibdir}
 // boost python lib: ${_pblib}
 
-" boost_python_${_pylibdir}_${_pydir}_${_pblib}_compile )
+" bp_${_pylibdir}_${_pydir}_${_pblib}_${_pyver}_compile )
 
                     set(CMAKE_REQUIRED_FLAGS)
                     set(CMAKE_REQUIRED_INCLUDES)
                     set(CMAKE_REQUIRED_LIBRARIES)
 
-                    if(boost_python_${_pylibdir}_${_pydir}_${_pblib}_compile)
+                    if(bp_${_pylibdir}_${_pydir}_${_pblib}_${_pyver}_compile)
 
                         set(_found TRUE)
 
                         set(BOOST_PYTHON_INCLUDES ${_pydir})
-                        set(BOOST_PYTHON_LIBS "-l${_pyver} -L${_pylibdir} -l${_pblib}")
+                        set(BOOST_PYTHON_LIBS " -L${_pylibdir} -L${CMAKE_INSTALL_PREFIX}/bin -l${_pyver} -l${_pblib}")
 
-                    endif(boost_python_${_pylibdir}_${_pydir}_${_pblib}_compile)
+                    endif(bp_${_pylibdir}_${_pydir}_${_pblib}_${_pyver}_compile)
 
                   endif(NOT _found)