未验证 提交 3535049a 编写于 作者: R RedContritio 提交者: GitHub

add submodule pybind11 (#54322)

上级 f7747808
...@@ -38,6 +38,10 @@ ...@@ -38,6 +38,10 @@
path = third_party/leveldb path = third_party/leveldb
url = https://github.com/google/leveldb url = https://github.com/google/leveldb
ignore = dirty ignore = dirty
[submodule "third_party/pybind"]
path = third_party/pybind
url = https://github.com/pybind/pybind11.git
ignore = dirty
[submodule "third_party/threadpool"] [submodule "third_party/threadpool"]
path = third_party/threadpool path = third_party/threadpool
url = https://github.com/progschj/ThreadPool.git url = https://github.com/progschj/ThreadPool.git
......
...@@ -15,10 +15,12 @@ ...@@ -15,10 +15,12 @@
include(ExternalProject) include(ExternalProject)
set(PYBIND_PREFIX_DIR ${THIRD_PARTY_PATH}/pybind) set(PYBIND_PREFIX_DIR ${THIRD_PARTY_PATH}/pybind)
set(PYBIND_REPOSITORY ${GIT_URL}/pybind/pybind11.git) set(PYBIND_SOURCE_DIR ${PYBIND_PREFIX_DIR}/src/extern_pybind)
set(PYBIND_INCLUDE_DIR ${PYBIND_SOURCE_DIR}/include)
set(PYBIND_TAG v2.10.3) set(PYBIND_TAG v2.10.3)
set(SOURCE_DIR ${PADDLE_SOURCE_DIR}/third_party/pybind)
set(SOURCE_INCLUDE_DIR ${SOURCE_DIR}/include)
set(PYBIND_INCLUDE_DIR ${THIRD_PARTY_PATH}/pybind/src/extern_pybind/include)
include_directories(${PYBIND_INCLUDE_DIR}) include_directories(${PYBIND_INCLUDE_DIR})
set(PYBIND_PATCH_COMMAND "") set(PYBIND_PATCH_COMMAND "")
...@@ -31,14 +33,13 @@ if(NOT WIN32) ...@@ -31,14 +33,13 @@ if(NOT WIN32)
# 2. Patch twice: the tag version of cache == PYBIND_TAG, but patch has already applied to cache. # 2. Patch twice: the tag version of cache == PYBIND_TAG, but patch has already applied to cache.
set(PYBIND_PATCH_COMMAND set(PYBIND_PATCH_COMMAND
git checkout -- . && git checkout ${PYBIND_TAG} && patch -Nd git checkout -- . && git checkout ${PYBIND_TAG} && patch -Nd
${PYBIND_INCLUDE_DIR}/pybind11 < ${native_dst}) ${SOURCE_INCLUDE_DIR}/pybind11 < ${native_dst})
endif() endif()
ExternalProject_Add( ExternalProject_Add(
extern_pybind extern_pybind
${EXTERNAL_PROJECT_LOG_ARGS} ${SHALLOW_CLONE} ${EXTERNAL_PROJECT_LOG_ARGS} ${SHALLOW_CLONE}
GIT_REPOSITORY ${PYBIND_REPOSITORY} SOURCE_DIR ${SOURCE_DIR}
GIT_TAG ${PYBIND_TAG}
PREFIX ${PYBIND_PREFIX_DIR} PREFIX ${PYBIND_PREFIX_DIR}
# If we explicitly leave the `UPDATE_COMMAND` of the ExternalProject_Add # If we explicitly leave the `UPDATE_COMMAND` of the ExternalProject_Add
# function in CMakeLists blank, it will cause another parameter GIT_TAG # function in CMakeLists blank, it will cause another parameter GIT_TAG
...@@ -48,7 +49,14 @@ ExternalProject_Add( ...@@ -48,7 +49,14 @@ ExternalProject_Add(
UPDATE_COMMAND "" UPDATE_COMMAND ""
PATCH_COMMAND ${PYBIND_PATCH_COMMAND} PATCH_COMMAND ${PYBIND_PATCH_COMMAND}
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
BUILD_COMMAND "" # I intentionally preserved an extern_pybind/include/pybind11 directory
# to site-packages, so that you could discern that you intended to
# employ not only python, but also CPP and were ready to incorporate header files.
BUILD_COMMAND
COMMAND ${CMAKE_COMMAND} -E remove_directory ${PYBIND_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYBIND_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${SOURCE_INCLUDE_DIR}
${PYBIND_INCLUDE_DIR}
INSTALL_COMMAND "" INSTALL_COMMAND ""
TEST_COMMAND "") TEST_COMMAND "")
......
...@@ -305,7 +305,7 @@ endif() ...@@ -305,7 +305,7 @@ endif()
if(NOT ((NOT WITH_PYTHON) AND ON_INFER)) if(NOT ((NOT WITH_PYTHON) AND ON_INFER))
include(external/python) # find python and python_module include(external/python) # find python and python_module
include(external/pybind11) # download pybind11 include(external/pybind11) # prepare submodule pybind11
list(APPEND third_party_deps extern_pybind) list(APPEND third_party_deps extern_pybind)
endif() endif()
......
Subproject commit 0bd8896a4010f2d91b2340570c24fa08606ec406
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册