From: Timo Mueller <[email protected]> Adding new environment variables to the list of variables that contribute to the the CMAKE_FIND_ROOT_PATH involved manually appending to the value string and also adding a whitespace to separate values.
The construction of the CMAKE_FIND_ROOT_PATH value is extracted to a separate method, which expects a list of environment variables. Adding or removing environment variables that contribute to the path is now achieved by modifying the entries of the list. Signed-off-by: Timo Mueller <[email protected]> --- .../YoctoCMakeMakefileGenerator.java | 35 ++++++++++++++-------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/YoctoCMakeMakefileGenerator.java b/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/YoctoCMakeMakefileGenerator.java index b77ae9e..4119aaf 100644 --- a/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/YoctoCMakeMakefileGenerator.java +++ b/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/YoctoCMakeMakefileGenerator.java @@ -12,6 +12,8 @@ package org.yocto.cmake.managedbuilder; import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.util.Arrays; +import java.util.List; import org.eclipse.cdt.managedbuilder.core.IBuilder; import org.eclipse.cdt.managedbuilder.core.IConfiguration; @@ -226,18 +228,13 @@ public class YoctoCMakeMakefileGenerator implements IManagedBuilderMakefileGener toolchainCMakeFileContentAsString += "# only search in the paths provided so cmake doesnt pick\n"; //$NON-NLS-1$ toolchainCMakeFileContentAsString += "# up libraries and tools from the native build machine\n"; //$NON-NLS-1$ - String findRootPathValue = YoctoSDKUtils.getEnvValue(project, "STAGING_DIR_HOST"); //$NON-NLS-1$ - findRootPathValue += " "; //$NON-NLS-1$ - findRootPathValue += YoctoSDKUtils.getEnvValue(project, "STAGING_DIR_NATIVE"); //$NON-NLS-1$ - findRootPathValue += " "; //$NON-NLS-1$ - findRootPathValue += YoctoSDKUtils.getEnvValue(project, "CROSS_DIR"); //$NON-NLS-1$ - findRootPathValue += " "; //$NON-NLS-1$ - findRootPathValue += YoctoSDKUtils.getEnvValue(project, "OECMAKE_PERLNATIVE_DIR"); //$NON-NLS-1$ - findRootPathValue += " "; //$NON-NLS-1$ - findRootPathValue += YoctoSDKUtils.getEnvValue(project, "OECMAKE_EXTRA_ROOT_PATH"); //$NON-NLS-1$ - findRootPathValue += " "; //$NON-NLS-1$ - findRootPathValue += YoctoSDKUtils.getEnvValue(project, "EXTERNAL_TOOLCHAIN"); //$NON-NLS-1$ - toolchainCMakeFileContentAsString += createCMakeSetStatement("CMAKE_FIND_ROOT_PATH", findRootPathValue, null); //$NON-NLS-1$ + List<String> findRootPathValues = Arrays.asList("STAGING_DIR_HOST", //$NON-NLS-1$ + "STAGING_DIR_NATIVE", //$NON-NLS-1$ + "CROSS_DIR", //$NON-NLS-1$ + "OECMAKE_PERLNATIVE_DIR", //$NON-NLS-1$ + "OECMAKE_EXTRA_ROOT_PATH", //$NON-NLS-1$ + "EXTERNAL_TOOLCHAIN"); //$NON-NLS-1$ + toolchainCMakeFileContentAsString += createCMakeSetStatement("CMAKE_FIND_ROOT_PATH", getFindRootPath(findRootPathValues), null); //$NON-NLS-1$ toolchainCMakeFileContentAsString += createCMakeSetStatement("CMAKE_FIND_ROOT_PATH_MODE_PROGRAM", "ONLY", null); //$NON-NLS-1$ //$NON-NLS-2$ toolchainCMakeFileContentAsString += createCMakeSetStatement("CMAKE_FIND_ROOT_PATH_MODE_LIBRARY", "ONLY", null); //$NON-NLS-1$ //$NON-NLS-2$ @@ -278,4 +275,18 @@ public class YoctoCMakeMakefileGenerator implements IManagedBuilderMakefileGener e.printStackTrace(); } } + + private String getFindRootPath(List<String> values) { + String findRootPath = ""; + + for (String value : values) { + String pathValue = YoctoSDKUtils.getEnvValue(project, value); + + if (pathValue.length() > 0) { + findRootPath += pathValue + " "; + } + } + + return findRootPath; + } } -- 1.9.0 -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
