diff --git a/cmake_support/FindOPENSTRUCTURE.cmake b/cmake_support/FindOPENSTRUCTURE.cmake
index 9f3b826516820bf2fc0b3589e810f23385eb4e3f..32b59ce64af00bb92168fb70029a1d09733e132a 100644
--- a/cmake_support/FindOPENSTRUCTURE.cmake
+++ b/cmake_support/FindOPENSTRUCTURE.cmake
@@ -10,11 +10,12 @@
# link against python
# OST_VERSION is set to the version of OpenStructure
# OST_INCLUDE_DIR is set to the path that contains base.hh
+# OST_PYMOD_PATH path to the Pyhton module
#
-# Author: Valerio Mariani, Marco Biasini
+# Author: Valerio Mariani, Marco Biasini, Stefan Bienert
#-------------------------------------------------------------------------------
-macro(find_OPENSTRUCTURE OST_ROOT NAMES HEADER_NAMES)
+macro(find_OPENSTRUCTURE OST_ROOT NAMES HEADER_NAMES PYMOD_NAME)
if (NOT OPENSTRUCTURE_FIND_COMPONENTS)
message(FATAL_ERROR "Please specify which modules of OpenStructure you "
"would like to use after the COMPONENTS keyword.")
@@ -46,7 +47,20 @@ macro(find_OPENSTRUCTURE OST_ROOT NAMES HEADER_NAMES)
NAMES "${HEADER_NAMES}"
HINTS "${OST_ROOT}/include"
NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH
- )
+ )
+
+ find_path_recursive(OST_PYMOD_PATH
+ NAME "${PYMOD_NAME}"
+ PATH "${OST_ROOT}"
+ PATH_SUFFIXES lib lib64
+ )
+ if(NOT OST_PYMOD_PATH)
+ if (OPENSTRUCTURE_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find Python module of OST. "
+ "Please specify the location of your OST "
+ "installation with OST_ROOT")
+ endif()
+ endif()
set(OPENSTRUCTURE_FOUND 1)
endmacro()
@@ -70,12 +84,13 @@ ost_img_alg
ost_mol_alg
)
-find_OPENSTRUCTURE("${OST_ROOT}" "${LIBNAMES}" "ost/config.hh")
+find_OPENSTRUCTURE("${OST_ROOT}" "${LIBNAMES}" "ost/config.hh" "ost/__init__.py")
mark_as_advanced(
OST_LIBRARIES
OST_INCLUDE_DIR
OST_VERSION
+ OST_PYMOD_PATH
)
if (OPENSTRUCTURE_FOUND)
diff --git a/cmake_support/PROMOD3.cmake b/cmake_support/PROMOD3.cmake
index 025e28d23002292b16344e2bdb65b481f43e8fbd..8849762ccc9b80366a1a2b440002526be0394d6d 100644
--- a/cmake_support/PROMOD3.cmake
+++ b/cmake_support/PROMOD3.cmake
@@ -476,10 +476,10 @@ macro(pymod)
return()
endif()
if (_ARG_OUTPUT_DIR)
- set(PYMOD_DIR "python${PYTHON_VERSION}/site-packages/${_ARG_OUTPUT_DIR}")
+ set(PYMOD_DIR "${PYTHON_MODULE_PATH}/${_ARG_OUTPUT_DIR}")
else()
set(PYMOD_DIR
- "python${PYTHON_VERSION}/site-packages/${_ARG_PREFIX}/${_ARG_NAME}")
+ "${PYTHON_MODULE_PATH}/${_ARG_PREFIX}/${_ARG_NAME}")
endif()
set(PYMOD_STAGE_DIR "${LIB_STAGE_PATH}/${PYMOD_DIR}")
file(MAKE_DIRECTORY ${PYMOD_STAGE_DIR})
@@ -728,10 +728,8 @@ macro(promod3_unittest)
set(python_path "${python_path}:")
endif(python_path)
# we just add OST manually here until we find a more flexible way
- set(python_path
- "${python_path}${LIB_STAGE_PATH}/python${PYTHON_VERSION}/site-packages:")
- set(python_path
- "${python_path}${OST_ROOT}/${LIB_DIR}/python${PYTHON_VERSION}/site-packages")
+ set(python_path "${python_path}${LIB_STAGE_PATH}/${PYTHON_MODULE_PATH}:")
+ set(python_path "${python_path}${OST_PYMOD_PATH}")
set (PY_TESTS_CMD "PYTHONPATH=${python_path} ${PYTHON_BINARY}")
add_custom_target("${py_test}_run"
sh -c "${PY_TESTS_CMD} ${py_twp}"
@@ -1224,7 +1222,7 @@ macro(find_path_recursive VARIABLE)
file(TO_NATIVE_PATH "${_fst}/${_ARG_NAME}" _modpath)
if(EXISTS ${_modpath})
# set var and exit
- set(${VARIABLE} ${_modpath})
+ set(${VARIABLE} ${_fst})
set(_fst_subs)
break()
endif(EXISTS ${_modpath})