summaryrefslogtreecommitdiffstats
path: root/Source/cmExportInstallFileGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* install: Allow absolute EXPORT destination with relative targets (#15258)Brad King2014-12-151-4/+0
| | | | | | | | | | | | | | | | | When install(EXPORT) is given an absolute destination we cannot compute the install prefix relative to the installed export file location. Previously we disallowed installation of targets in such exports with a relative destination, but did not enforce this for target property values besides the location of the main target file. This could lead to broken installations when the EXPORT is installed to an absolute path but usage requirements are specified relative to the install prefix. Since an EXPORT installed to an absolute destination cannot be relocated we can just hard-code the value of CMAKE_INSTALL_PREFIX as the base for relative paths. This will allow absolute install(EXPORT) destinations to work with relative destinations for targets and usage requirements. Extend the ExportImport test with a case covering this behavior.
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-3/+3
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-2/+2
| | | | | | | | | | | Casts from std::string -> cmStdString were high on the list of things taking up time. Avoid such implicit casts across function calls by just using std::string everywhere. The comment that the symbol name is too long is no longer relevant since modern debuggers alias the templates anyways and the size is a non-issue since the underlying methods are generated since it's inherited.
* OS X: Add support for @rpath in export files.Clinton Stimpson2013-06-031-0/+2
| | | | | Also expand the IMPORTED_SONAME property for targets to match the install_name.
* Remove unused forward declarations.Stephen Kelly2013-02-091-3/+0
|
* Add the INSTALL_PREFIX genex.Stephen Kelly2013-01-271-0/+2
|
* Move the exported check for dependencies of targetsStephen Kelly2013-01-151-2/+4
| | | | | Check only once, in the Config.cmake file, instead of once in each Config-<cfg>.cmake file.
* exports: move the handling of missing targets into subclassesAlex Neundorf2012-09-301-3/+13
| | | | | | | | | | Before, cmExportFileGenerator::ComplainAboutMissingTarget() was a virtual function which had to be implemented in the subclasses. It is not anymore. Instead, there is now a virtual function HandleMissingTargets(), which is implemented in the two subclasses. This makes e.g. dealing correctly with APPEND mode easier. Alex
* exports: accept a missing target if it is exported exactly onceAlex Neundorf2012-09-281-1/+2
| | | | | | | | | | | If a target is exported, and a library it depends on is not part of the same export set, before this patch cmake errored out. With this patch, it now checks whether the missing target is exported somewhere else exactly once, and accepts in this case (because then it can determine the namespace for the missing target and use this). Alex
* exports: Hold an ExportSet pointer in cm*Export*GeneratorYury G. Kudryashov2012-09-281-12/+1
| | | | Get name from this->ExportSet.
* exports: Create class cmExportSetYury G. Kudryashov2012-09-281-2/+3
| | | | | Replace direct use of 'std::vector<cmTargetExport const*>' with a dedicated class.
* exports: Move cmTargetExport to a dedicated header fileYury G. Kudryashov2012-09-281-30/+0
|
* install(EXPORT): Enforce existence of imported target filesAlex Neundorf2011-11-221-1/+3
| | | | | | | | | | Typical <package>Config.cmake files for find_package() rely only on the files generated by install(EXPORT). They might be wrong, for whatever reasons, like people manually deleted files, projects were packaged wrong by distributions, whatever. To protect against this, add checks that the file locations we are importing actually exist on disk. Alex
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* ENH: Refactor computation of import file globBrad King2009-01-071-0/+4
| | | | | | New method cmExportInstallFileGenerator::GetConfigImportFileGlob computes the globbing expression that an installed export file uses to load its per-configuration support files.
* ENH: Pass dependent library search path to linker on some platforms.Brad King2008-02-011-1/+2
| | | | | | | | | | | | | | | | - Move runtime path ordering out of cmComputeLinkInformation into its own class cmOrderRuntimeDirectories. - Create an instance of cmOrderRuntimeDirectories for runtime path ordering and another instance for dependent library path ordering. - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean. - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean. - Create variables to specify -rpath-link flags: CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG - Enable -rpath-link flag on Linux and QNX. - Documentation and error message updates
* ENH: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-0/+122
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