Fix installaton of python wrapper
authorMichel Zou <xantares09@hotmail.com>
Tue, 11 Oct 2011 08:44:26 +0000 (10:44 +0200)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Tue, 11 Oct 2011 08:44:26 +0000 (10:44 +0200)
--------------------------------------------
The python wrapper installation path is not correct:
-- Building python bindings via swig. Will be installed under /usr/site-packages

In fact it doesn't even rely on CMAKE_INSTALL_PREFIX because of this:
GET_FILENAME_COMPONENT(SITEPACKAGE ${PYTHON_LIB_INSTALL}/../site-packages ABSOLUTE)

I think it should more look like this: (here with CMAKE_INSTALL_PREFIX=/home/michel/Download/libftdi-git/build/install)
-- Installing: /home/michel/Download/libftdi-git/build/install/lib64/python2.7/site-packages/_ftdi.so
-- Installing: /home/michel/Download/libftdi-git/build/install/lib64/python2.7/site-packages/ftdi.py
--------------------------------------------

AUTHORS
bindings/CMakeLists.txt

diff --git a/AUTHORS b/AUTHORS
index 9a507fa..87260de 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -28,6 +28,7 @@ see Changelog for full details:
   Matthias Richter <mail.to.mr@gmx.de>
   Matthijs ten Berge <m.h.tenberge@alumnus.utwente.nl>
   Max <max@koeln.ccc.de>
+  Michel Zou <xantares09@hotmail.com>
   Mike Frysinger <vapier.adi@gmail.com>
   Nathan Fraser <ndf@undershorts.org>
   Oleg Seiljus <oseiljus@xverve.com>
index 4d6f94d..b17d8a8 100644 (file)
@@ -1,10 +1,11 @@
 include(FindSWIG)
 include(FindPythonLibs)
+include(FindPythonInterp)
 include(UseSWIG)
 
 option(PYTHON_BINDINGS "Build python bindings via swig" ON)
 
-if(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND)
+if(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
     INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/src)
     INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
     LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../src)
@@ -12,13 +13,16 @@ if(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND)
     SWIG_ADD_MODULE(ftdi python ftdi.i)
     SWIG_LINK_LIBRARIES(ftdi ftdi ${PYTHON_LIBRARIES})
 
-    GET_FILENAME_COMPONENT(PYTHON_LIB_INSTALL ${PYTHON_LIBRARY} PATH)
-    GET_FILENAME_COMPONENT(SITEPACKAGE ${PYTHON_LIB_INSTALL}/../site-packages ABSOLUTE)
+    execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sys; print '%d.%d' % ( sys.version_info[0], sys.version_info[1] )"
+                      OUTPUT_VARIABLE PYTHON_VERSION
+                      OUTPUT_STRIP_TRAILING_WHITESPACE )
+
+    set ( SITEPACKAGE lib${LIB_SUFFIX}/python${PYTHON_VERSION}/site-packages )
 
     INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/_ftdi.so DESTINATION ${SITEPACKAGE})
     INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ftdi.py DESTINATION ${SITEPACKAGE})
 
-    message(STATUS "Building python bindings via swig. Will be installed under ${SITEPACKAGE}")
-else(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND)
+    message(STATUS "Building python bindings via swig. Will be installed under ${CMAKE_INSTALL_PREFIX}/${SITEPACKAGE}")
+else(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
     message(STATUS "Not building python bindings")
-endif(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND)
+endif(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)