diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2018-10-02 20:38:26 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2018-10-10 14:26:39 (GMT) |
commit | fc8955e8891c645cd369a3cc8b607a14a8ed5bd7 (patch) | |
tree | 8a20a759ac2ea54aae9411bad8c54d109dd1ae02 /Source/cmInstallSubdirectoryGenerator.h | |
parent | 514f0b572ea8ca2ba87810aa8f48185f266a8eaa (diff) | |
download | CMake-fc8955e8891c645cd369a3cc8b607a14a8ed5bd7.zip CMake-fc8955e8891c645cd369a3cc8b607a14a8ed5bd7.tar.gz CMake-fc8955e8891c645cd369a3cc8b607a14a8ed5bd7.tar.bz2 |
add_subdirectory: Run subdirectory install rules in correct order
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.
Diffstat (limited to 'Source/cmInstallSubdirectoryGenerator.h')
-rw-r--r-- | Source/cmInstallSubdirectoryGenerator.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Source/cmInstallSubdirectoryGenerator.h b/Source/cmInstallSubdirectoryGenerator.h new file mode 100644 index 0000000..35471dd --- /dev/null +++ b/Source/cmInstallSubdirectoryGenerator.h @@ -0,0 +1,41 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmInstallSubdirectoryGenerator_h +#define cmInstallSubdirectoryGenerator_h + +#include "cmConfigure.h" // IWYU pragma: keep + +#include "cmInstallGenerator.h" + +#include <iosfwd> +#include <string> + +class cmLocalGenerator; +class cmMakefile; + +/** \class cmInstallSubdirectoryGenerator + * \brief Generate target installation rules. + */ +class cmInstallSubdirectoryGenerator : public cmInstallGenerator +{ +public: + cmInstallSubdirectoryGenerator(cmMakefile* makefile, + const char* binaryDirectory, + bool excludeFromAll); + ~cmInstallSubdirectoryGenerator() override; + + bool HaveInstall() override; + void CheckCMP0082(bool& haveSubdirectoryInstall, + bool& haveInstallAfterSubdirectory) override; + + void Compute(cmLocalGenerator* lg) override; + +protected: + void GenerateScript(std::ostream& os) override; + + cmMakefile* Makefile; + std::string BinaryDirectory; + cmLocalGenerator* LocalGenerator; +}; + +#endif |