Browse Source

SCons: Improve registration of compilation_db tool, check version

There's a builtin `toolpath` option we can use for that, so no need to hack
around a custom `scons_site` path.

The script requires SCons 3.1.1 or later, so we enable it conditionally.

Follow-up to #32848.
Rémi Verschelde 5 years ago
parent
commit
22c718ab17
2 changed files with 6 additions and 7 deletions
  1. 6 7
      SConstruct
  2. 0 0
      misc/scons/compilation_db.py

+ 6 - 7
SConstruct

@@ -272,14 +272,13 @@ if selected_platform in platform_list:
     else:
     else:
         env = env_base.Clone()
         env = env_base.Clone()
 
 
-    # Custom tools are loaded automatically by SCons from site_scons/site_tools,
-    # but we want to use a different folder, so we register it manually.
-    from SCons.Script.Main import _load_site_scons_dir
+    # Compilation DB requires SCons 3.1.1+.
+    from SCons import __version__ as scons_raw_version
 
 
-    _load_site_scons_dir(".", "misc/scons")
-
-    env.Tool("compilation_db")
-    env.Alias("compiledb", env.CompilationDatabase("compile_commands.json"))
+    scons_ver = env._get_major_minor_revision(scons_raw_version)
+    if scons_ver >= (3, 1, 1):
+        env.Tool("compilation_db", toolpath=["misc/scons"])
+        env.Alias("compiledb", env.CompilationDatabase("compile_commands.json"))
 
 
     if env["dev"]:
     if env["dev"]:
         env["verbose"] = True
         env["verbose"] = True

+ 0 - 0
misc/scons/site_tools/compilation_db.py → misc/scons/compilation_db.py