| 57 | #include "cmake.h" |
| 58 | |
| 59 | std::unique_ptr<cmNinjaTargetGenerator> cmNinjaTargetGenerator::New( |
| 60 | cmGeneratorTarget* target) |
| 61 | { |
| 62 | switch (target->GetType()) { |
| 63 | case cmStateEnums::EXECUTABLE: |
| 64 | case cmStateEnums::SHARED_LIBRARY: |
| 65 | case cmStateEnums::STATIC_LIBRARY: |
| 66 | case cmStateEnums::MODULE_LIBRARY: |
| 67 | case cmStateEnums::OBJECT_LIBRARY: |
| 68 | return cm::make_unique<cmNinjaNormalTargetGenerator>(target); |
| 69 | |
| 70 | case cmStateEnums::INTERFACE_LIBRARY: |
| 71 | if (target->HaveCxx20ModuleSources()) { |
| 72 | return cm::make_unique<cmNinjaNormalTargetGenerator>(target); |
| 73 | } |
| 74 | CM_FALLTHROUGH; |
| 75 | |
| 76 | case cmStateEnums::UTILITY: |
| 77 | case cmStateEnums::GLOBAL_TARGET: |
| 78 | return cm::make_unique<cmNinjaUtilityTargetGenerator>(target); |
| 79 | |
| 80 | default: |
| 81 | return std::unique_ptr<cmNinjaTargetGenerator>(); |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | cmNinjaTargetGenerator::cmNinjaTargetGenerator(cmGeneratorTarget* target) |
| 86 | : cmCommonTargetGenerator(target) |
nothing calls this directly
no test coverage detected