summaryrefslogtreecommitdiffstats
path: root/Source/cmInstallExportGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* Add support for creating prebuilt Android.mk filesBill Hoffman2016-09-131-1/+2
| | | | | | | | | | | Add options to the `install()` and `export()` commands to export the targets we build into Android.mk files that reference them as prebuilt libraries with associated usage requirements (compile definitions, include directories, link libraries). This will allow CMake-built projects to be imported into projects using the Android NDK build system. Closes: #15562
* fix a load of include-what-you-use violationsDaniel Pfeifer2016-09-031-3/+9
|
* install(EXPORT): Fix support for mid-length install destinations on WindowsBrad King2016-08-091-0/+1
| | | | | | | | | | | | The implementation of `install(EXPORT)` generates files into a staging directory for later installation. We use the full install destination in the path to the staging directory to avoid collisions. In order to avoid exceeding maximum path lengths (especially on Windows) we compute a hash of the install destination when it is too long. Fix this logic to account for the length of the file name(s) when deciding whether to switch to the hashed name. Reported-by: Alan W. Irwin <irwin@beluga.phys.uvic.ca>
* mark functions with CM_OVERRIDEDaniel Pfeifer2016-06-271-5/+7
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-11/+8
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* install: Add EXCLUDE_FROM_ALL option (#14921)Nick Lewis2016-02-041-0/+1
| | | | | | | | | | | | | | | | | | | Let us take an example of a project that has some tests in a component that need to be installed into a dedicated test package. The user expectation is that the result could be achieved by typing the following: make make tests make install DESTDIR=/testpkgs make install-tests However this results in test components in the default installation as well as the testpkg. Add an EXCLUDE_FROM_ALL option to the install() command to tell it that the installation rule should not be included unless its component is explicitly specified for installation.
* cmInstallExportGenerator: Require cmLocalGenerator, not cmMakefile.Stephen Kelly2015-08-231-3/+5
|
* cmInstallGenerator: Move GetDestination to subclasses that need itBrad King2015-02-111-0/+3
| | | | | | The method is used only for EXPORT and TARGET install destinations. While at it, make it return a std::string by reference instead of a "const char*".
* install: Thread message level setting through internal APIBrad King2014-06-241-0/+1
| | | | | | | Create a cmInstallGenerator::MessageLevel enumeration for future use in specifying install message verbosity. Thread values of the type through constructors and save the value as a member of cmInstallGenerator. Use only a "MessageDefault" value for now.
* Export: Generate INTERFACE_LINK_LIBRARIES property on targets.Stephen Kelly2013-07-081-1/+2
| | | | | | | | | | This property is generated only for targets which have recorded policy CMP0022 as NEW, and a compatibility mode is added to additionally export the old interfaces in that case too. If the old interfaces are not exported, the generated export files require CMake 2.8.12. Because the unit tests use a version which is not yet called 2.8.12, temporarily require a lower version.
* install(EXPORT): Force absolute paths for usr-moveBrad King2013-03-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | If the absolute install(EXPORT) destination for the CMAKE_INSTALL_PREFIX used during configuration is under (/usr)?/lib(64)? then assume the current build is for a system package installation instead of a relocatable distribution. Generate an absolute path for _IMPORT_PREFIX in the target exports file instead of generating code to compute the value relative to the file location. This is necessary for distributions implementing a move to /usr such as: https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib "All files in the /lib directory have been moved to /usr/lib and now /lib is a symlink to usr/lib." The relative path computation is not reliable because the targets file could be installed through cross-prefix a symlink and loaded without it or vice versa. A similar change was made for package configuration file generation by commit d4774140 (configure_package_config_file: force absolute paths for usr-move, 2013-01-24).
* exports: accept a missing target if it is exported exactly onceAlex Neundorf2012-09-281-1/+4
| | | | | | | | | | | 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-2/+4
| | | | Get name from this->ExportSet.
* exports: Create class cmExportSetYury G. Kudryashov2012-09-281-6/+3
| | | | | Replace direct use of 'std::vector<cmTargetExport const*>' with a dedicated class.
* 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.
* STYLE: Remove useless install generator typedefsBrad King2008-12-181-1/+0
| | | | | The cmInstall*Generator classes all derive from cmInstallGenerator which provides the Indent typedef so they do not need to provide it
* ENH: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-63/+21
| | | | | | | | | | | | | | | | | | 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
* ENH: add install files generators for targets which have PUBLIC_HEADER,Alexander Neundorf2007-08-271-2/+9
| | | | | | | PRIVATE_HEADER or RESOURCE_FILES property, use the destination for the public headers as include directory property for exported libraries Alex
* ENH: Handle FRAMEWORK and BUNDLE arguments in the INSTALL TARGETS command. ↵David Cole2007-08-221-2/+7
| | | | Work in progress... More to come.
* ENH: Further cleanup of installation script generation. The per-component ↵Brad King2007-07-021-1/+3
| | | | 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.
* ENH: add INSTALL(EXPORT ...) mode and INSTALL( TARGETS ... EXPORT <set> ) ,Alexander Neundorf2007-06-191-0/+92
tests still have to be added Alex