mirror of https://github.com/pybind/pybind11
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.3 KiB
56 lines
1.3 KiB
# pylint: disable=missing-function-docstring |
|
|
|
import argparse |
|
import sys |
|
import sysconfig |
|
|
|
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( |
|
"--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()
|
|
|