CMakeLists.txt revision 12037:d28054ac6ec9
16313Sgblack@eecs.umich.educmake_minimum_required(VERSION 3.0) 26313Sgblack@eecs.umich.eduproject(test_installed_target CXX) 36313Sgblack@eecs.umich.edu 46313Sgblack@eecs.umich.eduset(CMAKE_MODULE_PATH "") 56313Sgblack@eecs.umich.edu 66313Sgblack@eecs.umich.edufind_package(pybind11 CONFIG REQUIRED) 76313Sgblack@eecs.umich.edumessage(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}") 86313Sgblack@eecs.umich.edu 96313Sgblack@eecs.umich.eduadd_library(test_cmake_build MODULE ../main.cpp) 106313Sgblack@eecs.umich.edu 116313Sgblack@eecs.umich.edutarget_link_libraries(test_cmake_build PRIVATE pybind11::module) 126313Sgblack@eecs.umich.edu 136313Sgblack@eecs.umich.edu# make sure result is, for example, test_installed_target.so, not libtest_installed_target.dylib 146313Sgblack@eecs.umich.eduset_target_properties(test_cmake_build PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}" 156313Sgblack@eecs.umich.edu SUFFIX "${PYTHON_MODULE_EXTENSION}") 166313Sgblack@eecs.umich.edu 176313Sgblack@eecs.umich.edu# Do not treat includes from IMPORTED target as SYSTEM (Python headers in pybind11::module). 186313Sgblack@eecs.umich.edu# This may be needed to resolve header conflicts, e.g. between Python release and debug headers. 196313Sgblack@eecs.umich.eduset_target_properties(test_cmake_build PROPERTIES NO_SYSTEM_FROM_IMPORTED ON) 206313Sgblack@eecs.umich.edu 216313Sgblack@eecs.umich.eduadd_custom_target(check ${CMAKE_COMMAND} -E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build> 226313Sgblack@eecs.umich.edu ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/../test.py ${PROJECT_NAME}) 236313Sgblack@eecs.umich.edu