Browse Source

ENH: Document PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE target properties and corresponding arguments to INSTALL(TARGETS).

Brad King 17 years ago
parent
commit
64b6c0b950
2 changed files with 41 additions and 1 deletions
  1. 11 1
      Source/cmInstallCommand.h
  2. 30 0
      Source/cmTarget.cxx

+ 11 - 1
Source/cmInstallCommand.h

@@ -99,7 +99,8 @@ public:
       "\n"
       "The TARGETS signature:\n"
       "  install(TARGETS targets... [EXPORT <export-name>]\n"
-      "          [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE]\n"
+      "          [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|\n"
+      "            PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]\n"
       "           [DESTINATION <dir>]\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 "

+ 30 - 0
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.",