From 64b6c0b950666cb1f5d8f6b219ec7a94e9e38f4a Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 28 Jan 2008 15:12:12 -0500 Subject: [PATCH] ENH: Document PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE target properties and corresponding arguments to INSTALL(TARGETS). --- Source/cmInstallCommand.h | 12 +++++++++++- Source/cmTarget.cxx | 30 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/Source/cmInstallCommand.h b/Source/cmInstallCommand.h index e93c1f7fa..e2d451ee0 100644 --- a/Source/cmInstallCommand.h +++ b/Source/cmInstallCommand.h @@ -99,7 +99,8 @@ public: "\n" "The TARGETS signature:\n" " install(TARGETS targets... [EXPORT ]\n" - " [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE]\n" + " [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|\n" + " PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]\n" " [DESTINATION ]\n" " [PERMISSIONS permissions...]\n" " [CONFIGURATIONS [Debug|Release|...]]\n" @@ -130,6 +131,15 @@ public: "type will be installed (which can be used to install just a DLL or " "just an import library)." "\n" + "The PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE arguments cause " + "subsequent properties to be applied to installing a FRAMEWORK " + "shared library target's associated files on non-Apple platforms. " + "Rules defined by these arguments are ignored on Apple platforms " + "because the associated files are installed into the appropriate " + "locations inside the framework folder. " + "See documentation of the PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE " + "target properties for details." + "\n" "One or more groups of properties may be specified in a single call " "to the TARGETS form of this command. A target may be installed more " "than once to different locations. Consider hypothetical " diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 5e37cede0..a6bf5d220 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -357,6 +357,36 @@ void cmTarget::DefineProperties(cmake *cm) "INSTALL_TARGETS command is used to install the target. Use the " "INSTALL command instead."); + cm->DefineProperty + ("PRIVATE_HEADER", cmProperty::TARGET, + "Specify private header files in a FRAMEWORK shared library target.", + "Shared library targets marked with the FRAMEWORK property generate " + "frameworks on OS X and normal shared libraries on other platforms. " + "This property may be set to a list of header files to be placed " + "in the PrivateHeaders directory inside the framework folder. " + "On non-Apple platforms these headers may be installed using the " + "PRIVATE_HEADER option to the install(TARGETS) command."); + + cm->DefineProperty + ("PUBLIC_HEADER", cmProperty::TARGET, + "Specify public header files in a FRAMEWORK shared library target.", + "Shared library targets marked with the FRAMEWORK property generate " + "frameworks on OS X and normal shared libraries on other platforms. " + "This property may be set to a list of header files to be placed " + "in the Headers directory inside the framework folder. " + "On non-Apple platforms these headers may be installed using the " + "PUBLIC_HEADER option to the install(TARGETS) command."); + + cm->DefineProperty + ("RESOURCE", cmProperty::TARGET, + "Specify resource files in a FRAMEWORK shared library target.", + "Shared library targets marked with the FRAMEWORK property generate " + "frameworks on OS X and normal shared libraries on other platforms. " + "This property may be set to a list of files to be placed " + "in the Resources directory inside the framework folder. " + "On non-Apple platforms these files may be installed using the " + "RESOURCE option to the install(TARGETS) command."); + cm->DefineProperty ("SKIP_BUILD_RPATH", cmProperty::TARGET, "Should rpaths be used for the build tree.",