EC1370

Synopsis

WARNING EC1370: Output target "target" is not in a directory contained within any eMake root. The target’s parent directory or any higher-level directory must be included under the eMake root set of directories (specified by --emake-root or the EMAKE_ROOT environment variable).

Description

An output target from the build has been found for which the directory is not contained within any of the eMake root set of directories. The target’s parent directory or any higher-level directory must be included within the eMake root. The eMake root can be set either with the --emake-root option or the EMAKE_ROOT environment variable. All directories accessed or created during the build must be included within the eMake root. This value can be found in the annotation file (emake.xml by default) in the "EmakeRoots" property.

Reasons

The --emake-root option or EMAKE_ROOT environment variable specifies the location of the EFS root directories. All files under the eMake root directories are mirrored automatically on each agent. If an output target is not in your eMake root, other agents will not be able to see the output and this could result in build failures that are sometimes hard to diagnose.

Fixes

Add the target’s parent directory or any higher-level directory which includes that directory to the eMake root option or environment variable. For example, for a target /home/alice/project/out/abc.o, you could add /home/alice/project/out, or /home/alice/project, or /home/alice, or /home to eMake root. The best solution for your build depends on factors such as what other locations are already included in eMake root.