tree 7c678be6d9707e9bb71380cc205f433486e7e997
parent 16ed1b8f308d2b3dec9d7e6decaad49ce4d28b43
author Milo Kerr <34846459+M-Kerr@users.noreply.github.com> 1593902007 -0400
committer GitHub <noreply@github.com> 1593902007 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfAQO3CRBK7hj4Ov3rIwAAdHIIAK45LSH+CgiF0D6uLT29d+5f
 GGxuY7iOSN6K97StwLLfX9Gd2+HeWUicqTGCgzPRm2akxWZpRIL4S7/EpfgP1gSx
 MdDNcchw+iajd9oFo0h8FUenMCH0Ni95JX8W2b5vtFFWe3KsxHEw3wP5wLEF623i
 /7OnICbfiNp6ofFvBfwb4NIcWKNMkWviFBDI/T8H+jAqReXZqBlCnqMkWyDcaMr4
 09+O2nejV3NqR632f7Qt51F52ZUgjto7Xwux3PQhK291UE00+LalEYWCi2gN8iFM
 kxyCusNm6tRJcrq1nk1kISeBdkujdQITZqmEmlBDEySDRwP8stFpUgj7bhzbeug=
 =P/hl
 -----END PGP SIGNATURE-----
 

Initial commit to add embedding support via pybind11_embed target (#15)

* Initial commit to add embedding support via pybind11_embed target

Currently, only MacOS 10.13.3 tested and Python 3 supported

    //python_configure.bzl:
        _find_python_config() function to find the local Python's python-config script
        _get_embed_flags() function to identify the copts and linkopts flags required to embed the Python interpreter.

    //py/BUILD.tpl: cc_library(name= "python_embed") combines python headers with embed flags.

    //pybind11.BUILD: pybind11_embed target that depends on python_embed.

To embed the python interpreter, add "@pybind11//:pybind11_embed" as a dependency
to your cc_binary target that embeds Python.

* Removed unused found_config variable

* Added pybind11_embed instructions

* Updated README to reflect Linux support

* readme formatting fixes

* Improved python_configure.bzl organization