summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-03-22 13:45:25 (GMT)
committerBrad King <brad.king@kitware.com>2007-03-22 13:45:25 (GMT)
commit5a32aa5919bd9dab272748c0e0ea12fbcd36436b (patch)
treeb4b0d2c70b896a8c95c91c88112ec2b3bb9d987d /Source/cmTarget.cxx
parent187816c9371e49769c02481ea46491b2d7e22d66 (diff)
downloadCMake-5a32aa5919bd9dab272748c0e0ea12fbcd36436b.zip
CMake-5a32aa5919bd9dab272748c0e0ea12fbcd36436b.tar.gz
CMake-5a32aa5919bd9dab272748c0e0ea12fbcd36436b.tar.bz2
ENH: Added target property ENABLE_EXPORTS for executable targets. It enables the executables for linking by loadable modules that import symbols from the executable. This finishes the executable import library support mentioned in bug #4210.
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r--Source/cmTarget.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index ef4a07e..441269c 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -259,6 +259,23 @@ void cmTarget::DefineProperties(cmake *cm)
"how the executable will be linked.");
cm->DefineProperty
+ ("ENABLE_EXPORTS", cmProperty::TARGET,
+ "Specify whether an executable exports symbols for loadable modules.",
+ "Normally an executable does not export any symbols because it is "
+ "the final program. It is possible for an executable to export "
+ "symbols to be used by loadable modules. When this property is "
+ "set to true CMake will allow other targets to \"link\" to the "
+ "executable with the TARGET_LINK_LIBRARIES command. "
+ "On all platforms a target-level dependency on the executable is "
+ "created for targets that link to it. "
+ "For non-DLL platforms the link rule is simply ignored since "
+ "the dynamic loader will automatically bind symbols when the "
+ "module is loaded. "
+ "For DLL platforms an import library will be created for the "
+ "exported symbols and then used for linking. "
+ "All Windows-based systems including Cygwin are DLL platforms.");
+
+ cm->DefineProperty
("OBJECT_FILES", cmProperty::TARGET,
"Used to get the resulting list of object files that make up a "
"target.",