CMake find_program script
CMake
find_program
does not generally consider NAMES
parameter to have file suffixes unless manually specified.
For Windows, .com and .exe file suffixes are considered, with search order:
- .com
- .exe
- no suffix
If on Windows and an executable “hello.exe” or “hello.com” exists, then CMake will find it. CMake would NOT find “hello.exe” on non-Windows platforms, where no file suffix is expected.
The full path to executables on the system Path (and cwd on Windows) are found by find_program().
Shell aliases
are not found since the shell is not invoked.
Instead specify find_program(... HINTS /path/to/exe)
.
NOTE: CMAKE_EXECUTABLE_SUFFIX ONLY affects find_program() in CMake role PROJECT
find_program(v NAMES hello)
Shell scripts of any file suffix on any operating system are found iff:
- (non-Windows) script file executable flag is set (find_program general requirement)
- script file suffix is specified as part of find_program(… NAMES) parameter
A complete standalone example: