summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2005-07-01 14:57:39 (GMT)
committerKen Martin <ken.martin@kitware.com>2005-07-01 14:57:39 (GMT)
commit7f2e7443bfb6ad7c1148d0ac4f370b251d663fb3 (patch)
tree7ae9592d8ac325d54ea13d73e48750e8cbd15e28 /Source
parentd5814719d60ba3b97fa1189de49fd16f405c6ae0 (diff)
downloadCMake-7f2e7443bfb6ad7c1148d0ac4f370b251d663fb3.zip
CMake-7f2e7443bfb6ad7c1148d0ac4f370b251d663fb3.tar.gz
CMake-7f2e7443bfb6ad7c1148d0ac4f370b251d663fb3.tar.bz2
ENH: added Alexander's target property TYPE
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGetTargetPropertyCommand.h4
-rw-r--r--Source/cmTarget.cxx30
2 files changed, 34 insertions, 0 deletions
diff --git a/Source/cmGetTargetPropertyCommand.h b/Source/cmGetTargetPropertyCommand.h
index 8e455c3..b7ef94c 100644
--- a/Source/cmGetTargetPropertyCommand.h
+++ b/Source/cmGetTargetPropertyCommand.h
@@ -61,6 +61,10 @@ public:
"the full path to the file on disk that will be created for the "
"target. This is very useful for executable targets to get "
"the path to the executable file for use in a custom command. "
+ "the path to the executable file for use in a custom command.\n"
+ "The read-only property \"TYPE\" returns which type the specified "
+ "target has (EXECUTABLE, STATIC_LIBRARY, SHARED_LIBRARY, "
+ "MODULE_LIBRARY, UTILITY, INSTALL_FILES or INSTALL_PROGRAMS)."
"This command can get properties for any target so far created. "
"The targets do not need to be in the current CMakeLists.txt file.";
}
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index a3fb589..4bcfda9 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -743,6 +743,36 @@ const char *cmTarget::GetProperty(const char* prop)
this->UpdateLocation();
}
+ // the type property returns what type the target is
+ if (!strcmp(prop,"TYPE"))
+ {
+ switch( this->GetType() )
+ {
+ case cmTarget::STATIC_LIBRARY:
+ return "STATIC_LIBRARY";
+ break;
+ case cmTarget::MODULE_LIBRARY:
+ return "MODULE_LIBRARY";
+ break;
+ case cmTarget::SHARED_LIBRARY:
+ return "SHARED_LIBRARY";
+ break;
+ case cmTarget::EXECUTABLE:
+ return "EXECUTABLE";
+ break;
+ case cmTarget::UTILITY:
+ return "UTILITY";
+ break;
+ case cmTarget::INSTALL_FILES:
+ return "INSTALL_FILES";
+ break;
+ case cmTarget::INSTALL_PROGRAMS:
+ return "INSTALL_PROGRAMS";
+ break;
+ }
+ return 0;
+ }
+
std::map<cmStdString,cmStdString>::const_iterator i =
m_Properties.find(prop);
if (i != m_Properties.end())