find_path.rst 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. find_path
  2. ---------
  3. .. |FIND_XXX| replace:: find_path
  4. .. |NAMES| replace:: NAMES name1 [name2 ...]
  5. .. |SEARCH_XXX| replace:: file in a directory
  6. .. |SEARCH_XXX_DESC| replace:: directory containing the named file
  7. .. |prefix_XXX_SUBDIR| replace:: ``<prefix>/include``
  8. .. |entry_XXX_SUBDIR| replace:: ``<entry>/include``
  9. .. |FIND_XXX_REGISTRY_VIEW_DEFAULT| replace:: ``TARGET``
  10. .. |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX| replace::
  11. ``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
  12. is set, and |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX_SUBDIR|
  13. .. |CMAKE_PREFIX_PATH_XXX| replace::
  14. ``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
  15. is set, and |CMAKE_PREFIX_PATH_XXX_SUBDIR|
  16. .. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
  17. .. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
  18. .. |ENV_CMAKE_PREFIX_PATH_XXX| replace::
  19. ``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
  20. and |ENV_CMAKE_PREFIX_PATH_XXX_SUBDIR|
  21. .. |ENV_CMAKE_XXX_PATH| replace:: :envvar:`CMAKE_INCLUDE_PATH`
  22. .. |ENV_CMAKE_XXX_MAC_PATH| replace:: :envvar:`CMAKE_FRAMEWORK_PATH`
  23. .. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: The directories in ``INCLUDE``
  24. and ``PATH``.
  25. .. |SYSTEM_ENVIRONMENT_PATH_WINDOWS_XXX| replace::
  26. On Windows hosts, CMake 3.3 through 3.27 searched additional paths:
  27. ``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
  28. is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|.
  29. This behavior was removed by CMake 3.28.
  30. .. |CMAKE_SYSTEM_PREFIX_PATH_XXX| replace::
  31. ``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
  32. is set, and |CMAKE_SYSTEM_PREFIX_PATH_XXX_SUBDIR|
  33. .. |CMAKE_SYSTEM_XXX_PATH| replace::
  34. :variable:`CMAKE_SYSTEM_INCLUDE_PATH`
  35. .. |CMAKE_SYSTEM_XXX_MAC_PATH| replace::
  36. :variable:`CMAKE_SYSTEM_FRAMEWORK_PATH`
  37. .. |CMAKE_FIND_ROOT_PATH_MODE_XXX| replace::
  38. :variable:`CMAKE_FIND_ROOT_PATH_MODE_INCLUDE`
  39. .. include:: FIND_XXX.txt
  40. When searching for frameworks, if the file is specified as ``A/b.h``, then
  41. the framework search will look for ``A.framework/Headers/b.h``. If that
  42. is found the path will be set to the path to the framework. CMake
  43. will convert this to the correct ``-F`` option to include the file.