Skip to content

Commit

Permalink
Allow share/cmake/ as cmake_prefix_path
Browse files Browse the repository at this point in the history
This is to allow passing the path share/cmake/ as cmake_prefix_path.
This is a case supported by cmake and is relied on by PyTorch.

The cmake prefix of PyTorch can be found by running:
python -c 'import torch.utils; print(torch.utils.cmake_prefix_path)'

you will see something like below from the above command:
/home/gaoxiang/.virtualenvs/nvfuser/lib/python3.11/site-packages/torch/share/cmake
Inspecting this directory:

❯ tree /home/gaoxiang/.virtualenvs/nvfuser/lib/python3.11/site-packages/torch/share/cmake
/home/gaoxiang/.virtualenvs/nvfuser/lib/python3.11/site-packages/torch/share/cmake
├── ATen
│   └── ATenConfig.cmake
├── Caffe2
│   ├── Caffe2Config.cmake
│   ├── Caffe2Targets.cmake
│   ├── Caffe2Targets-release.cmake
│   ├── FindCUDAToolkit.cmake
│   ├── FindCUSPARSELT.cmake
│   ├── Modules_CUDA_fix
│   │   ├── FindCUDA.cmake
│   │   ├── FindCUDNN.cmake
│   │   └── upstream
│   │       ├── CMakeInitializeConfigs.cmake
│   │       ├── FindCUDA
│   │       │   ├── make2cmake.cmake
│   │       │   ├── parse_cubin.cmake
│   │       │   ├── run_nvcc.cmake
│   │       │   └── select_compute_arch.cmake
│   │       ├── FindCUDA.cmake
│   │       ├── FindPackageHandleStandardArgs.cmake
│   │       └── FindPackageMessage.cmake
│   └── public
│       ├── cuda.cmake
│       ├── gflags.cmake
│       ├── glog.cmake
│       ├── LoadHIP.cmake
│       ├── mkl.cmake
│       ├── mkldnn.cmake
│       ├── protobuf.cmake
│       └── utils.cmake
├── Tensorpipe
│   ├── TensorpipeTargets.cmake
│   └── TensorpipeTargets-release.cmake
└── Torch
    ├── TorchConfig.cmake
    └── TorchConfigVersion.cmake

9 directories, 28 files

However, meson currently filters this directory out by `_preliminary_find_check`. As a result, doing
torch_dep = dependency('Torch')
will fail, even if you set `cmake_prefix_path` with the value returned by PyTorch.

Possibly related issues:
https://stackoverflow.com/questions/68884434/libtorch-c-meson-dependency
#9740
https://discuss.pytorch.org/t/libtorch-meson-build/139648
  • Loading branch information
zasdfgbnm committed Sep 28, 2023
1 parent 5ff59f2 commit 3b5b595
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion mesonbuild/dependencies/cmake.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ def process_paths(l: T.List[str]) -> T.Set[str]:
module_paths = [x for x in module_paths if os.path.isdir(x)]
archs = temp_parser.get_cmake_var('MESON_ARCH_LIST')

common_paths = ['lib', 'lib32', 'lib64', 'libx32', 'share']
common_paths = ['lib', 'lib32', 'lib64', 'libx32', 'share', '']
for i in archs:
common_paths += [os.path.join('lib', i)]

Expand Down

0 comments on commit 3b5b595

Please sign in to comment.