|  | 
| 17 | 17 | 
 | 
| 18 | 18 | 
 | 
| 19 | 19 | def get_boost_libraries(): | 
| 20 |  | -    base_lib = "boost_python" | 
| 21 |  | -    major, minor = str(sys.version_info[0]), str(sys.version_info[1]) | 
| 22 |  | -    tags = [f"{major}{minor}", major, ""] | 
| 23 |  | -    mttags = ["", "-mt"] | 
| 24 |  | -    candidates = [base_lib + tag for tag in tags for mt in mttags] + [base_lib] | 
| 25 |  | -    for lib in candidates: | 
| 26 |  | -        if find_library(lib): | 
| 27 |  | -            return [lib] | 
|  | 20 | +    major, minor = sys.version_info[:2] | 
|  | 21 | +    candidates = [ | 
|  | 22 | +        f"boost_python{major}{minor}", | 
|  | 23 | +        f"boost_python{major}", | 
|  | 24 | +        "boost_python", | 
|  | 25 | +    ] | 
|  | 26 | + | 
|  | 27 | +    conda_prefix = os.environ.get("CONDA_PREFIX") | 
|  | 28 | +    if conda_prefix: | 
|  | 29 | +        libdir = os.path.join(conda_prefix, "lib") | 
|  | 30 | +        for name in candidates: | 
|  | 31 | +            so = f"lib{name}.so" | 
|  | 32 | +            if os.path.isfile(os.path.join(libdir, so)): | 
|  | 33 | +                return [name] | 
|  | 34 | + | 
|  | 35 | +    # fallback to ldconfig | 
|  | 36 | +    for name in candidates: | 
|  | 37 | +        found = find_library(name) | 
|  | 38 | +        if found: | 
|  | 39 | +            return [name] | 
| 28 | 40 |     raise RuntimeError("Cannot find a suitable Boost.Python library.") | 
| 29 | 41 | 
 | 
| 30 | 42 | 
 | 
| @@ -111,11 +123,11 @@ def create_extensions(): | 
| 111 | 123 | 
 | 
| 112 | 124 | 
 | 
| 113 | 125 | # Extensions not included in pyproject.toml | 
| 114 |  | -setup_args = dict( | 
| 115 |  | -    ext_modules=[], | 
| 116 |  | -) | 
|  | 126 | +def ext_modules(): | 
|  | 127 | +    if set(sys.argv) & {"build_ext", "bdist_wheel", "install"}: | 
|  | 128 | +        return create_extensions() | 
|  | 129 | +    return [] | 
| 117 | 130 | 
 | 
| 118 | 131 | 
 | 
| 119 | 132 | if __name__ == "__main__": | 
| 120 |  | -    setup_args["ext_modules"] = create_extensions() | 
| 121 |  | -    setup(**setup_args) | 
|  | 133 | +    setup(ext_modules=ext_modules()) | 
0 commit comments