diff options
author | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-10-11 15:16:57 +0900 |
---|---|---|
committer | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-10-11 15:16:57 +0900 |
commit | 915c76ded744c0f5f151402b9fa69f3fd8452573 (patch) | |
tree | ca6a387466543248890f346847acaa8343989b22 /Source/cmIncludeDirectoryCommand.cxx | |
parent | 317dbdb79761ef65e45c7358cfc7571c6afa54ad (diff) | |
download | cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.tar.gz cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.tar.bz2 cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.zip |
Imported Upstream version 3.9.4upstream/3.9.4
Diffstat (limited to 'Source/cmIncludeDirectoryCommand.cxx')
-rw-r--r-- | Source/cmIncludeDirectoryCommand.cxx | 132 |
1 files changed, 52 insertions, 80 deletions
diff --git a/Source/cmIncludeDirectoryCommand.cxx b/Source/cmIncludeDirectoryCommand.cxx index 30c174375..b81f7cb2d 100644 --- a/Source/cmIncludeDirectoryCommand.cxx +++ b/Source/cmIncludeDirectoryCommand.cxx @@ -1,83 +1,65 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmIncludeDirectoryCommand.h" - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. +#include <algorithm> +#include <set> - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ -#include "cmIncludeDirectoryCommand.h" +#include "cmMakefile.h" +#include "cmSystemTools.h" + +class cmExecutionStatus; // cmIncludeDirectoryCommand -bool cmIncludeDirectoryCommand -::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &) +bool cmIncludeDirectoryCommand::InitialPass( + std::vector<std::string> const& args, cmExecutionStatus&) { - if(args.size() < 1 ) - { + if (args.empty()) { return true; - } + } std::vector<std::string>::const_iterator i = args.begin(); bool before = this->Makefile->IsOn("CMAKE_INCLUDE_DIRECTORIES_BEFORE"); bool system = false; - if ((*i) == "BEFORE") - { + if ((*i) == "BEFORE") { before = true; ++i; - } - else if ((*i) == "AFTER") - { + } else if ((*i) == "AFTER") { before = false; ++i; - } + } std::vector<std::string> beforeIncludes; std::vector<std::string> afterIncludes; - std::set<cmStdString> systemIncludes; + std::set<std::string> systemIncludes; - for(; i != args.end(); ++i) - { - if(*i == "SYSTEM") - { + for (; i != args.end(); ++i) { + if (*i == "SYSTEM") { system = true; continue; - } - if(i->size() == 0) - { + } + if (i->empty()) { this->SetError("given empty-string as include directory."); return false; - } + } std::vector<std::string> includes; - GetIncludes(*i, includes); + this->GetIncludes(*i, includes); - if (before) - { - beforeIncludes.insert(beforeIncludes.end(), - includes.begin(), + if (before) { + beforeIncludes.insert(beforeIncludes.end(), includes.begin(), includes.end()); - } - else - { - afterIncludes.insert(afterIncludes.end(), - includes.begin(), + } else { + afterIncludes.insert(afterIncludes.end(), includes.begin(), includes.end()); - } - if (system) - { - for (std::vector<std::string>::const_iterator li = includes.begin(); - li != includes.end(); ++li) - { - systemIncludes.insert(*li); - } - } } + if (system) { + systemIncludes.insert(includes.begin(), includes.end()); + } + } std::reverse(beforeIncludes.begin(), beforeIncludes.end()); this->Makefile->AddIncludeDirectories(afterIncludes); @@ -87,7 +69,7 @@ bool cmIncludeDirectoryCommand return true; } -static bool StartsWithGeneratorExpression(const std::string &input) +static bool StartsWithGeneratorExpression(const std::string& input) { return input[0] == '$' && input[1] == '<'; } @@ -104,60 +86,50 @@ static bool StartsWithGeneratorExpression(const std::string &input) // output from a program and passing it into a command the cleanup doesn't // always happen // -void cmIncludeDirectoryCommand::GetIncludes(const std::string &arg, - std::vector<std::string> &incs) +void cmIncludeDirectoryCommand::GetIncludes(const std::string& arg, + std::vector<std::string>& incs) { // break apart any line feed arguments std::string::size_type pos = 0; std::string::size_type lastPos = 0; - while((pos = arg.find('\n', lastPos)) != std::string::npos) - { - if (pos) - { - std::string inc = arg.substr(lastPos,pos); + while ((pos = arg.find('\n', lastPos)) != std::string::npos) { + if (pos) { + std::string inc = arg.substr(lastPos, pos); this->NormalizeInclude(inc); - if (!inc.empty()) - { + if (!inc.empty()) { incs.push_back(inc); - } } - lastPos = pos + 1; } + lastPos = pos + 1; + } std::string inc = arg.substr(lastPos); this->NormalizeInclude(inc); - if (!inc.empty()) - { + if (!inc.empty()) { incs.push_back(inc); - } + } } -void cmIncludeDirectoryCommand::NormalizeInclude(std::string &inc) +void cmIncludeDirectoryCommand::NormalizeInclude(std::string& inc) { std::string::size_type b = inc.find_first_not_of(" \r"); std::string::size_type e = inc.find_last_not_of(" \r"); - if ((b!=inc.npos) && (e!=inc.npos)) - { - inc.assign(inc, b, 1+e-b); // copy the remaining substring - } - else - { + if ((b != std::string::npos) && (e != std::string::npos)) { + inc.assign(inc, b, 1 + e - b); // copy the remaining substring + } else { inc = ""; return; - } + } - if (!cmSystemTools::IsOff(inc.c_str())) - { + if (!cmSystemTools::IsOff(inc.c_str())) { cmSystemTools::ConvertToUnixSlashes(inc); - if(!cmSystemTools::FileIsFullPath(inc.c_str())) - { - if(!StartsWithGeneratorExpression(inc)) - { - std::string tmp = this->Makefile->GetStartDirectory(); + if (!cmSystemTools::FileIsFullPath(inc.c_str())) { + if (!StartsWithGeneratorExpression(inc)) { + std::string tmp = this->Makefile->GetCurrentSourceDirectory(); tmp += "/"; tmp += inc; inc = tmp; - } } } + } } |