From 7f2e7443bfb6ad7c1148d0ac4f370b251d663fb3 Mon Sep 17 00:00:00 2001 From: Ken Martin Date: Fri, 1 Jul 2005 10:57:39 -0400 Subject: ENH: added Alexander's target property TYPE --- Source/cmGetTargetPropertyCommand.h | 4 ++++ Source/cmTarget.cxx | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) 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::const_iterator i = m_Properties.find(prop); if (i != m_Properties.end()) -- cgit v0.12