diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-02-07 16:36:29 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-02-22 13:35:38 (GMT) |
commit | 1c0597c25bf69a9c73e3d4f6ab68d16b5e56a271 (patch) | |
tree | 832bacf10674f534b5aa40444b5c3fbdd360474c /Source/cmExportTryCompileFileGenerator.h | |
parent | f2ab17d4db86af5695f70b5c49f388319e510472 (diff) | |
download | CMake-1c0597c25bf69a9c73e3d4f6ab68d16b5e56a271.zip CMake-1c0597c25bf69a9c73e3d4f6ab68d16b5e56a271.tar.gz CMake-1c0597c25bf69a9c73e3d4f6ab68d16b5e56a271.tar.bz2 |
Add a new Export generator for IMPORTED targets.
This is to be used during try_compile using LINK_LIBRARIES in the
srcfile signature and, in the future, TARGETS in the binary dir
signature.
Diffstat (limited to 'Source/cmExportTryCompileFileGenerator.h')
-rw-r--r-- | Source/cmExportTryCompileFileGenerator.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Source/cmExportTryCompileFileGenerator.h b/Source/cmExportTryCompileFileGenerator.h new file mode 100644 index 0000000..ed393ab --- /dev/null +++ b/Source/cmExportTryCompileFileGenerator.h @@ -0,0 +1,55 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2013 Stephen Kelly <steveire@gmail.com> + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef cmExportInstallFileGenerator_h +#define cmExportInstallFileGenerator_h + +#include "cmExportFileGenerator.h" + +class cmInstallExportGenerator; +class cmInstallTargetGenerator; + +class cmExportTryCompileFileGenerator: public cmExportFileGenerator +{ +public: + /** Set the list of targets to export. */ + void SetExports(const std::vector<cmTarget*> &exports) + { this->Exports = exports; } + void SetConfig(const char *config) { this->Config = config; } +protected: + + // Implement virtual methods from the superclass. + virtual bool GenerateMainFile(std::ostream& os); + + virtual void GenerateImportTargetsConfig(std::ostream&, + const char*, + std::string const&, + std::vector<std::string>&) {} + virtual void HandleMissingTarget(std::string&, + std::vector<std::string>&, + cmMakefile*, + cmTarget*, + cmTarget*) {} + + void PopulateProperties(cmTarget* target, + ImportPropertyMap& properties, + std::set<cmTarget*> &emitted); + +private: + std::string FindTargets(const char *prop, cmTarget *tgt, + std::set<cmTarget*> &emitted); + + + std::vector<cmTarget*> Exports; + const char *Config; +}; + +#endif |