summaryrefslogtreecommitdiff
path: root/Source/cmTarget.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-04-08 00:06:47 -0400
committerBrad King <brad.king@kitware.com>2008-04-08 00:06:47 -0400
commit67834f2d535b46655074932371d9e4f2f024c44c (patch)
tree2a688fad6dd6a2043af7109433b5a1c2a91bd7f0 /Source/cmTarget.h
parent5c3a5daaf1f0ccaa447ad3856f2ee8445d3df325 (diff)
downloadcmake-67834f2d535b46655074932371d9e4f2f024c44c.tar.gz
BUG: Correct Mac OS X framework behavior
- Place the built library in foo.framework/Versions/A/foo - Do not create unused content symlinks (like PrivateHeaders) - Do not use VERSION/SOVERSION properties for frameworks - Make cmTarget::GetDirectory return by value - Remove the foo.framework part from cmTarget::GetDirectory - Correct install_name construction and conversion on install - Fix MACOSX_PACKAGE_LOCATION under Xcode to use the Versions/<version> directory for frameworks - Update the Framework test to try these things
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r--Source/cmTarget.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 658ea98f90..f7a21db932 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -253,7 +253,7 @@ public:
configuration name is given then the generator will add its
subdirectory for that configuration. Otherwise just the canonical
output directory is given. */
- const char* GetDirectory(const char* config = 0, bool implib = false);
+ std::string GetDirectory(const char* config = 0, bool implib = false);
/** Get the location of the target in the build tree for the given
configuration. This location is suitable for use as the LOCATION
@@ -348,8 +348,10 @@ public:
/** Return true if builtin chrpath will work for this target */
bool IsChrpathUsed();
- std::string GetInstallNameDirForBuildTree(const char* config);
- std::string GetInstallNameDirForInstallTree(const char* config);
+ std::string GetInstallNameDirForBuildTree(const char* config,
+ bool for_xcode = false);
+ std::string GetInstallNameDirForInstallTree(const char* config,
+ bool for_xcode = false);
cmComputeLinkInformation* GetLinkInformation(const char* config);
@@ -384,6 +386,10 @@ public:
/** Return whether this target is an executable Bundle on Apple. */
bool IsAppBundleOnApple();
+ /** Return the framework version string. Undefined if
+ IsFrameworkOnApple returns false. */
+ std::string GetFrameworkVersion();
+
/** Get a backtrace from the creation of the target. */
cmListFileBacktrace const& GetBacktrace() const;
@@ -464,16 +470,14 @@ private:
void SetPropertyDefault(const char* property, const char* default_value);
// Get the full path to the target output directory.
- const char* GetOutputDir(bool implib);
+ std::string GetOutputDir(bool implib);
+ std::string const& cmTarget::ComputeBaseOutputDir(bool implib);
const char* ImportedGetLocation(const char* config);
const char* NormalGetLocation(const char* config);
std::string GetFullNameImported(const char* config, bool implib);
- const char* ImportedGetDirectory(const char* config, bool implib);
- const char* NormalGetDirectory(const char* config, bool implib);
-
std::string ImportedGetFullPath(const char* config, bool implib);
std::string NormalGetFullPath(const char* config, bool implib,
bool realname);
@@ -500,9 +504,8 @@ private:
bool HaveInstallRule;
std::string InstallPath;
std::string RuntimeInstallPath;
- std::string OutputDir;
- std::string OutputDirImplib;
- std::string Directory;
+ std::string BaseOutputDir;
+ std::string BaseOutputDirImplib;
std::string Location;
std::string ExportMacro;
std::set<cmStdString> Utilities;