CMake Nightly Date Stamp
[kiteware-cmake.git] / Source / cmMakefileLibraryTargetGenerator.h
blobcc989e77122acbedc9694d31cd663aff20ac3cc0
1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
3 #pragma once
5 #include "cmConfigure.h" // IWYU pragma: keep
7 #include <string>
8 #include <vector>
10 #include "cmMakefileTargetGenerator.h"
12 class cmGeneratorTarget;
14 class cmMakefileLibraryTargetGenerator : public cmMakefileTargetGenerator
16 public:
17 cmMakefileLibraryTargetGenerator(cmGeneratorTarget* target);
18 ~cmMakefileLibraryTargetGenerator() override;
20 /* the main entry point for this class. Writes the Makefiles associated
21 with this target */
22 void WriteRuleFiles() override;
24 protected:
25 void WriteObjectLibraryRules();
26 void WriteStaticLibraryRules();
27 void WriteSharedLibraryRules(bool relink);
28 void WriteModuleLibraryRules(bool relink);
30 void WriteDeviceLibraryRules(const std::string& linkRule, bool relink);
31 void WriteNvidiaDeviceLibraryRules(const std::string& linkRuleVar,
32 bool relink,
33 std::vector<std::string>& commands,
34 const std::string& targetOutput);
35 void WriteLibraryRules(const std::string& linkRule,
36 const std::string& extraFlags, bool relink);
37 // MacOSX Framework support methods
38 void WriteFrameworkRules(bool relink);
40 // Store the computd framework version for OS X Frameworks.
41 std::string FrameworkVersion;
43 private:
44 std::string DeviceLinkObject;