Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2022-09-15 19:10:44 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-09-15 19:27:01 +0300
commit5228b0b74fdb006c0ddb0f61bc1f6736f3fd7cb5 (patch)
treea1b0f75841ae0e26694f3828cf0b9b53540ef5e9
parent335a6c0c87b805d2fe21a9d43294157b44fac28c (diff)
Python: fix failing tests when building bpy module
* Use Python executable from lib folder since it's not installed. * Make bpy module test work for portable install. * Disable gtests which don't work with different Python link flags and shared library locations. Ref D15957
-rw-r--r--build_files/cmake/macros.cmake14
-rw-r--r--build_files/cmake/platform/platform_win32.cmake2
-rw-r--r--tests/CMakeLists.txt6
-rw-r--r--tests/blender_as_python_module/CMakeLists.txt2
-rw-r--r--tests/blender_as_python_module/import_bpy.py4
5 files changed, 22 insertions, 6 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index d271d8f216f..093106fc4dc 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -418,6 +418,13 @@ function(blender_add_test_lib
library_deps
)
+ # Not currently supported for Python module due to different required
+ # Python link flags.
+ if(WITH_PYTHON_MODULE)
+ add_custom_target(${name})
+ return()
+ endif()
+
add_cc_flags_custom_test(${name} PARENT_SCOPE)
# Otherwise external projects will produce warnings that we cannot fix.
@@ -464,6 +471,13 @@ function(blender_add_test_executable
library_deps
)
+ # Not currently supported for Python module due to different required
+ # Python link flags.
+ if(WITH_PYTHON_MODULE)
+ add_custom_target(${name})
+ return()
+ endif()
+
add_cc_flags_custom_test(${name} PARENT_SCOPE)
## Otherwise external projects will produce warnings that we cannot fix.
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake
index 66ab0d4169a..771b00a3d09 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -510,6 +510,8 @@ if(WITH_PYTHON)
set(PYTHON_LIBRARY ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/libs/python${_PYTHON_VERSION_NO_DOTS}.lib)
set(PYTHON_LIBRARY_DEBUG ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/libs/python${_PYTHON_VERSION_NO_DOTS}_d.lib)
+ set(PYTHON_EXECUTABLE ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/bin/python$<$<CONFIG:Debug>:_d>.exe)
+
set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/include)
set(PYTHON_NUMPY_INCLUDE_DIRS ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/lib/site-packages/numpy/core/include)
set(NUMPY_FOUND ON)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 6d1c838ad6d..68fcfc89b96 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -10,29 +10,25 @@ set(TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX_WITH_CONFIG})
# Path to Blender and Python executables for all platforms.
if(MSVC)
set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/blender.exe)
- set(_default_test_python_exe "${TEST_INSTALL_DIR}/${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}/python/bin/python$<$<CONFIG:Debug>:_d>")
elseif(APPLE)
set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/Blender.app/Contents/MacOS/Blender)
- set(_default_test_python_exe ${PYTHON_EXECUTABLE})
else()
if(WITH_INSTALL_PORTABLE)
set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/blender)
else()
set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/bin/blender)
endif()
- set(_default_test_python_exe ${PYTHON_EXECUTABLE})
endif()
# The installation directory's Python is the best one to use. However, it can only be there after the install step,
# which means that Python will never be there on a fresh system. To suit different needs, the user can pass
# -DTEST_PYTHON_EXE=/path/to/python to CMake.
if(NOT TEST_PYTHON_EXE)
- set(TEST_PYTHON_EXE ${_default_test_python_exe})
+ set(TEST_PYTHON_EXE ${PYTHON_EXECUTABLE})
message(STATUS "Tests: Using Python executable: ${TEST_PYTHON_EXE}")
elseif(NOT EXISTS ${TEST_PYTHON_EXE})
message(FATAL_ERROR "Tests: TEST_PYTHON_EXE ${TEST_PYTHON_EXE} does not exist")
endif()
-unset(_default_test_python_exe)
# For testing with Valgrind
diff --git a/tests/blender_as_python_module/CMakeLists.txt b/tests/blender_as_python_module/CMakeLists.txt
index 334b3288246..4f6cf0adfdb 100644
--- a/tests/blender_as_python_module/CMakeLists.txt
+++ b/tests/blender_as_python_module/CMakeLists.txt
@@ -12,4 +12,4 @@ function(add_blender_as_python_module_test testname testscript)
)
endfunction()
-add_blender_as_python_module_test(import_bpy ${CMAKE_CURRENT_LIST_DIR}/import_bpy.py)
+add_blender_as_python_module_test(import_bpy ${CMAKE_CURRENT_LIST_DIR}/import_bpy.py ${CMAKE_INSTALL_PREFIX_WITH_CONFIG})
diff --git a/tests/blender_as_python_module/import_bpy.py b/tests/blender_as_python_module/import_bpy.py
index ea75c0f2fe6..223ed998707 100644
--- a/tests/blender_as_python_module/import_bpy.py
+++ b/tests/blender_as_python_module/import_bpy.py
@@ -1,4 +1,8 @@
# SPDX-License-Identifier: GPL-2.0-or-later
+# Add directory with module to the path.
+import sys
+sys.path.append(sys.argv[1])
+
# Just import bpy and see if there are any dynamic loader errors.
import bpy