summaryrefslogtreecommitdiffstats
path: root/Source/cmInstallGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Refactor: Allow cmInstallGenerator::Compute() to return an errorKyle Edwards2019-05-131-1/+1
| | | | | | This is preparation for an upcoming merge request, which will add a new cmInstallGenerator that returns false if there are errors in the Compute() step.
* clang-tidy: Use `= delete`Regina Pfeifer2019-01-291-2/+3
|
* add_subdirectory: Run subdirectory install rules in correct orderKyle Edwards2018-10-101-0/+4
| | | | | | | | | Before this change, install rules created by add_subdirectory() would be executed after all of the top-level install rules, even if they were declared before the top-level rules. This change adds a new policy, CMP0082, which interleaves the add_subdirectory() install rules with the other install rules so they are run in the correct order.
* Use C++11 override instead of CM_OVERRIDEBrad King2017-09-151-2/+2
| | | | | | | | We now require C++11 support including `override`. Drop use of the old compatibility macro. Convert references as follows: git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' | xargs sed -i 's/CM_OVERRIDE/override/g'
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* Use C++11 nullptrDaniel Pfeifer2017-08-241-3/+3
|
* Pass large types by const&, small types by valueDaniel Pfeifer2017-06-031-1/+1
|
* Use CM_DISABLE_COPYDaniel Pfeifer2017-04-241-0/+2
|
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* 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.
* fix a load of include-what-you-use violationsDaniel Pfeifer2016-09-031-0/+6
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-7/+6
|
* mark functions with CM_OVERRIDEDaniel Pfeifer2016-06-271-2/+2
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-15/+9
| | | | | | | | | | | | | 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-2/+5
| | | | | | | | | | | | | | | | | | | 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.
* cmInstallGenerator: Add a Compute() virtual hook.Stephen Kelly2015-07-301-0/+2
|
* cmInstallGenerator: Pass destination explicitly to AddInstallRuleBrad King2015-02-111-1/+3
| | | | | This will allow specific invocations to transform the destination before AddInstallRule uses it.
* cmInstallGenerator: Refactor computation of absolute install destBrad King2015-02-111-1/+1
| | | | | | | | Replace the GetInstallDestination method, which looked up the Destination ivar, with a new ConvertToAbsoluteDestination method that takes the nominal destination as an argument. Update call sites accordingly. This will allow some clients to transform the install destination before calling the method.
* cmInstallGenerator: Move GetDestination to subclasses that need itBrad King2015-02-111-3/+0
| | | | | | 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(DIRECTORY): Add MESSAGE_NEVER option to avoid output (#13761)Brad King2014-06-241-2/+2
| | | | | | | | | | | | Installing large directories, e.g., the output of a doxygen run, prints one line per file resulting in too much noise in the build output. Add an option to the install(DIRECTORY) command to not print anything upon make install. Extend the RunCMake.install test with cases covering MESSAGE_NEVER behavior of the install(DIRECTORY) command. Suggested-by: Stefan Eilemann <Stefan.Eilemann@epfl.ch>
* install: Add CMAKE_INSTALL_MESSAGE variable (#13761)Brad King2014-06-241-0/+7
| | | | | | | | | Create a variable to allow users to control which installation messages are printed. In particular, provide a "LAZY" setting that prints "Installing" messages but not "Up-to-date" messages. This is desirable for incremental re-installations. Suggested-by: J Decker <d3ck0r@gmail.com>
* install: Thread message level setting through internal APIBrad King2014-06-241-1/+8
| | | | | | | 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.
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-1/+1
|
* Factor cmInstallType out of cmTarget::TargetTypeBrad King2012-02-271-1/+2
| | | | | | The purpose of the TargetType enumeration was overloaded for install type because install rules were once recorded as targets. Factor the install types out into their own enumeration.
* 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: Remove unused PROPERTIES from file(INSTALL)Brad King2009-04-271-1/+0
| | | | | The undocumented file(INSTALL) command used to support a PROPERTIES option, but no install code still uses it. This removes the option.
* ENH: Refactor cmInstallGenerator for re-useBrad King2009-03-161-44/+3
| | | | | | A new cmScriptGenerator base class factors out the non-install-specific part of cmInstallGenerator. This will be useful for other generators that want per-configuration functionality.
* ENH: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-2/+10
| | | | | | | | | | | | | | | | | | 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: Further cleanup of installation script generation. The per-component ↵Brad King2007-07-021-8/+21
| | | | 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: Improved indentation of generated cmake_install.cmake code.Brad King2007-07-021-1/+28
|
* ENH: First step of install script generator cleanup. Each configuration to ↵Brad King2007-06-281-1/+2
| | | | be installed is now separately handled instead of using variables to store per-configuration names. For targets the component and configuration install-time tests are now done in the install script instead of in the FILE(INSTALL) command. This cleans things up like not trying to strip a file that was optionally not installed. It also simplifies the code for install_name adjustment on OSX. This commit is surrounded by the tags CMake-InstallGeneratorCleanup1-pre and CMake-InstallGeneratorCleanup1-post.
* STYLE: preparations for the INSTALL(EXPORT ...) generatorAlexander Neundorf2007-06-191-0/+3
| | | | | | | | | -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
* ENH: Implemented INSTALL(DIRECTORY) command and added a test. Re-organized ↵Brad King2006-08-211-1/+2
| | | | cmFileCommand's implementation of FILE(INSTALL) a bit to help out. This addresses bug#1694 and partially addresses bug#2691.
* ENH: Started implementing INSTALL(DIRECTORY) command mode. This is not yet ↵Brad King2006-08-171-1/+2
| | | | finished so it is undocumented and there is no test. These changes also separate the notions of file and directory permissions.
* STYLE: fix line lengthKen Martin2006-05-111-1/+2
|
* ENH: Added CONFIGURATIONS option to INSTALL command to allow ↵Brad King2006-05-051-6/+9
| | | | per-configuration install rules.
* ENH: Added named component installation implementation. Installation ↵Brad King2006-03-301-0/+1
| | | | behavior should be unchanged unless -DCOMPONENT=<name> is specified when cmake_install.cmake is invoked.
* ENH: Added PERMISSIONS and RENAME options to the INSTALL command's FILES and ↵Brad King2006-03-031-1/+3
| | | | 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.
* BUG: Do not report files as installed if they are optional and do not exist.Brad King2006-02-191-1/+1
|
* ENH: Created new install script generation framework. The INSTALL command ↵Brad King2006-02-191-0/+48
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.