diff options
author | Brad King <brad.king@kitware.com> | 2008-04-08 04:06:47 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-04-08 04:06:47 (GMT) |
commit | 67834f2d535b46655074932371d9e4f2f024c44c (patch) | |
tree | 2a688fad6dd6a2043af7109433b5a1c2a91bd7f0 /Source/cmTarget.h | |
parent | 5c3a5daaf1f0ccaa447ad3856f2ee8445d3df325 (diff) | |
download | CMake-67834f2d535b46655074932371d9e4f2f024c44c.zip CMake-67834f2d535b46655074932371d9e4f2f024c44c.tar.gz CMake-67834f2d535b46655074932371d9e4f2f024c44c.tar.bz2 |
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.h | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 658ea98..f7a21db 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; |