• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})
2
3if(ENABLE_GITEE OR ENABLE_GITEE_EULER) # Channel GITEE_EULER is NOT supported now, use GITEE instead.
4    if(PYTHON_VERSION MATCHES "3.7")
5        set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.4.3.tar.gz")
6        set(SHA256 "182cf9e2c5a7ae6f03f84cf17e826d7aa2b02aa2f3705db684dfe686c0278b36")
7    elseif(PYTHON_VERSION MATCHES "3.8")
8        set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz")
9        set(SHA256 "c840509be94ac97216c3b4a3ed9f3fdba9948dbe38c16fcfaee3acc6dc93ed0e")
10    elseif(PYTHON_VERSION MATCHES "3.9")
11        set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz")
12        set(SHA256 "c840509be94ac97216c3b4a3ed9f3fdba9948dbe38c16fcfaee3acc6dc93ed0e")
13    elseif(PYTHON_VERSION MATCHES "3.10")
14        set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz")
15        set(SHA256 "c840509be94ac97216c3b4a3ed9f3fdba9948dbe38c16fcfaee3acc6dc93ed0e")
16    else()
17        message("Could not find Python versions 3.7 - 3.10")
18        return()
19    endif()
20else()
21    if(PYTHON_VERSION MATCHES "3.7")
22        set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.4.3.tar.gz")
23        set(SHA256 "1eed57bc6863190e35637290f97a20c81cfe4d9090ac0a24f3bbf08f265eb71d")
24    elseif(PYTHON_VERSION MATCHES "3.8")
25        set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz")
26        set(SHA256 "cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a")
27    elseif(PYTHON_VERSION MATCHES "3.9")
28        set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz")
29        set(SHA256 "cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a")
30    elseif(PYTHON_VERSION MATCHES "3.10")
31        set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz")
32        set(SHA256 "cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a")
33    else()
34        message("Could not find Python versions 3.7 - 3.10")
35        return()
36    endif()
37endif()
38set(pybind11_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
39set(pybind11_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
40set(pybind11_patch ${TOP_DIR}/third_party/patch/pybind11/pybind11.patch001)
41
42if(PYTHON_VERSION MATCHES "3.7")
43    mindspore_add_pkg(pybind11
44        VER 2.4.3
45        URL ${REQ_URL}
46        SHA256 ${SHA256}
47        CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
48        )
49elseif(PYTHON_VERSION MATCHES "3.8")
50    mindspore_add_pkg(pybind11
51        VER 2.6.1
52        URL ${REQ_URL}
53        SHA256 ${SHA256}
54        CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
55        )
56else()
57    mindspore_add_pkg(pybind11
58        VER 2.6.1
59        URL ${REQ_URL}
60        SHA256 ${SHA256}
61        PATCHES ${pybind11_patch}
62        CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
63        )
64endif()
65
66include_directories(${pybind11_INC})
67find_package(pybind11 REQUIRED)
68set_property(TARGET pybind11::module PROPERTY IMPORTED_GLOBAL TRUE)
69add_library(mindspore::pybind11_module ALIAS pybind11::module)
70