mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-26 15:12:01 +00:00
3cc7e4258c
Without this, it's impossible to get feature parity between detection mechanisms. Both the pkg-config file and the cmake config set their versions, but the python probe script didn't provide an option for this. So you could print the compiler flags for using it, but you could not check what you got.
63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
# pylint: disable=missing-function-docstring
|
|
|
|
import argparse
|
|
import sys
|
|
import sysconfig
|
|
|
|
from ._version import __version__
|
|
from .commands import get_cmake_dir, get_include, get_pkgconfig_dir
|
|
|
|
|
|
def print_includes() -> None:
|
|
dirs = [
|
|
sysconfig.get_path("include"),
|
|
sysconfig.get_path("platinclude"),
|
|
get_include(),
|
|
]
|
|
|
|
# Make unique but preserve order
|
|
unique_dirs = []
|
|
for d in dirs:
|
|
if d and d not in unique_dirs:
|
|
unique_dirs.append(d)
|
|
|
|
print(" ".join("-I" + d for d in unique_dirs))
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
"--version",
|
|
action="version",
|
|
version=__version__,
|
|
help="Print the version and exit.",
|
|
)
|
|
parser.add_argument(
|
|
"--includes",
|
|
action="store_true",
|
|
help="Include flags for both pybind11 and Python headers.",
|
|
)
|
|
parser.add_argument(
|
|
"--cmakedir",
|
|
action="store_true",
|
|
help="Print the CMake module directory, ideal for setting -Dpybind11_ROOT in CMake.",
|
|
)
|
|
parser.add_argument(
|
|
"--pkgconfigdir",
|
|
action="store_true",
|
|
help="Print the pkgconfig directory, ideal for setting $PKG_CONFIG_PATH.",
|
|
)
|
|
args = parser.parse_args()
|
|
if not sys.argv[1:]:
|
|
parser.print_help()
|
|
if args.includes:
|
|
print_includes()
|
|
if args.cmakedir:
|
|
print(get_cmake_dir())
|
|
if args.pkgconfigdir:
|
|
print(get_pkgconfig_dir())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|