Sculpt: Line gestures and Mask Line tool
[blender.git] / tests / CMakeLists.txt
1
2 # Always run tests from install path, so all required scripts and libraries
3 # are available and we are testing the actual installation layout.
4 #
5 # Getting the install path of the executable is somewhat involved, as there are
6 # no direct CMake generator expressions to get the install paths of executables.
7 get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
8 if(GENERATOR_IS_MULTI_CONFIG)
9   string(REPLACE "\${BUILD_TYPE}" "$<CONFIG>" TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
10 else()
11   string(REPLACE "\${BUILD_TYPE}" "" TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
12 endif()
13
14 # Path to Blender and Python executables for all platforms.
15 if(MSVC)
16   set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/blender.exe)
17   set(_default_test_python_exe "${TEST_INSTALL_DIR}/${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}/python/bin/python$<$<CONFIG:Debug>:_d>")
18 elseif(APPLE)
19   set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/Blender.app/Contents/MacOS/Blender)
20   set(_default_test_python_exe ${PYTHON_EXECUTABLE})
21 else()
22   if(WITH_INSTALL_PORTABLE)
23     set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/blender)
24   else()
25     set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/bin/blender)
26   endif()
27   set(_default_test_python_exe ${PYTHON_EXECUTABLE})
28 endif()
29
30 # The installation directory's Python is the best one to use. However, it can only be there after the install step,
31 # which means that Python will never be there on a fresh system. To suit different needs, the user can pass
32 # -DTEST_PYTHON_EXE=/path/to/python to CMake.
33 if(NOT TEST_PYTHON_EXE)
34   set(TEST_PYTHON_EXE ${_default_test_python_exe})
35   message(STATUS "Tests: Using Python executable: ${TEST_PYTHON_EXE}")
36 elseif(NOT EXISTS ${TEST_PYTHON_EXE})
37   message(FATAL_ERROR "Tests: TEST_PYTHON_EXE ${TEST_PYTHON_EXE} does not exist")
38 endif()
39 unset(_default_test_python_exe)
40
41
42 # For testing with Valgrind
43 # set(TEST_BLENDER_EXE valgrind --track-origins=yes --error-limit=no ${TEST_BLENDER_EXE})
44
45 # Standard Blender arguments for running tests.
46 # Specify exit code so that if a Python script error happens, the test fails.
47 set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --debug-memory --debug-exit-on-error --python-exit-code 1)
48
49 # Python CTests
50 if(WITH_BLENDER AND WITH_PYTHON)
51   add_subdirectory(python)
52 endif()
53
54 # GTest
55 add_subdirectory(gtests)