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 import java.util.HashMap;
29 import java.util.Map;
30
31 import org.codehaus.mojo.natives.EnvFactory;
32 import org.codehaus.mojo.natives.NativeBuildException;
33 import org.codehaus.mojo.natives.util.EnvUtil;
34
35
36
37
38
39 public class BCCEnvFactory
40 implements EnvFactory
41 {
42 private static final String BCC_INSTALL_ENV_KEY = "BCC_INSTALL_DIR";
43
44 private static final String DEFAULT_BCC_INSTALL_DIR = "C:/Borland/BCC";
45
46 private static Map envs;
47
48 public synchronized Map getEnvironmentVariables()
49 throws NativeBuildException
50 {
51 if ( envs == null )
52 {
53 envs = createEnvs();
54 }
55
56 return envs;
57 }
58
59 private Map createEnvs()
60 throws NativeBuildException
61 {
62 File bccDir = new File( EnvUtil.getEnv( BCC_INSTALL_ENV_KEY, BCC_INSTALL_ENV_KEY, DEFAULT_BCC_INSTALL_DIR ) );
63
64 if ( !bccDir.isDirectory() )
65 {
66 throw new NativeBuildException( bccDir.getPath() + " is not a directory." );
67 }
68
69 Map envs = new HashMap();
70
71 if ( bccDir == null )
72 {
73 return envs;
74 }
75
76
77 String currentPath = System.getProperty( "java.library.path" );
78
79 String newPath = bccDir.getPath() + "\\BIN;" + currentPath;
80
81 envs.put( "PATH", newPath );
82
83 return envs;
84
85 }
86
87 }