1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.github.maven_nar.cpptasks.msvc;
21
22 import com.github.maven_nar.cpptasks.compiler.LinkType;
23 import com.github.maven_nar.cpptasks.compiler.Linker;
24
25
26
27
28
29
30
31 public final class MsvcLinker extends MsvcCompatibleLinker {
32 private static final MsvcLinker dllLinker = new MsvcLinker(".dll");
33 private static final MsvcLinker instance = new MsvcLinker(".exe");
34
35 public static MsvcLinker getInstance() {
36 return instance;
37 }
38
39 private MsvcLinker(final String outputSuffix) {
40 super("link", "/DLL", outputSuffix);
41 }
42
43 @Override
44 public Linker getLinker(final LinkType type) {
45 if (type.isSharedLibrary()) {
46 return dllLinker;
47 }
48 if (type.isStaticLibrary()) {
49 return MsvcLibrarian.getInstance();
50 }
51 return instance;
52 }
53 }