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$<$:_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$<$:_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