message("Package version: ${VERSION}")
+# Default python version
+if (NOT PYTHON_DESIRED)
+ set (PYTHON_DESIRED "2")
+endif()
+
# Other files
pkg_check_modules(BASHCOMP bash-completion)
## Building for a different Python version
-By default, cmake should find the default version of python on your system
-(say, Python 2), but if you want to build for Python 3 you need to specify
-parameters like the following:
-
- cmake \
- -DPYTHON_LIBRARY=/usr/lib64/libpython3.4m.so \
- -DPYTHON_INCLUDE_DIR=/usr/include/python3.4m \
- -D PYTHON_EXECUTABLE=/usr/bin/python3 .
+By default, cmake should set up things to build for Python 2, but you can do a build for Python 3 like this::
+
+ cmake -DPYTHON_DESIRED=2 .
## Build tarball
-FIND_PACKAGE (PythonLibs 2)
-FIND_PACKAGE (PythonInterp 2 REQUIRED)
+if (${PYTHON_DESIRED} STREQUAL "2")
+ unset(PYTHON_LIBRARY)
+ unset(PYTHON_INCLUDE_DIR)
+ unset(PYTHON_EXECUTABLE)
+ unset(PYTHON_LIBRARY CACHE)
+ unset(PYTHON_INCLUDE_DIR CACHE)
+ unset(PYTHON_EXECUTABLE CACHE)
+ FIND_PACKAGE(PythonLibs 2)
+ FIND_PACKAGE(PythonInterp 2 REQUIRED)
+else()
+ SET(Python_ADDITIONAL_VERSIONS 3.0)
+ unset(PYTHON_LIBRARY)
+ unset(PYTHON_INCLUDE_DIR)
+ unset(PYTHON_EXECUTABLE)
+ unset(PYTHON_LIBRARY CACHE)
+ unset(PYTHON_INCLUDE_DIR CACHE)
+ unset(PYTHON_EXECUTABLE CACHE)
+ FIND_PACKAGE(PythonLibs 3.0)
+ FIND_PACKAGE(PythonInterp 3.0 REQUIRED)
+endif()
+
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
+# Detect nosetest version suffix
+EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info[0], sys.version_info[1]))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION)
+SET(NOSETEST_VERSION_SUFFIX "-${PYTHON_MAJOR_DOT_MINOR_VERSION}")
+message("-- nosetests program is nosetests${NOSETEST_VERSION_SUFFIX}")
+
+execute_process(COMMAND which nosetests${NOSETEST_VERSION_SUFFIX}
+ OUTPUT_QUIET ERROR_QUIET
+ RESULT_VARIABLE NOSE_CHECK_RESULT)
+IF (NOT NOSE_CHECK_RESULT STREQUAL "0")
+ MESSAGE("Command 'nosetests${NOSETEST_VERSION_SUFFIX}' doesn't exist! Using only 'nosetests' instead")
+ SET(NOSETEST_VERSION_SUFFIX "")
+ENDIF()
+
CONFIGURE_FILE("run_nosetests.sh.in" "${CMAKE_BINARY_DIR}/tests/python/tests/run_nosetests.sh")
ADD_TEST(test_python run_nosetests.sh -s ${CMAKE_CURRENT_SOURCE_DIR})
-LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/src/: PYTHONPATH=${CMAKE_BINARY_DIR}/src/python/ nosetests -s -v ${CMAKE_CURRENT_SOURCE_DIR}/
+LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/src/: PYTHONPATH=${CMAKE_BINARY_DIR}/src/python/ nosetests${NOSETEST_VERSION_SUFFIX} -s -v ${CMAKE_CURRENT_SOURCE_DIR}/