ENH: Added ARCHIVE option to the TARGETS mode of the INSTALL command. It is a third option added to RUNTIME and LIBRARY property types. Static libraries and import libraries are now treated as ARCHIVE targets instead of LIBRARY targets. This adds a level of granularity necessary for upcoming features. Also updated the CVS CMake patch level set in CMake_VERSION_PATCH from 4 to 5 to allow users of this version to know whether this incompatible change is present.

This commit is contained in:
Brad King
2006-03-24 16:11:24 -05:00
parent a18297e2ca
commit ca5647c92c
5 changed files with 126 additions and 39 deletions
+22 -16
View File
@@ -88,22 +88,26 @@ public:
"when a single file is installed by the command. "
"\n"
"The TARGETS signature:\n"
" INSTALL(TARGETS targets... [[LIBRARY|RUNTIME]\n"
" INSTALL(TARGETS targets... [[ARCHIVE|LIBRARY|RUNTIME]\n"
" [DESTINATION <dir>]\n"
" [PERMISSIONS permissions...]\n"
" ] [...])\n"
"The TARGETS form specifies rules for installing targets from a "
"project. There are two kinds of target files that may be "
"installed: library and runtime. Static libraries and modules "
"are always treated as library targets. Executables are always "
"treated as runtime targets. For non-DLL platforms, shared libraries "
"are treated as library targets. For DLL platforms, the DLL part of "
"a shared library is treated as a runtime target and the corresponding "
"import library is treated as a library target. All Windows-based "
"systems including Cygwin are DLL platforms. The LIBRARY and RUNTIME "
"arguments change the type of target to which the following properties "
"apply. If neither is given the installation properties apply to "
"both target types. If only one is given then only targets of that "
"project. There are three kinds of target files that may be "
"installed: archive, library, and runtime. "
"Executables are always treated as runtime targets. "
"Static libraries are always treated as archive targets. "
"Module libraries are always treated as library targets. "
"For non-DLL platforms shared libraries are treated as library targets. "
"For DLL platforms the DLL part of a shared library is treated as "
"a runtime target and the corresponding import library is treated as "
"an archive target. "
"All Windows-based systems including Cygwin are DLL platforms. "
"The ARCHIVE, LIBRARY, and RUNTIME "
"arguments change the type of target to which the subsequent properties "
"apply. If none is given the installation properties apply to "
"all target types. If only one is given then only targets of that "
"type will be installed (which can be used to install just a DLL or "
"just an import library)."
"\n"
@@ -113,14 +117,16 @@ public:
"targets \"myExe\", \"mySharedLib\", and \"myStaticLib\". The code\n"
" INSTALL(TARGETS myExe mySharedLib myStaticLib\n"
" RUNTIME DESTINATION bin\n"
" LIBRARY DESTINATION lib)\n"
" LIBRARY DESTINATION lib\n"
" ARCHIVE DESTINATION lib/static)\n"
" INSTALL(TARGETS mySharedLib DESTINATION /some/full/path)\n"
"will install myExe to <prefix>/bin and myStaticLib to <prefix>/lib. "
"will install myExe to <prefix>/bin and myStaticLib to "
"<prefix>/lib/static. "
"On non-DLL platforms mySharedLib will be installed to <prefix>/lib and "
"/some/full/path. On DLL platforms the mySharedLib DLL will be "
"installed to <prefix>/bin and /some/full/path and its import library "
"will be installed to <prefix>/lib and /some/full/path. On non-DLL "
"platforms mySharedLib will be installed to <prefix>/lib and "
"will be installed to <prefix>/lib/static and /some/full/path. "
"On non-DLL platforms mySharedLib will be installed to <prefix>/lib and "
"/some/full/path."
"\n"
"The FILES signature:\n"