Commit Graph

91 Commits

Author SHA1 Message Date
Nico Weber 476155e68e [gn build] reformat all gn files
$ git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format

(and manually wrap two comments)
2021-04-20 10:34:08 -04:00
LLVM GN Syncbot 308d40fe66 [gn build] Port 274907c0a4 2021-03-23 13:01:57 +00:00
Stephen Kelly 19740652c4 [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-15 10:52:44 +00:00
Stephen Kelly 6e303a982d Revert "[AST] Add generator for source location introspection"
This reverts commit 91abaa1f8d.
2021-03-15 01:16:10 +00:00
Stephen Kelly 91abaa1f8d [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-15 00:00:29 +00:00
Stephen Kelly e312b4b6c7 Revert "[AST] Add generator for source location introspection"
This reverts commit 477e4b9746.
2021-03-14 22:51:45 +00:00
Stephen Kelly 477e4b9746 [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-14 22:32:42 +00:00
Nico Weber 237526319c Revert "[gn build] (manually) kind of merge d627a27d26"
This reverts commit 5123327eda.
d627a27d26 was reverted in e0f70a8a97.
2021-03-14 12:18:22 -04:00
Nico Weber 5123327eda [gn build] (manually) kind of merge d627a27d26
This only merges the no-op generator part for now.
2021-03-14 09:19:44 -04:00
LLVM GN Syncbot ad375ac5d2 [gn build] Port 6e3071007b 2021-02-22 10:35:33 +00:00
LLVM GN Syncbot 76748b67d1 [gn build] Port 40c261c41c 2021-02-09 09:19:31 +00:00
Nico Weber 4c37453a04 clang: Build and run FrontendTests with CLANG_ENABLE_STATIC_ANALYZER=OFF too
They seem to pass fine with the analyzer off, and with this I would've
noticed my last check-clang break locally.
2020-12-23 14:27:09 -05:00
LLVM GN Syncbot 1ec726f954 [gn build] Port 659f4bd87e 2020-11-05 15:11:13 +00:00
LLVM GN Syncbot 5d9c80a6e6 [gn build] Port ac49500cd0 2020-10-30 19:18:17 +00:00
LLVM GN Syncbot d273cb6090 [gn build] Port 940d0a310d 2020-10-30 18:08:01 +00:00
LLVM GN Syncbot a3f38551ef [gn build] Port 84e8257937 2020-10-30 17:54:57 +00:00
LLVM GN Syncbot ed0e367dec [gn build] Port 00090a2b82 2020-10-30 02:36:24 +00:00
LLVM GN Syncbot 2107e4b10e [gn build] Port 850325348a 2020-10-27 12:17:41 +00:00
LLVM GN Syncbot bf44d3689a [gn build] Port dbbc4f4e22 2020-10-23 17:06:41 +00:00
LLVM GN Syncbot 5e65d384a2 [gn build] Port 0741a2c9ca 2020-10-09 13:54:24 +00:00
LLVM GN Syncbot 9112567bbd [gn build] Port e336b74c99 2020-09-25 12:13:19 +00:00
LLVM GN Syncbot 9114d6cbda [gn build] Port af582c9b0f 2020-09-22 06:47:54 +00:00
LLVM GN Syncbot be7cef789e [gn build] Port c01d28dc51 2020-09-10 16:54:11 +00:00
LLVM GN Syncbot bb73fcfd07 [gn build] Port 23f700c785 2020-09-07 12:51:23 +00:00
LLVM GN Syncbot 9764eb9212 [gn build] Port 0478720157 2020-09-07 10:32:22 +00:00
LLVM GN Syncbot ffadd30b31 [gn build] Port 1a995a0af3 2020-08-20 18:24:44 +00:00
LLVM GN Syncbot b246bea921 [gn build] Port 00d7b7d014 2020-08-18 09:10:43 +00:00
LLVM GN Syncbot d795f968d9 [gn build] Port 2e4a20fd70 2020-08-14 07:42:49 +00:00
LLVM GN Syncbot fc7f004b88 [gn build] Port d17437d2bd 2020-08-13 13:35:44 +00:00
Nico Weber 1afd889d0b [gn build] Make sync_source_lists_from_cmake handle one-line sources lines
sync_source_lists_from_cmake now also looks for source files in
`sources += [ "foo.cc" ]` lines, which allows us to remove most
`# Make `gn format` not collapse this` comments.

(sync_source_lists_from_cmake doesn't look for `foo_headers += [...]`
still, so the comment is still needed in two places for that.)

No intentional behavior change.
2020-07-17 11:53:42 -04:00
LLVM GN Syncbot 4e2f72ce19 [gn build] Port 5e8b4be9f8 2020-07-16 19:08:09 +00:00
LLVM GN Syncbot c1efd6675a [gn build] Port fdb69539bc 2020-07-13 18:10:37 +00:00
LLVM GN Syncbot 0f95f4c659 [gn build] Port fe0a555aa3 2020-06-29 16:19:53 +00:00
LLVM GN Syncbot 07af106810 [gn build] Port 8e5a56865f 2020-06-29 10:55:06 +00:00
LLVM GN Syncbot e7f2548380 [gn build] Port 29125ddf13 2020-06-24 17:05:39 +00:00
LLVM GN Syncbot 21d747184a [gn build] Port 9b02a9b401 2020-06-09 13:58:14 +00:00
LLVM GN Syncbot 3ea8a65da8 [gn build] Port 98db1f990f 2020-06-09 13:58:13 +00:00
LLVM GN Syncbot 115a1fff53 [gn build] Port 813734dad7 2020-06-09 13:58:13 +00:00
Fangrui Song 68dd32dd43 [gn build] Port b5fc1deb5b 2020-06-04 09:22:59 -07:00
Nico Weber dd3ebe223e [gn build] (manually) port 44f989e780 2020-06-02 08:18:42 -04:00
Nico Weber 7d77b0545d [gn build] (manually) port 0e265e3157 2020-05-29 19:49:11 -04:00
LLVM GN Syncbot e0aefaedb6 [gn build] Port ba92b27422 2020-05-25 18:14:50 +00:00
LLVM GN Syncbot a81f8fb78d [gn build] Port 9d69072fb8 2020-05-18 22:19:17 +00:00
Nico Weber 5c68043b9f [gn build] (manually) port ce79c4246 2020-03-13 06:08:28 -04:00
LLVM GN Syncbot b93dd67797 [gn build] Port fa8080376e 2020-03-12 16:33:39 +00:00
LLVM GN Syncbot f31f22ef0f [gn build] Port d5edcb9064 2020-03-12 11:58:14 +00:00
LLVM GN Syncbot 8c70a2597f [gn build] Port 23444edf30 2020-02-21 17:21:54 +00:00
Nico Weber 527281a843 [gn build] re-run "gn format" with trunk gn 2020-01-15 13:37:38 -05:00
Nico Weber eadc28274b [gn build] add multi-line forcing comments in more places 2020-01-15 13:36:42 -05:00
LLVM GN Syncbot 9ed681f926 gn build: Merge 6d5c273500 2019-12-09 10:28:47 +00:00