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
This commit is contained in:
parent
335a6c0c87
commit
5228b0b74f
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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})
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user