Re: [cmake-developers] find_program() not using PATH on Windows?

2017-04-06 Thread Robert Dailey
Even worse, they seem to acknowledge this problem and created "proxy" macros for the use by the host OS (code at the bottom) Is it just me or is this really nasty? # macro to find packages on the host OS macro( find_host_package ) set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) set(

Re: [cmake-developers] find_program() not using PATH on Windows?

2017-04-06 Thread Brad King
On 04/06/2017 04:32 PM, Robert Dailey wrote: > directories coming from PATH can be "rerooted" like this, it makes > things very confusing... maybe there is a reason for it, but I'd never > want this personally, and I find it concerning that a toolchain file > can break this for the whole project.

Re: [cmake-developers] find_program() not using PATH on Windows?

2017-04-06 Thread Robert Dailey
Looking further: in cmFindCommon::RerootPaths(), the passed in paths look correct as far as what PATH shows, and then when this line of code happens: const char* rootPath = this->Makefile->GetDefinition("CMAKE_FIND_ROOT_PATH"); it returns a "root path" of:

Re: [cmake-developers] find_program() not using PATH on Windows?

2017-04-06 Thread Robert Dailey
Brad, I debugged the issue and so far I'm seeing very weird behavior in the cmFindCommon::SearchPaths vector when used from cmFindProgramCommand. It goes into FindNormalProgramDirsPerName(), where the wrong "prefix" to each path in PATH environment variable is used. Looks like the NDK toolchain