1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
10 #include "cmMakefileTargetGenerator.h"
12 class cmGeneratorTarget;
14 class cmMakefileLibraryTargetGenerator : public cmMakefileTargetGenerator
17 cmMakefileLibraryTargetGenerator(cmGeneratorTarget* target);
18 ~cmMakefileLibraryTargetGenerator() override;
20 /* the main entry point for this class. Writes the Makefiles associated
22 void WriteRuleFiles() override;
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,
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;
44 std::string DeviceLinkObject;