|
|
|
@ -236,23 +236,33 @@ endfunction() |
|
|
|
|
# creates a Python test with the given name whose main module is in |
|
|
|
|
# test/name.py. It does nothing if Python is not installed. |
|
|
|
|
function(py_test name) |
|
|
|
|
# We are not supporting Python tests on Linux yet as they consider |
|
|
|
|
# all Linux environments to be google3 and try to use google3 features. |
|
|
|
|
if (PYTHONINTERP_FOUND) |
|
|
|
|
# ${CMAKE_BINARY_DIR} is known at configuration time, so we can |
|
|
|
|
# directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known |
|
|
|
|
# only at ctest runtime (by calling ctest -c <Configuration>), so |
|
|
|
|
# we have to escape $ to delay variable substitution here. |
|
|
|
|
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1) |
|
|
|
|
add_test( |
|
|
|
|
NAME ${name} |
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py |
|
|
|
|
--build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>) |
|
|
|
|
if (CMAKE_CONFIGURATION_TYPES) |
|
|
|
|
# Multi-configuration build generators as for Visual Studio save |
|
|
|
|
# output in a subdirectory of CMAKE_CURRENT_BINARY_DIR (Debug, |
|
|
|
|
# Release etc.), so we have to provide it here. |
|
|
|
|
add_test( |
|
|
|
|
NAME ${name} |
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py |
|
|
|
|
--build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) |
|
|
|
|
else (CMAKE_CONFIGURATION_TYPES) |
|
|
|
|
# Single-configuration build generators like Makefile generators |
|
|
|
|
# don't have subdirs below CMAKE_CURRENT_BINARY_DIR. |
|
|
|
|
add_test( |
|
|
|
|
NAME ${name} |
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py |
|
|
|
|
--build_dir=${CMAKE_CURRENT_BINARY_DIR}) |
|
|
|
|
endif (CMAKE_CONFIGURATION_TYPES) |
|
|
|
|
else (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1) |
|
|
|
|
# ${CMAKE_CURRENT_BINARY_DIR} is known at configuration time, so we can |
|
|
|
|
# directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known |
|
|
|
|
# only at ctest runtime (by calling ctest -c <Configuration>), so |
|
|
|
|
# we have to escape $ to delay variable substitution here. |
|
|
|
|
add_test( |
|
|
|
|
${name} |
|
|
|
|
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py |
|
|
|
|
--build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE}) |
|
|
|
|
endif (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1) |
|
|
|
|
endif() |
|
|
|
|
endif(PYTHONINTERP_FOUND) |
|
|
|
|
endfunction() |
|
|
|
|