From 3ee1008adf5e3646ea76a501f9506379bb86ada2 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Wed, 30 Sep 2020 11:30:24 +0200 Subject: [PATCH] [CMake] Add Python's venv site-packages path to runtime interpreter --- Applications/ApplicationsLib/CMakeLists.txt | 3 ++- Applications/ApplicationsLib/ProjectData.cpp | 12 ++++++++---- InfoLib/CMakeInfo.cpp.in | 1 + InfoLib/CMakeInfo.h | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Applications/ApplicationsLib/CMakeLists.txt b/Applications/ApplicationsLib/CMakeLists.txt index dd3feb419ba..e446674da71 100644 --- a/Applications/ApplicationsLib/CMakeLists.txt +++ b/Applications/ApplicationsLib/CMakeLists.txt @@ -7,7 +7,8 @@ ogs_add_library(ApplicationsLib ${LIB_SOURCES}) target_link_libraries(ApplicationsLib PUBLIC BaseLib GeoLib NumLib Processes - PRIVATE MathLib + PRIVATE CMakeInfoLib + MathLib MeshLib MeshGeoToolsLib ParameterLib diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp index 5e45b588975..81703eace73 100644 --- a/Applications/ApplicationsLib/ProjectData.cpp +++ b/Applications/ApplicationsLib/ProjectData.cpp @@ -15,7 +15,6 @@ #include <algorithm> #include <cctype> -#include "BaseLib/Logging.h" #include <set> #ifdef OGS_USE_PYTHON @@ -25,8 +24,10 @@ #include "BaseLib/Algorithm.h" #include "BaseLib/ConfigTree.h" #include "BaseLib/FileTools.h" +#include "BaseLib/Logging.h" #include "BaseLib/StringTools.h" #include "GeoLib/GEOObjects.h" +#include "InfoLib/CMakeInfo.h" #include "MaterialLib/MPL/CreateMedium.h" #include "MathLib/Curve/CreatePiecewiseLinearCurve.h" #include "MeshGeoToolsLib/ConstructMeshesFromGeometries.h" @@ -275,9 +276,12 @@ ProjectData::ProjectData(BaseLib::ConfigTree const& project_config, #ifdef OGS_USE_PYTHON namespace py = pybind11; - // Append project's directory to python's module search path. - py::module::import("sys").attr("path").attr("append")( - project_directory); + // Append to python's module search path + auto py_path = py::module::import("sys").attr("path"); + py_path.attr("append")(project_directory); // .prj directory + // virtualenv + py_path.attr("append")( + CMakeInfoLib::CMakeInfo::python_virtualenv_sitepackages); auto const script_path = BaseLib::copyPathToFileName(*python_script, project_directory); diff --git a/InfoLib/CMakeInfo.cpp.in b/InfoLib/CMakeInfo.cpp.in index bc28b2a72ae..77d6c826048 100644 --- a/InfoLib/CMakeInfo.cpp.in +++ b/InfoLib/CMakeInfo.cpp.in @@ -17,6 +17,7 @@ namespace CMakeInfoLib namespace CMakeInfo { + const std::string python_virtualenv_sitepackages("@Python3_VIRTUALENV_SITEPACKAGES@"); const std::string cmake_args("@CMAKE_ARGS_ESCAPED@"); } } diff --git a/InfoLib/CMakeInfo.h b/InfoLib/CMakeInfo.h index 6933e19f770..128a1e31c5e 100644 --- a/InfoLib/CMakeInfo.h +++ b/InfoLib/CMakeInfo.h @@ -21,6 +21,7 @@ namespace CMakeInfoLib namespace CMakeInfo { + extern CMAKEINFOLIB_EXPORT const std::string python_virtualenv_sitepackages; extern CMAKEINFOLIB_EXPORT const std::string cmake_args; } // namespace } // namespace -- GitLab