explicitly set NO_CMAKE_FIND_ROOT_PATH

Authored by sitter on Mar 28 2017, 12:51 PM.

Description

explicitly set NO_CMAKE_FIND_ROOT_PATH

Summary:
When using a toolchain file one often would want to set a
CMAKE_FIND_ROOT_PATH to "re-root" lookups into a staging area to prevent
native host artifcats from being found. This in particular is usually the
case for lib/include/package finders as one would want the target
systems build artifacts rather than the hosts.
find_file() unfortunately draws its re-rooting rule from
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE, which as mentioned would usually be
set not to look in the actual host paths to avoid picking up wrong includes
which would also prevent find_file to work here.

In the case of the coreaddonstooling it makes sense to look in the host
though. For one the lookup only runs when CROSS_COMPILING is set (which
usually is the case for toolchains), AND one explicitly has to specify a
HOST_TOOLING path. So in a way by specifying that one is already opting
out of whatever rooting rules one has set elsewhere as setting that var
is a clear indication that we have *specific* host tooling and we want
to use that rather than anything else.
As a result NO_CMAKE_FIND_ROOT_PATH is the way to go when looking for stuff
under a KF5_HOST_TOOLING conditional.

Reviewers: mdawson, apol

Reviewed By: apol

Subscribers: Frameworks

Tags: Frameworks

Differential Revision: https://phabricator.kde.org/D5218

Details

Committed
sitterMar 29 2017, 3:10 PM
Reviewer
apol
Differential Revision
D5218: explicitly set NO_CMAKE_FIND_ROOT_PATH
Parents
R237:e1fd748982dc: Remove unused QDateTime in KConfigBackend.
Branches
Unknown
Tags
Unknown