diff options
Diffstat (limited to 'src/engine/SCons/Tool/javac.py')
| -rw-r--r-- | src/engine/SCons/Tool/javac.py | 24 | 
1 files changed, 20 insertions, 4 deletions
diff --git a/src/engine/SCons/Tool/javac.py b/src/engine/SCons/Tool/javac.py index f3cabf3..387afdb 100644 --- a/src/engine/SCons/Tool/javac.py +++ b/src/engine/SCons/Tool/javac.py @@ -9,7 +9,7 @@ selection method.  """  # -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #  # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -30,15 +30,16 @@ selection method.  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -__revision__ = "src/engine/SCons/Tool/javac.py rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog" +__revision__ = "src/engine/SCons/Tool/javac.py e724ae812eb96f4858a132f5b8c769724744faf6 2019-07-21 00:04:47 bdeegan"  import os  import os.path +from collections import OrderedDict  import SCons.Action  import SCons.Builder  from SCons.Node.FS import _my_normcase -from SCons.Tool.JavaCommon import parse_java_file +from SCons.Tool.JavaCommon import parse_java_file, get_java_install_dirs, get_java_include_paths  import SCons.Util  def classname(path): @@ -70,7 +71,7 @@ def emit_java_classes(target, source, env):          if isinstance(entry, SCons.Node.FS.File):              slist.append(entry)          elif isinstance(entry, SCons.Node.FS.Dir): -            result = SCons.Util.OrderedDict() +            result = OrderedDict()              dirnode = entry.rdir()              def find_java_files(arg, dirpath, filenames):                  java_files = sorted([n for n in filenames @@ -207,6 +208,21 @@ def generate(env):      env.AddMethod(Java) +    version = env.get('JAVAVERSION', None) + +    if env['PLATFORM'] == 'win32': +        # Ensure that we have a proper path for javac +        paths = get_java_install_dirs('win32', version=version) +        javac = SCons.Tool.find_program_path(env, 'javac', default_paths=paths) +        if javac: +            javac_bin_dir = os.path.dirname(javac) +            env.AppendENVPath('PATH', javac_bin_dir) +    else: +        javac = SCons.Tool.find_program_path(env, 'javac') + +    env['JAVAINCLUDES'] = get_java_include_paths(env, javac, version) + +      env['JAVAC']                    = 'javac'      env['JAVACFLAGS']               = SCons.Util.CLVar('')      env['JAVABOOTCLASSPATH']        = []  | 
