1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#===============================================================================
# Usage:
# dartpy_add_tutorial(tutorial_name) # assumed source is tutorial_name.py
# dartpy_add_tutorial(tutorial_name main.py)
#===============================================================================
function(dartpy_add_tutorial tutorial_name) # ARGN for source file
if(${ARGC} GREATER 1)
set(source ${ARGN})
else()
set(source "${tutorial_name}.py")
endif()
add_custom_target(${tutorial_name}
COMMAND ${CMAKE_COMMAND} -E echo "Running pytest by: PYTHONPATH=${DART_DARTPY_BUILD_DIR} ${PYTHON_EXECUTABLE} ${source}"
COMMAND PYTHONPATH=${DART_DARTPY_BUILD_DIR} ${PYTHON_EXECUTABLE} ${source}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
SOURCES ${source}
)
endfunction()
# Automatically identify all directories in the apps folder
file(GLOB children RELATIVE ${CMAKE_CURRENT_LIST_DIR} "*")
foreach(child ${children})
if(IS_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/${child}")
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${child}/main.py")
if(DART_VERBOSE)
message(STATUS "Adding Python tutorial: " py_${child})
endif()
endif()
dartpy_add_tutorial(py_tutorial_${child} "${CMAKE_CURRENT_LIST_DIR}/${child}/main.py")
dartpy_add_tutorial(py_tutorial_${child}_finished "${CMAKE_CURRENT_LIST_DIR}/${child}/main_finished.py")
endif()
endforeach()
|