summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2016-02-28 22:35:47 +0100
committerSuren A. Chilingaryan <csa@suren.me>2016-02-28 22:35:47 +0100
commitadc657ebcd01ecc2cc5f110453ef00dffde2d5c0 (patch)
treee25ed33b2608ccebc7b88c5738d4aa68a7d522b5
parent631f0929c155087648acdd00ef0e2039737f8803 (diff)
downloadpcitool-adc657ebcd01ecc2cc5f110453ef00dffde2d5c0.tar.gz
pcitool-adc657ebcd01ecc2cc5f110453ef00dffde2d5c0.tar.bz2
pcitool-adc657ebcd01ecc2cc5f110453ef00dffde2d5c0.tar.xz
pcitool-adc657ebcd01ecc2cc5f110453ef00dffde2d5c0.zip
Altenrative way to detect location where python modules should be installed
-rw-r--r--CMakeLists.txt15
-rw-r--r--pywrap/CMakeLists.txt6
2 files changed, 18 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ee73a1a..cd889f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,7 +39,22 @@ find_package(Threads REQUIRED)
if (NOT DISABLE_PYTHON)
find_package(PythonLibs 2.7 REQUIRED)
+ find_package(PythonInterp 2.7 REQUIRED)
find_package(SWIG REQUIRED)
+ if (NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING)
+ message (FATAL_ERROR "Version mismatch between python interpreter and libraries")
+ endif (NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING)
+
+# execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sysconfig import get_path; print get_path('platlib')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "import site; print site.PREFIXES[-1]" OUTPUT_VARIABLE PYTHON_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
+ file (TO_CMAKE_PATH "${PYTHON_PREFIX}" PYTHON_PREFIX)
+ execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "import site; print site.getsitepackages()[-1]" OUTPUT_VARIABLE PYTHON_SITE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+ file (TO_CMAKE_PATH "${PYTHON_SITE_DIR}" PYTHON_SITE_DIR)
+
+ string (REGEX REPLACE "^${PYTHON_PREFIX}/" "${CMAKE_INSTALL_PREFIX}/" PYTHON_SITE_DIR "${PYTHON_SITE_DIR}")
+ set(PYTHON_INSTALL_DIR ${PYTHON_SITE_DIR} CACHE PATH "path to install python module")
+
set(HAVE_PYTHON TRUE)
endif (NOT DISABLE_PYTHON)
diff --git a/pywrap/CMakeLists.txt b/pywrap/CMakeLists.txt
index 988546b..75a9bed 100644
--- a/pywrap/CMakeLists.txt
+++ b/pywrap/CMakeLists.txt
@@ -17,9 +17,9 @@ set(CMAKE_SWIG_FLAGS "")
swig_add_module(pcipywrap python pcipywrap.i pcipywrap.c)
swig_link_libraries(pcipywrap ${PYTHON_LIBRARIES} pcilib)
-execute_process ( COMMAND python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
-install(TARGETS ${SWIG_MODULE_pcipywrap_REAL_NAME} DESTINATION ${PYTHON_SITE_PACKAGES})
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcipywrap.py DESTINATION ${PYTHON_SITE_PACKAGES})
+
+install(TARGETS ${SWIG_MODULE_pcipywrap_REAL_NAME} DESTINATION ${PYTHON_INSTALL_DIR})
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcipywrap.py DESTINATION ${PYTHON_INSTALL_DIR})
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/server.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})