With similar reasoning to the parent commit, as downstreams, we can't determine what $<CONFIG> generator expressions would be appropriate. Upstream would have populated the INTERFACE_INCLUDE_DIRECTORIES with config-specific generator expressions, possibly appropriate for their DEBUG_CONFIGURATIONS. In theory, if we would add include directories for a DEBUG intent, we would have to match the upstream configurations for that. Rather than attempting to discover the appropriate configurations at this time, simplify the feature instead. The use of IMPORTED targets with these commands could still be added in the future if targets would export their DEBUG_CONFIGURATIONS somehow.
73 lines
2.6 KiB
C++
73 lines
2.6 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2013 Stephen Kelly <steveire@gmail.com>
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
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 "cmTargetIncludeDirectoriesCommand.h"
|
|
|
|
#include "cmMakefileIncludeDirectoriesEntry.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
bool cmTargetIncludeDirectoriesCommand
|
|
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
|
|
{
|
|
return this->HandleArguments(args, "INCLUDE_DIRECTORIES", PROCESS_BEFORE);
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
void cmTargetIncludeDirectoriesCommand
|
|
::HandleImportedTarget(const std::string &tgt)
|
|
{
|
|
cmOStringStream e;
|
|
e << "Cannot specify include directories for imported target \""
|
|
<< tgt << "\".";
|
|
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
void cmTargetIncludeDirectoriesCommand
|
|
::HandleMissingTarget(const std::string &name)
|
|
{
|
|
cmOStringStream e;
|
|
e << "Cannot specify include directories for target \"" << name << "\" "
|
|
"which is not built by this project.";
|
|
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
bool cmTargetIncludeDirectoriesCommand
|
|
::HandleNonTargetArg(std::string &content,
|
|
const std::string &sep,
|
|
const std::string &entry,
|
|
const std::string &tgt)
|
|
{
|
|
if (!cmSystemTools::FileIsFullPath(entry.c_str()))
|
|
{
|
|
cmOStringStream e;
|
|
e << "Cannot specify relative include directory \"" << entry << "\" for "
|
|
"target \"" << tgt << "\". Only absolute paths are permitted";
|
|
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
|
|
return false;
|
|
}
|
|
|
|
content += sep + entry;
|
|
return true;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
void cmTargetIncludeDirectoriesCommand
|
|
::HandleDirectContent(cmTarget *tgt, const std::string &content,
|
|
bool prepend)
|
|
{
|
|
cmListFileBacktrace lfbt;
|
|
this->Makefile->GetBacktrace(lfbt);
|
|
cmMakefileIncludeDirectoriesEntry entry(content, lfbt);
|
|
tgt->InsertInclude(entry, prepend);
|
|
}
|