Commit Graph

90 Commits

Author SHA1 Message Date
Brad King 5594ad4885 ENH: Updated exporting and importing of targets to support libraries and configurations.
- Created cmExportFileGenerator hierarchy to implement export file generation
  - Installed exports use per-config import files loaded by a central one.
  - Include soname of shared libraries in import information
  - Renamed PREFIX to NAMESPACE in INSTALL(EXPORT) and EXPORT() commands
  - Move addition of CMAKE_INSTALL_PREFIX to destinations to install generators
  - Import files compute the installation prefix relative to their location when loaded
  - Add mapping of importer configurations to importee configurations
  - Rename IMPORT targets to IMPORTED targets to distinguish from windows import libraries
  - Scope IMPORTED targets within directories to isolate them
  - Place all properties created by import files in the IMPORTED namespace
  - Document INSTALL(EXPORT) and EXPORT() commands.
  - Document IMPORTED signature of add_executable and add_library
  - Enable finding of imported targets in cmComputeLinkDepends
2008-01-28 08:38:36 -05:00
Ken Martin 0e69d38004 ENH: add return and break support to cmake, also change basic command invocation signature to be able to return extra informaiton via the cmExecutionStatus class 2008-01-23 10:28:26 -05:00
Brad King 60bf0531b0 ENH: Added FILES_MATCHING option to INSTALL(DIRECTORY). This will help install a tree of header files while ignoring non-headers. 2008-01-02 15:17:56 -05:00
Brad King 5e0dadbfb8 BUG: Apply patch from issue #6006. 2007-12-17 15:20:06 -05:00
Brad King 1de1f4bb83 STYLE: Fixed line-too-long. 2007-10-16 10:20:59 -04:00
David Cole c8e832dcf5 BUG: Fix #5868 - add COMPONENT handling to the SCRIPT and CODE signatures of the INSTALL command. 2007-10-15 07:08:15 -04:00
David Cole 8e4c7b99e1 ENH: Finish up the Framework creation code restructuring. Frameworks build and install now. More work needed on the packaging step. See Tests/Framework for example use. 2007-10-10 11:06:15 -04:00
Alexander Neundorf a4fb93599f STYLE: fix line lengths
Alex
2007-08-31 16:52:32 -04:00
Alexander Neundorf 34e3ce9e4e STYLE: rename FILENAME keyword to FILE, because FILENAME is used in no other
place

Alex
2007-08-30 16:22:01 -04:00
Alexander Neundorf 3e12a6cb91 ENH: add install files generators for targets which have PUBLIC_HEADER,
PRIVATE_HEADER or RESOURCE_FILES property, use the destination for the
public headers as include directory property for exported libraries

Alex
2007-08-27 16:04:57 -04:00
Alexander Neundorf 938ed7710a STYLE: fix MSVC warnings by making the cmCommandArgumentsHelper a member of
cmInstallCommandArguments instead of deriving from it

Alex
2007-08-24 14:27:18 -04:00
David Cole 9a4e7ea742 ENH: Add InstallNameFixupPath to support installing built frameworks on the Mac. Change Application to Applications in the BundleTest. Also correct small typo (tcl->Tcl) noted in bug 4572. 2007-08-24 13:30:41 -04:00
Alexander Neundorf d634c4e743 ENH: use cmCommandArgumentHelper for INSTALL(TARGETS, FILES, PROGRAMS,
EXPORTS), saves a lot of code. INSTALL(DIRECTORY) is still done the old way,
since this seems to be quite complicated
-for INSTALL(TARGETS ): also parse PUBLIC_HEADER, PRIVATE_HEADER, RESOURCE

