1 package org.codehaus.mojo.natives.bcc;
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 java.io.File;
28
29 import org.codehaus.mojo.natives.NativeBuildException;
30 import org.codehaus.mojo.natives.compiler.AbstractResourceCompiler;
31 import org.codehaus.mojo.natives.compiler.ResourceCompiler;
32 import org.codehaus.mojo.natives.compiler.ResourceCompilerConfiguration;
33 import org.codehaus.mojo.natives.util.EnvUtil;
34 import org.codehaus.plexus.component.annotations.Component;
35 import org.codehaus.plexus.util.cli.Commandline;
36
37 @Component(role = ResourceCompiler.class, hint = "bcc")
38 public class BCCResourceCompiler
39 extends AbstractResourceCompiler
40 {
41
42 protected Commandline getCommandLine( ResourceCompilerConfiguration 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( "brcc32.exe" );
58 }
59 cl.setExecutable( config.getExecutable().trim() );
60
61 cl.addArguments( config.getOptions() );
62
63 for ( int i = 0; i < config.getIncludePaths().length; ++i )
64 {
65 String includePath = config.getIncludePaths()[i].getPath();
66
67 cl.createArg().setValue( "-i" );
68
69 cl.createArg().setValue( includePath );
70 }
71
72 for ( int i = 0; i < config.getSystemIncludePaths().length; ++i )
73 {
74 String includePath = config.getSystemIncludePaths()[i].getPath();
75
76 cl.createArg().setValue( "-i" );
77
78 cl.createArg().setValue( includePath );
79 }
80
81 cl.createArg().setValue( "-fo" );
82
83 cl.createArg().setValue( config.getOutputFile( source ).getPath() );
84
85 cl.createArg().setValue( source.getPath() );
86
87 return cl;
88 }
89
90 }