1 package org.codehaus.mojo.natives.msvc;
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
27 import org.codehaus.mojo.natives.NativeBuildException;
28 import org.codehaus.mojo.natives.compiler.MessageCompilerConfiguration;
29 import org.codehaus.mojo.natives.compiler.AbstractMessageCompiler;
30 import org.codehaus.mojo.natives.util.EnvUtil;
31 import org.codehaus.plexus.util.cli.Commandline;
32
33 import java.io.File;
34 import org.codehaus.mojo.natives.compiler.MessageCompiler;
35 import org.codehaus.plexus.component.annotations.Component;
36
37 @Component(role = MessageCompiler.class, hint = "msvc")
38 public class MSVCMessageCompiler
39 extends AbstractMessageCompiler
40 {
41
42 protected Commandline getCommandLine( MessageCompilerConfiguration config, File source )
43 throws NativeBuildException
44 {
45
46 Commandline cl = new Commandline();
47
48 EnvUtil.setupCommandlineEnv( cl, config.getEnvFactory() );
49
50 if ( config.getWorkingDirectory() != null )
51 {
52 cl.setWorkingDirectory( config.getWorkingDirectory().getPath() );
53 }
54
55 if ( config.getExecutable() == null || config.getExecutable().trim().length() == 0 )
56 {
57 config.setExecutable( "mc.exe" );
58 }
59 cl.setExecutable( config.getExecutable().trim() );
60
61 cl.addArguments( config.getOptions() );
62
63 if ( config.getOutputDirectory() != null && config.getOutputDirectory().getPath().trim().length() != 0 )
64 {
65 cl.createArg().setValue( "-r" );
66 cl.createArg().setValue( config.getOutputDirectory().getPath() );
67
68 cl.createArg().setValue( "-h" );
69 cl.createArg().setValue( config.getOutputDirectory().getPath() );
70
71 }
72
73 if ( config.getDebugOutputDirectory() != null
74 && config.getDebugOutputDirectory().getPath().trim().length() != 0 )
75 {
76 cl.createArg().setValue( "-x" );
77 cl.createArg().setValue( config.getDebugOutputDirectory().getPath() );
78 }
79
80 cl.createArg().setValue( source.getPath() );
81
82 return cl;
83 }
84
85 }