summaryrefslogtreecommitdiffstats
path: root/Source/cmAddExecutableCommand.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-01-25 18:39:26 (GMT)
committerBrad King <brad.king@kitware.com>2012-01-25 19:42:31 (GMT)
commitca39c5cdd1ca28516791e00f213d6dee2179c6df (patch)
treecf36435b8b38cf4c830390c73c263f870551e408 /Source/cmAddExecutableCommand.cxx
parent731f996ce070bbba1b4913050497afa95436f2d2 (diff)
downloadCMake-ca39c5cdd1ca28516791e00f213d6dee2179c6df.zip
CMake-ca39c5cdd1ca28516791e00f213d6dee2179c6df.tar.gz
CMake-ca39c5cdd1ca28516791e00f213d6dee2179c6df.tar.bz2
Optionally allow IMPORTED targets to be globally visible
Consider the case motivating commit e01cce28 (Allow add_dependencies() on imported targets, 2010-11-19). An imported target references a file generated at build time by a custom target on which it depends. Had the file been built directly using add_library or add_executable its target name would have been visible globally. Therefore the imported target representing the file should be globally visible also. Teach the IMPORTED signature of add_(executable|library) to accept a new "GLOBAL" option to make the imported target visible globally.
Diffstat (limited to 'Source/cmAddExecutableCommand.cxx')
-rw-r--r--Source/cmAddExecutableCommand.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/cmAddExecutableCommand.cxx b/Source/cmAddExecutableCommand.cxx
index bac2430..6dd8e5c 100644
--- a/Source/cmAddExecutableCommand.cxx
+++ b/Source/cmAddExecutableCommand.cxx
@@ -29,6 +29,7 @@ bool cmAddExecutableCommand
bool use_macbundle = false;
bool excludeFromAll = false;
bool importTarget = false;
+ bool importGlobal = false;
while ( s != args.end() )
{
if (*s == "WIN32")
@@ -51,6 +52,11 @@ bool cmAddExecutableCommand
++s;
importTarget = true;
}
+ else if(importTarget && *s == "GLOBAL")
+ {
+ ++s;
+ importGlobal = true;
+ }
else
{
break;
@@ -92,7 +98,8 @@ bool cmAddExecutableCommand
}
// Create the imported target.
- this->Makefile->AddImportedTarget(exename.c_str(), cmTarget::EXECUTABLE);
+ this->Makefile->AddImportedTarget(exename.c_str(), cmTarget::EXECUTABLE,
+ importGlobal);
return true;
}