Alex
2007-08-24 08:55:20 -04:00
David Cole ef22ad6bec ENH: Handle FRAMEWORK and BUNDLE arguments in the INSTALL TARGETS command. Work in progress... More to come. 2007-08-22 11:32:48 -04:00
Alexander Neundorf 8046390f1e ENH: if no COMPONENT is specified, make this install item part of the
"Unspecified" component -> if no components are used at all, no change in
behaviour, if components are used completely, no change in behaviour, since
this default will be overridden everywhere, if components where used partly,
it is now possible to install only the unspecified items (e.g. everything
which wasn't marked as "Development")

Alex


Alex
2007-08-01 17:10:22 -04:00
Brad King 7f29f8966d ENH: Further cleanup of installation script generation. The per-component and per-configuration testing is now done in cmake code instead of in the FILE(INSTALL) command. The generation of the cmake code to do these tests is centralized in cmInstallGenerator. Old-style shared library versioning and component/config support code has been removed from FILE(INSTALL). This commit is surrounded by the tags CMake-InstallGeneratorCleanup2-pre and CMake-InstallGeneratorCleanup2-post. 2007-07-02 14:56:57 -04:00
Brad King 53f39ad566 BUG: Do not install the import library for an executable that does not have ENABLE_EXPORTS set. 2007-06-27 16:14:50 -04:00
Alexander Neundorf c0d000d234 ENH: add INSTALL(EXPORT ...) mode and INSTALL( TARGETS ... EXPORT <set> ) ,
tests still have to be added

Alex
2007-06-19 13:10:21 -04:00
Alexander Neundorf 617602e9e9 STYLE: preparations for the INSTALL(EXPORT ...) generator
-move std::string Destination to cmInstallGenerator, since all (except
the script one) have it and add a const accessor so it can be queried
-use temporary variables in cmInstallCommand for the generators so they can be reused easier
-some more const

Alex
2007-06-19 11:11:06 -04:00
Alexander Neundorf 4878c00905 ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates an
"imported" executable target. This can then be used e.g. with
ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for
"imported" targets, and FindTarget() now takes an additional argument bool
useImportedTargets to specify whether you also want to search in the
imported targets or only in the "normal" targets.

Alex
2007-05-22 10:24:59 -04:00
Brad King fc7c433463 ENH: Added support for import libraries created by executable and module targets. The module import libraries should never be used but some windows compilers always create them for .dll files since there is no distinction from shared libraries on that platform. The executable import libraries may be used to create modules that when loaded bind to symbols from the executables. This is an enhancement related to bug#4210 though not requested by it explicitly. 2007-03-19 10:00:36 -04:00
Brad King 934c804ea4 ENH: Added OPTIONAL option to INSTALL command to allow installation of files if they exist while ignoring them otherwise. This addresses bug#2922. 2006-10-05 11:31:57 -04:00
Brad King cff915cb8e STYLE: Fixed line-too-long. 2006-09-08 10:39:51 -04:00
Brad King d458764791 ENH: Patch from Toni Timonen to allow cross-compiling of DLLs. 2006-09-07 10:05:12 -04:00
Brad King 239fce5caa ENH: Do not generate install target unless some INSTALL or INSTALL_* commands have been used. This addresses bug#2827. 2006-08-31 10:47:00 -04:00
Brad King 27a67fb72f ENH: Add support to INSTALL(DIRECTORY) to install an empty directory. This addresses bug#3572. 2006-08-29 15:04:29 -04:00
Brad King c99dcc30be BUG: Directory installation pattern matching should be case insensitive on some platforms. 2006-08-21 17:47:51 -04:00
Brad King bed79f6c6b ENH: Implemented INSTALL(DIRECTORY) command and added a test. Re-organized cmFileCommand's implementation of FILE(INSTALL) a bit to help out. This addresses bug#1694 and partially addresses bug#2691. 2006-08-21 16:55:03 -04:00
Brad King 8a72d43c17 ENH: Started implementing INSTALL(DIRECTORY) command mode. This is not yet finished so it is undocumented and there is no test. These changes also separate the notions of file and directory permissions. 2006-08-17 14:48:54 -04:00
Brad King 50a0f71120 ENH: Added CONFIGURATIONS option to INSTALL command to allow per-configuration install rules. 2006-05-05 14:57:19 -04:00
Brad King d4c5fe840b ENH: Added INSTALL(CODE) mode to allow inline specification of install script code. This reduces the need for configuring an install script that needs some variable settings because the install code can set thing up first. 2006-04-12 22:04:50 -04:00
Brad King 08b14163ee ENH: Added named component installation implementation. Installation behavior should be unchanged unless -DCOMPONENT=<name> is specified when cmake_install.cmake is invoked. 2006-03-30 13:33:48 -05:00
Brad King ca5647c92c 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. 2006-03-24 16:11:24 -05:00
Ken Martin 3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Brad King 06846c4c07 ENH: Added PERMISSIONS option to the TARGETS mode of the INSTALL command. 2006-03-03 19:29:35 -05:00
Brad King a2e136fd17 ENH: Added PERMISSIONS and RENAME options to the INSTALL command's FILES and PROGRAMS mode, and corresponding support to FILE(INSTALL). Default permissions for shared libraries on non-Windows/non-OSX platforms no longer has the execute bit set. 2006-03-03 18:44:32 -05:00
Brad King 518080136d ENH: Implemented FILES and PROGRAMS forms of the INSTALL command as replacements for the INSTALL_FILES and INSTALL_PROGRAMS commands. This addresses the request for absolute path install destinations in bug#2691. 2006-02-19 18:47:13 -05:00
Brad King b6e4bc0521 COMP: Removed unused variables. 2006-02-19 16:35:49 -05:00
Brad King 96f0266228 ENH: Created new install script generation framework. The INSTALL command creates the generators which are later used by cmLocalGenerator to create the cmake_install.cmake files. A new target installation interface is provided by the INSTALL command which fixes several problems with the INSTALL_TARGETS command. See bug#2691. Bugs 1481 and 1695 are addressed by these changes. 2006-02-19 15:25:27 -05:00
Brad King b8a33fb424 ENH: Added INSTALL command as a placeholder for a future generic install specification interface. Currently it supports only a SCRIPT option specifying a script to run during the install stage. 2006-02-10 13:54:36 -05:00