# Is there a provided abstraction for LLVM tools like llvm-profdata?

**URL:** <https://discourse.cmake.org/t/is-there-a-provided-abstraction-for-llvm-tools-like-llvm-profdata/15255>\
**Category:** Code\
**Created:** [October 20, 2025, 11:53am UTC](https://discourse.cmake.org/t/is-there-a-provided-abstraction-for-llvm-tools-like-llvm-profdata/15255 "2025-10-20T11:53:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![david-fong](https://discourse.cmake.org/user_avatar/discourse.cmake.org/david-fong/32/2388_2.png) [@david-fong](https://discourse.cmake.org/u/david-fong)\
**Post date:** [October 20, 2025, 11:53am UTC](https://discourse.cmake.org/t/is-there-a-provided-abstraction-for-llvm-tools-like-llvm-profdata/15255/1 "2025-10-20T11:53:53Z")

</div>

I know there are some variables like CMAKE\_AR that could be set by a toolchain. Are there any such variables for LLVM tools like llvm-profdata? I’m working on PGO builds and this would be useful for that. I also see that Emscripten getting more “recognition“ by CMake itself as a platform / toolchain. If I have an EMSDK, there’s a ./upstream/bin/llvm-profdata (and a bunch of other things in there) that would be nice if CMake’s platform things or the toolchain script exposed this in a nice way.
