mirror of
https://github.com/thelsing/knx.git
synced 2026-02-23 13:50:35 +01:00
remove pybind11 to readd as subtree
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
add_custom_target(test_cmake_build)
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS 3.1)
|
||||
# 3.0 needed for interface library for subdirectory_target/installed_target
|
||||
# 3.1 needed for cmake -E env for testing
|
||||
return()
|
||||
endif()
|
||||
|
||||
include(CMakeParseArguments)
|
||||
function(pybind11_add_build_test name)
|
||||
cmake_parse_arguments(ARG "INSTALL" "" "" ${ARGN})
|
||||
|
||||
set(build_options "-DCMAKE_PREFIX_PATH=${PROJECT_BINARY_DIR}/mock_install"
|
||||
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
|
||||
"-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}"
|
||||
"-DPYBIND11_CPP_STANDARD=${PYBIND11_CPP_STANDARD}")
|
||||
if(NOT ARG_INSTALL)
|
||||
list(APPEND build_options "-DPYBIND11_PROJECT_DIR=${PROJECT_SOURCE_DIR}")
|
||||
endif()
|
||||
|
||||
add_custom_target(test_${name} ${CMAKE_CTEST_COMMAND}
|
||||
--quiet --output-log ${name}.log
|
||||
--build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/${name}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${name}"
|
||||
--build-config Release
|
||||
--build-noclean
|
||||
--build-generator ${CMAKE_GENERATOR}
|
||||
$<$<BOOL:${CMAKE_GENERATOR_PLATFORM}>:--build-generator-platform> ${CMAKE_GENERATOR_PLATFORM}
|
||||
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
||||
--build-target check
|
||||
--build-options ${build_options}
|
||||
)
|
||||
if(ARG_INSTALL)
|
||||
add_dependencies(test_${name} mock_install)
|
||||
endif()
|
||||
add_dependencies(test_cmake_build test_${name})
|
||||
endfunction()
|
||||
|
||||
pybind11_add_build_test(subdirectory_function)
|
||||
pybind11_add_build_test(subdirectory_target)
|
||||
if(NOT ${PYTHON_MODULE_EXTENSION} MATCHES "pypy")
|
||||
pybind11_add_build_test(subdirectory_embed)
|
||||
endif()
|
||||
|
||||
if(PYBIND11_INSTALL)
|
||||
add_custom_target(mock_install ${CMAKE_COMMAND}
|
||||
"-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/mock_install"
|
||||
-P "${PROJECT_BINARY_DIR}/cmake_install.cmake"
|
||||
)
|
||||
|
||||
pybind11_add_build_test(installed_function INSTALL)
|
||||
pybind11_add_build_test(installed_target INSTALL)
|
||||
if(NOT ${PYTHON_MODULE_EXTENSION} MATCHES "pypy")
|
||||
pybind11_add_build_test(installed_embed INSTALL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_dependencies(check test_cmake_build)
|
||||
@@ -1,21 +0,0 @@
|
||||
#include <pybind11/embed.h>
|
||||
namespace py = pybind11;
|
||||
|
||||
PYBIND11_EMBEDDED_MODULE(test_cmake_build, m) {
|
||||
m.def("add", [](int i, int j) { return i + j; });
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc != 2)
|
||||
throw std::runtime_error("Expected test.py file as the first argument");
|
||||
auto test_py_file = argv[1];
|
||||
|
||||
py::scoped_interpreter guard{};
|
||||
|
||||
auto m = py::module::import("test_cmake_build");
|
||||
if (m.attr("add")(1, 2).cast<int>() != 3)
|
||||
throw std::runtime_error("embed.cpp failed");
|
||||
|
||||
py::module::import("sys").attr("argv") = py::make_tuple("test.py", "embed.cpp");
|
||||
py::eval_file(test_py_file, py::globals());
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(test_installed_embed CXX)
|
||||
|
||||
set(CMAKE_MODULE_PATH "")
|
||||
find_package(pybind11 CONFIG REQUIRED)
|
||||
message(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
|
||||
|
||||
add_executable(test_cmake_build ../embed.cpp)
|
||||
target_link_libraries(test_cmake_build PRIVATE pybind11::embed)
|
||||
|
||||
# Do not treat includes from IMPORTED target as SYSTEM (Python headers in pybind11::embed).
|
||||
# This may be needed to resolve header conflicts, e.g. between Python release and debug headers.
|
||||
set_target_properties(test_cmake_build PROPERTIES NO_SYSTEM_FROM_IMPORTED ON)
|
||||
|
||||
add_custom_target(check $<TARGET_FILE:test_cmake_build> ${PROJECT_SOURCE_DIR}/../test.py)
|
||||
@@ -1,12 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
project(test_installed_module CXX)
|
||||
|
||||
set(CMAKE_MODULE_PATH "")
|
||||
|
||||
find_package(pybind11 CONFIG REQUIRED)
|
||||
message(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
|
||||
|
||||
pybind11_add_module(test_cmake_build SHARED NO_EXTRAS ../main.cpp)
|
||||
|
||||
add_custom_target(check ${CMAKE_COMMAND} -E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build>
|
||||
${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/../test.py ${PROJECT_NAME})
|
||||
@@ -1,22 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(test_installed_target CXX)
|
||||
|
||||
set(CMAKE_MODULE_PATH "")
|
||||
|
||||
find_package(pybind11 CONFIG REQUIRED)
|
||||
message(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
|
||||
|
||||
add_library(test_cmake_build MODULE ../main.cpp)
|
||||
|
||||
target_link_libraries(test_cmake_build PRIVATE pybind11::module)
|
||||
|
||||
# make sure result is, for example, test_installed_target.so, not libtest_installed_target.dylib
|
||||
set_target_properties(test_cmake_build PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}"
|
||||
SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||
|
||||
# Do not treat includes from IMPORTED target as SYSTEM (Python headers in pybind11::module).
|
||||
# This may be needed to resolve header conflicts, e.g. between Python release and debug headers.
|
||||
set_target_properties(test_cmake_build PROPERTIES NO_SYSTEM_FROM_IMPORTED ON)
|
||||
|
||||
add_custom_target(check ${CMAKE_COMMAND} -E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build>
|
||||
${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/../test.py ${PROJECT_NAME})
|
||||
@@ -1,6 +0,0 @@
|
||||
#include <pybind11/pybind11.h>
|
||||
namespace py = pybind11;
|
||||
|
||||
PYBIND11_MODULE(test_cmake_build, m) {
|
||||
m.def("add", [](int i, int j) { return i + j; });
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(test_subdirectory_embed CXX)
|
||||
|
||||
set(PYBIND11_INSTALL ON CACHE BOOL "")
|
||||
set(PYBIND11_EXPORT_NAME test_export)
|
||||
|
||||
add_subdirectory(${PYBIND11_PROJECT_DIR} pybind11)
|
||||
|
||||
# Test basic target functionality
|
||||
add_executable(test_cmake_build ../embed.cpp)
|
||||
target_link_libraries(test_cmake_build PRIVATE pybind11::embed)
|
||||
|
||||
add_custom_target(check $<TARGET_FILE:test_cmake_build> ${PROJECT_SOURCE_DIR}/../test.py)
|
||||
|
||||
# Test custom export group -- PYBIND11_EXPORT_NAME
|
||||
add_library(test_embed_lib ../embed.cpp)
|
||||
target_link_libraries(test_embed_lib PRIVATE pybind11::embed)
|
||||
|
||||
install(TARGETS test_embed_lib
|
||||
EXPORT test_export
|
||||
ARCHIVE DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
RUNTIME DESTINATION lib)
|
||||
install(EXPORT test_export
|
||||
DESTINATION lib/cmake/test_export/test_export-Targets.cmake)
|
||||
@@ -1,8 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
project(test_subdirectory_module CXX)
|
||||
|
||||
add_subdirectory(${PYBIND11_PROJECT_DIR} pybind11)
|
||||
pybind11_add_module(test_cmake_build THIN_LTO ../main.cpp)
|
||||
|
||||
add_custom_target(check ${CMAKE_COMMAND} -E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build>
|
||||
${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/../test.py ${PROJECT_NAME})
|
||||
@@ -1,15 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(test_subdirectory_target CXX)
|
||||
|
||||
add_subdirectory(${PYBIND11_PROJECT_DIR} pybind11)
|
||||
|
||||
add_library(test_cmake_build MODULE ../main.cpp)
|
||||
|
||||
target_link_libraries(test_cmake_build PRIVATE pybind11::module)
|
||||
|
||||
# make sure result is, for example, test_installed_target.so, not libtest_installed_target.dylib
|
||||
set_target_properties(test_cmake_build PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}"
|
||||
SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||
|
||||
add_custom_target(check ${CMAKE_COMMAND} -E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build>
|
||||
${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/../test.py ${PROJECT_NAME})
|
||||
@@ -1,5 +0,0 @@
|
||||
import sys
|
||||
import test_cmake_build
|
||||
|
||||
assert test_cmake_build.add(1, 2) == 3
|
||||
print("{} imports, runs, and adds: 1 + 2 = 3".format(sys.argv[1]))
|
||||
Reference in New Issue
Block a user