style: Treat PyBind headers as Python headers
authorAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 2 May 2017 13:04:44 +0000 (14:04 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 9 May 2017 15:27:47 +0000 (15:27 +0000)
Some PyBind11 headers need to include Python.h. This means that we need
to include PyBind11 headers before any standard library headers. Enforce
this by applying the Python.hh rules for anything in pybind11/.

Change-Id: Id175a4f613960a17f84f98b81bfd02806e905d5a
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3120
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com>
util/style/sort_includes.py

index d1a25ee6bbc5000825d8e28369cf6b5046485244..cb88fec2d7bb9e59f8c8943c86be459cdf3ffd77 100644 (file)
@@ -158,6 +158,8 @@ class SortIncludes(object):
     includes_re = (
         ('main', '""', _include_matcher_main()),
         ('python', '<>', _include_matcher_fname("^Python\.h$")),
+        ('pybind', '""', _include_matcher_fname("^pybind11/.*\.h$",
+                                                delim='""')),
         ('c', '<>', _include_matcher_fname("^.*\.h$")),
         ('stl', '<>', _include_matcher_fname("^\w+$")),
         ('cc', '<>', _include_matcher_fname("^.*\.(hh|hxx|hpp|H)$")),
@@ -170,6 +172,7 @@ class SortIncludes(object):
 
     block_order = (
         ('python', ),
+        ('pybind', ),
         ('main', ),
         ('c', ),
         ('stl', ),