RFR: 8210459: Add support for generating compile_commands.json

Erik Joelsson erik.joelsson at oracle.com
Mon Sep 10 17:09:49 UTC 2018


Hello Robin,

Overall very nice work. A few things though:

The output dir compile_commands should use a dash instead to fit with 
current patterns. That way the clean target will also be all dashes.

Main.gmk:888: I think you meant to add test-compile-commands here, which 
also requires you to define that target.

In NativeCompilation.gmk:739: I don't see a reason for = assignment, so 
please use :=. On the next line, please indent for continuation with 4 
spaces.

In Launcher-jdk.pack.gmk, this SetupJdkExecutable can be rewritten to 
use the EXTRA_OBJECT_FILES parameter (inherited from 
SetupNativeCompilation macro) for UNPACKEXE_ZIPOBJS instead of adding 
them to LDFLAGS. Then the explicit dependency declaration can go away 
completely.

In Awt2dLibraries.gmk, I think lines 733 and 735 needs to be fixed as 
well. Using FindLib is generally a good idea for this. I suspect there 
may be more such instances sprinkled around the makefiles.

/Erik


On 2018-09-10 06:36, Robin Westberg wrote:
> Hi all,
>
> Please review the following change that adds support for generating compile_commands.json as a top-level make target. This is a popular format for describing how to compile object files for a project, and is defined in [1]. This file can be used directly by IDEs such as Visual Studio Code and CLion as well as "language servers" such as cquery [2] and rtags [3].
>
> While it’s currently possible to generate this file as part of a full build (using tools such as Bear [4], or simply parsing .cmdline files), this change aims to make it possible to generate the compile commands data without actually compiling the object files. This means that it’s for example possible to start using an IDE fairly quickly on freshly cloned source, instead of having to wait for a full build to complete.
>
> This was originally inspired by the work done in [5] by Mikael Gerdin and Erik Joelsson, but has been through a few revisions since then. Erik has also provided a lot of assistance with the current version, thanks Erik!
>
> Issue: https://bugs.openjdk.java.net/browse/JDK-8210459
> Webrev: http://cr.openjdk.java.net/~rwestberg/8210459/webrev.00/
> Testing: tier1, builds-tier5
>
> Best regards,
> Robin
>
> [1] https://clang.llvm.org/docs/JSONCompilationDatabase.html
> [2] https://github.com/cquery-project/cquery
> [3] https://github.com/Andersbakken/rtags
> [4] https://github.com/rizsotto/Bear
> [5] http://mail.openjdk.java.net/pipermail/hotspot-dev/2017-March/026354.html




More information about the build-dev mailing list