1 package org.codehaus.mojo.natives.mingw;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import java.io.File;
27
28 import org.codehaus.mojo.natives.NativeBuildException;
29 import org.codehaus.mojo.natives.compiler.AbstractResourceCompiler;
30 import org.codehaus.mojo.natives.compiler.ResourceCompiler;
31 import org.codehaus.mojo.natives.compiler.ResourceCompilerConfiguration;
32 import org.codehaus.mojo.natives.util.EnvUtil;
33 import org.codehaus.plexus.component.annotations.Component;
34 import org.codehaus.plexus.util.cli.Commandline;
35
36 @Component(role = ResourceCompiler.class, hint = "mingw", instantiationStrategy = "per-lookup")
37 public final class WindresResourceCompiler extends AbstractResourceCompiler {
38
39 protected Commandline getCommandLine(ResourceCompilerConfiguration config, File source)
40 throws NativeBuildException {
41
42 Commandline cl = new Commandline();
43
44 EnvUtil.setupCommandlineEnv(cl, config.getEnvFactory());
45
46 if (config.getWorkingDirectory() != null) {
47 cl.setWorkingDirectory(config.getWorkingDirectory().getPath());
48 }
49
50 if (config.getExecutable() == null || config.getExecutable().trim().length() == 0) {
51 config.setExecutable("windres.exe");
52 }
53 cl.setExecutable(config.getExecutable().trim());
54
55 cl.addArguments(config.getOptions());
56
57 for (int i = 0; i < config.getIncludePaths().length; ++i) {
58 String includePath = config.getIncludePaths()[i].getPath();
59
60 cl.createArg().setValue("-I");
61
62 cl.createArg().setValue(includePath);
63 }
64
65 for (int i = 0; i < config.getSystemIncludePaths().length; ++i) {
66 String includePath = config.getSystemIncludePaths()[i].getPath();
67
68 cl.createArg().setValue("-I");
69
70 cl.createArg().setValue(includePath);
71 }
72
73 cl.createArg().setValue("-O");
74
75 cl.createArg().setValue("coff");
76
77 cl.createArg().setValue("-o");
78
79 cl.createArg().setValue(config.getOutputFile(source).getPath());
80
81 cl.createArg().setValue(source.getPath());
82
83 return cl;
84 }
85
86 }