blob: a651031f5eab64e2f9970b33b4520aadc5ed4e33 [file] [log] [blame]
Dean Moldovan9693a5c2017-03-23 17:27:32 +01001if(${PYTHON_MODULE_EXTENSION} MATCHES "pypy")
2 add_custom_target(cpptest) # Dummy target on PyPy. Embedding is not supported.
3 set(_suppress_unused_variable_warning "${DOWNLOAD_CATCH}")
4 return()
5endif()
6
7find_package(Catch 1.9.3)
8if(NOT CATCH_FOUND)
9 message(STATUS "Catch not detected. Interpreter tests will be skipped. Install Catch headers"
10 " manually or use `cmake -DDOWNLOAD_CATCH=1` to fetch them automatically.")
11 return()
12endif()
13
14add_executable(test_embed
15 catch.cpp
16 test_interpreter.cpp
17)
18target_include_directories(test_embed PRIVATE ${CATCH_INCLUDE_DIR})
19pybind11_enable_warnings(test_embed)
20
21if(NOT CMAKE_VERSION VERSION_LESS 3.0)
22 target_link_libraries(test_embed PRIVATE pybind11::embed)
23else()
24 target_include_directories(test_embed PRIVATE ${PYBIND11_INCLUDE_DIR} ${PYTHON_INCLUDE_DIRS})
25 target_compile_options(test_embed PRIVATE ${PYBIND11_CPP_STANDARD})
26 target_link_libraries(test_embed PRIVATE ${PYTHON_LIBRARIES})
27endif()
28
29add_custom_target(cpptest COMMAND $<TARGET_FILE:test_embed>
30 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
31add_dependencies(check cpptest)