<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>206737</bug_id>
          
          <creation_ts>2020-01-24 04:48:35 -0800</creation_ts>
          <short_desc>[CMake] Provide a way to run a syntax check without actually compiling</short_desc>
          <delta_ts>2020-01-24 05:28:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206736</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>206738</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jbedard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1610610</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-24 04:48:35 -0800</bug_when>
    <thetext>The idea here would be to take advantage of the compilation
database (the “compile_commands.json” file which CMake can
generate when “-DCMAKE_EXPORT_COMPILE_COMMANDS=ON“ is passed
when configuring), pick the compiler commands from there,
and run them with “-fsyntax-only” added.

Now, there is a slight complication: many of the compilation
commands will need certain derived sources being generated
before they can successfully run. It would be good to have
a CMake target which depends on all the generated/derived
sources, so we can run “ninja derived-sources” (or similar)
and *then* run the “-fsyntax-only” checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610611</commentid>
    <comment_count>1</comment_count>
      <attachid>388677</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-24 04:50:35 -0800</bug_when>
    <thetext>Created attachment 388677
Very WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610614</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-24 05:06:32 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #1)
&gt; Created attachment 388677 [details]
&gt; Very WIP Patch

Some notes about this patch:

 - It does not add the target that prepares forwarding headers
   and derived sources. I have filed bug #206737 to do that
   separately.

 - This initial version of the patch predates bug #206597 and
   needs to be reworked a bit to take it into account.

Anyway, I think sharing it may help out get a feeling of what
I am trying to achieve here. The ultimate goal would be to see
if we can get to the point of having an EWS builder that can
quickly verify that a non-unified build would succeed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388677</attachid>
            <date>2020-01-24 04:50:35 -0800</date>
            <delta_ts>2020-01-24 05:06:45 -0800</delta_ts>
            <desc>Very WIP Patch</desc>
            <filename>bug-206737-20200124145034.patch</filename>
            <type>text/plain</type>
            <size>6177</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MDY1CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IGZjMDY2NGE2NTA1
NTQ2ZjQyOGM3NTE0Yjk2NzUxMTliNzVhNjIxNDAuLmYxNGIxOTExNDBhNjQ2ZTQ5NzU3NWY3OGRi
OWFiNTY3YTAzZTQzY2EgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC03OSw2ICs3OSw3IEBAIG15ICRzdGFy
dFRpbWUgPSB0aW1lKCk7CiBteSAkYXJjaHMzMmJpdCA9IDA7CiBteSAkc2tpcExpYnJhcnlVcGRh
dGUgPSAwOwogbXkgJHVzZUNDYWNoZSA9IC0xOworbXkgJGNoZWNrU3ludGF4ID0gImRlZmF1bHQi
OwogCiBteSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9uTGlzdCgpOwogCkBAIC0xMTYsNiAr
MTE3LDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0
byBidWlsZCBzeXN0ZW1dCiAgIC0tc2ltdWxhdG9yICAgICAgICAgICAgICAgICAgICAgICBERVBS
RUNBVEVEIGFsaWFzIG9mIC0taW9zLXNpbXVsYXRvcgogICAtLWNvdmVyYWdlICAgICAgICAgICAg
ICAgICAgICAgICAgRW5hYmxlIGNvZGUgY292ZXJhZ2Ugc3VwcG9ydCAoTWFjIG9ubHkpCiAgIC0t
YW5hbHl6ZSAgICAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgc3RhdGljIGFuYXlsc2lzIChp
T1MgYW5kIE1hYyBvbmx5KQorICAtLWNoZWNrLXN5bnRheD08bW9kZT4gICAgICAgICAgICAgQ2hl
Y2sgQy9DKysgc3ludGF4IG9ubHkgKHVuaWZpZWQsIHBsYWluKSAoQ01ha2Ugb25seSkKICAgLS1s
dG8tbW9kZT08bW9kZT4gICAgICAgICAgICAgICAgIFNldCBMaW5rIFRpbWUgT3B0aW1pemF0aW9u
IG1vZGUgKGZ1bGwsIHRoaW4sIG9yIG5vbmUpIChMTFZNIG9ubHkpCiAgIC0tW25vLV14Y2J1aWxk
ICAgICAgICAgICAgICAgICAgICBGb3JjZSB0aGUgdXNlIG9mIFhDQnVpbGQgb3Igbm90CiAKQEAg
LTE2MCw2ICsxNjIsNyBAQCBteSAlb3B0aW9ucyA9ICgKICAgICAneGNidWlsZCEnID0+IFwkeGNi
dWlsZCwKICAgICAnc2tpcC1saWJyYXJ5LXVwZGF0ZScgPT4gXCRza2lwTGlicmFyeVVwZGF0ZSwK
ICAgICAndXNlLWNjYWNoZSEnID0+IFwkdXNlQ0NhY2hlLAorICAgICdjaGVjay1zeW50YXg9cycg
PT4gXCRjaGVja1N5bnRheCwKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9ucyBs
aXN0IGZyb20gZmVhdHVyZXMKQEAgLTI5Miw2ICsyOTUsMjAgQEAgaWYgKGlzSW5zcGVjdG9yRnJv
bnRlbmQoKSkgewogICAgIEBwcm9qZWN0cyA9ICgiU291cmNlL1dlYkluc3BlY3RvclVJIik7CiB9
CiAKK2lmIChpc0NNYWtlQnVpbGQoKSBhbmQgJGNoZWNrU3ludGF4IG5lICJkZWZhdWx0Iikgewor
ICAgIG15IEBmZWF0dXJlQXJncyA9IGNtYWtlQXJnc0Zyb21GZWF0dXJlcyhAZmVhdHVyZXMsICEk
bm9FeHBlcmltZW50YWxGZWF0dXJlcyk7CisgICAgaWYgKCRjaGVja1N5bnRheCBlcSAicGxhaW4i
KSB7CisgICAgICAgIHB1c2ggQGZlYXR1cmVBcmdzLCAiLURFTkFCTEVfVU5JRklFRF9CVUlMRFM9
T0ZGIjsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoIEBmZWF0dXJlQXJncywgIi1ERU5BQkxF
X1VOSUZJRURfQlVJTERTPU9OIjsKKyAgICB9CisgICAgcmVtb3ZlQ01ha2VDYWNoZShAZmVhdHVy
ZUFyZ3MpOworICAgIHB1c2ggQGNtYWtlQXJncywgQGZlYXR1cmVBcmdzOworICAgIG15ICRyZXR1
cm5Db2RlID0gZXhpdFN0YXR1cyhnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgk
cHJlZml4UGF0aCwgQGNtYWtlQXJncykpOworICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1
cm5Db2RlOworICAgIGV4aXQoY2hlY2tTeW50YXgobnVtYmVyT2ZDUFVzKCkpKTsKK30KKwogaWYg
KGlzQ01ha2VCdWlsZCgpICYmICFpc0FueVdpbmRvd3MoKSkgewogICAgIGlmICghY2FuVXNlTmlu
amEoKSB8fCBkZWZpbmVkKCRFTlZ7TlVNQkVSX09GX1BST0NFU1NPUlN9KSkgewogICAgICAgICAj
IElmIHRoZSB1c2VyIGVudmlyb25tZW50IGlzIG5vdCBzZXR0aW5nIGEgc3BlY2lmaWMgbnVtYmVy
IG9mIHByb2Nlc3MsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NoZWNrLXN5bnRheCBiL1Rv
b2xzL1NjcmlwdHMvY2hlY2stc3ludGF4Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5NThmZDM2ZWM5ZjBiNmQwZjU1
NTJhZDMwNTlkNmJkMTEzZTg1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL2No
ZWNrLXN5bnRheApAQCAtMCwwICsxLDEwMSBAQAorIyEgL3Vzci9iaW4vZW52IHB5dGhvbgorIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KKyMgdmltOmZlbmM9dXRmLTgKKworZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHNpZ25hbAoraW1wb3J0IG11bHRpcHJvY2Vz
c2luZywgc3VicHJvY2VzcworaW1wb3J0IGpzb24sIHN5cywgb3MsIHNobGV4CitpbXBvcnQgb3B0
cGFyc2UKKworCitjbGlvcHRzID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCJbLS1qb2JzPU5dIGNv
bXBpbGVfY29tbWFuZHMuanNvbiIpCitjbGlvcHRzLmFkZF9vcHRpb24oIi0tam9icyIsICItaiIs
IGRlZmF1bHQ9Tm9uZSwgdHlwZT1pbnQsCisgICAgICAgICAgICAgICAgICAgaGVscD0iTnVtYmVy
IG9mIHBhcmFsbGVsIGpvYnMgKGRlZmF1bHQ6IG51bWJlciBvZiBDUFVzKSIpCitjbGlvcHRzLmFk
ZF9vcHRpb24oIi0tbWF4LWVycm9ycyIsIGRlZmF1bHQ9MTAsIHR5cGU9aW50LAorICAgICAgICAg
ICAgICAgICAgIGhlbHA9Ik1heGltdW0gbnVtYmVyIG9mIGVycm9ycyB0byByZXBvcnQgYmVmb3Jl
IGV4aXRpbmcgKGRlZmF1bHQ6IGFsbCkiKQorCisKK2RlZiBjaGVja19zeW50YXgoZW50cnkpOgor
ICAgIGNtZCA9IHNobGV4LnNwbGl0KGVudHJ5WyJjb21tYW5kIl0pCisgICAgY21kLmFwcGVuZCgi
LWZzeW50YXgtb25seSIpCisgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLCBjd2Q9ZW50
cnlbImRpcmVjdG9yeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJw
cm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nl
c3MuU1RET1VUKQorICAgIG91dHB1dCwgXyA9IHByb2MuY29tbXVuaWNhdGUoKQorICAgIHJldHVy
biAoZW50cnlbImZpbGUiXSwgcHJvYy5yZXR1cm5jb2RlLCBvdXRwdXQpCisKKworZGVmIHNob3Vs
ZF9jaGVjayhlbnRyeSk6CisgICAgcmV0dXJuICIvVGhpcmRQYXJ0eS8iIG5vdCBpbiBlbnRyeVsi
ZmlsZSJdIFwKKyAgICAgICAgYW5kICIvV1RGLyIgbm90IGluIGVudHJ5WyJmaWxlIl0gXAorICAg
ICAgICBhbmQgIi9KYXZhU2NyaXB0Q29yZS8iIG5vdCBpbiBlbnRyeVsiZmlsZSJdIFwKKyAgICAg
ICAgYW5kICIvYm1hbGxvYy8iIG5vdCBpbiBlbnRyeVsiZmlsZSJdCisKKworaW50ZXJydXB0ZWQg
PSBGYWxzZQorCitkZWYgaGFuZGxlX2ludGVycnVwdChzaWdudW0sIGZyYW1lKToKKyAgICBnbG9i
YWwgaW50ZXJydXB0ZWQKKyAgICBpbnRlcnJ1cHRlZCA9IFRydWUKKworCitkZWYgbWFpbigpOgor
ICAgIG9wdGlvbnMsIGZpbGVzID0gY2xpb3B0cy5wYXJzZV9hcmdzKCkKKworICAgIGlmIGxlbihm
aWxlcykgIT0gMToKKyAgICAgICAgY2xpb3B0cy5lcnJvcigiRXhwZWN0ZWQgcGF0aCB0byBhIEpT
T04gY29tcGlsYXRpb24gZGF0YWJhc2UuIikKKworICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4o
ZmlsZXNbMF0sICJjb21waWxlX2NvbW1hbmRzLmpzb24iKSwgInJVIikgYXMgZjoKKyAgICAgICAg
Y2RiID0ganNvbi5sb2FkKGYpCisKKyAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQsIGhh
bmRsZV9pbnRlcnJ1cHQpCisKKyAgICBuaW5qYV9jbWQgPSBbIm5pbmphIiwgIi1DIiwgZmlsZXNb
MF1dCisgICAgaWYgb3B0aW9ucy5qb2JzOgorICAgICAgICBuaW5qYV9jbWQuYXBwZW5kKCItant9
Ii5mb3JtYXQob3B0aW9ucy5qb2JzKSkKKyAgICBuaW5qYV9jbWQuZXh0ZW5kKCgKKyAgICAgICAg
ImNtYWtlX29iamVjdF9vcmRlcl9kZXBlbmRzX3RhcmdldF9XZWJDb3JlIiwKKyAgICApKQorICAg
ICMgbmluamFfY21kLmV4dGVuZCgoCisgICAgICAgICMgIkFOR0xFSGVhZGVycyIsCisgICAgICAg
ICMgIkdMU0xBTkdIZWFkZXJzIiwKKyAgICAgICAgIyAiSlNDLWZha2UtYXBpLWhlYWRlcnMiLAor
ICAgICAgICAjICJKYXZhU2NyaXB0Q29yZV9Db3B5SGVhZGVycyIsCisgICAgICAgICMgIkphdmFT
Y3JpcHRDb3JlX0NvcHlQcml2YXRlSGVhZGVycyIsCisgICAgICAgICMgIlBBTEZyYW1ld29ya0hl
YWRlcnMiLAorICAgICAgICAjICJXVEZfQ29weUhlYWRlcnMiLAorICAgICAgICAjICJXZWJDb3Jl
QmluZGluZ3MiCisgICAgICAgICMgIldlYkNvcmVQcml2YXRlRnJhbWV3b3JrSGVhZGVycyIsCisg
ICAgICAgICMgIldlYktpdC1mYWtlLWFwaS1oZWFkZXJzIiwKKyAgICAgICAgIyAiV2ViS2l0LWZv
cndhcmRpbmctaGVhZGVycyIsCisgICAgICAgICMgImJtYWxsb2NfQ29weUhlYWRlcnMiLAorICAg
ICMgKSkKKyAgICBzdGF0dXMgPSBzdWJwcm9jZXNzLmNhbGwobmluamFfY21kKQorICAgIGlmIHN0
YXR1czoKKyAgICAgICAgcmFpc2UgU3lzdGVtRXhpdChzdGF0dXMpCisKKyAgICAjIEZpbHRlciBv
dXQgc29tZSBvZiB0aGUgZmlsZXMuCisgICAgY2RiID0gW2VudHJ5IGZvciBlbnRyeSBpbiBjZGIg
aWYgc2hvdWxkX2NoZWNrKGVudHJ5KV0KKworICAgIGVycm9yZWQgPSAwCisgICAgY3VycmVudCA9
IDAKKyAgICB0b3RhbCA9IGxlbihjZGIpCisgICAgcG9vbCA9IG11bHRpcHJvY2Vzc2luZy5Qb29s
KG9wdGlvbnMuam9icykKKyAgICBmb3IgZmlsZSwgc3RhdHVzLCBvdXRwdXQgaW4gcG9vbC5pbWFw
X3Vub3JkZXJlZChjaGVja19zeW50YXgsIGNkYik6CisgICAgICAgIGN1cnJlbnQgKz0gMQorICAg
ICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcclx4MUJbS1t7fS97fV0gQ2hlY2tpbmcge30iLmZvcm1h
dChjdXJyZW50LCB0b3RhbCwgZmlsZSkpCisgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQorICAg
ICAgICBpZiBzdGF0dXM6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcbiIpCisgICAg
ICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dHB1dCkKKyAgICAgICAgICAgIGVycm9yZWQgKz0g
MQorICAgICAgICBpZiBpbnRlcnJ1cHRlZCBvciAob3B0aW9ucy5tYXhfZXJyb3JzIGFuZCBlcnJv
cmVkID49IG9wdGlvbnMubWF4X2Vycm9ycyk6CisgICAgICAgICAgICBicmVhaworICAgIHBvb2wu
dGVybWluYXRlKCkKKyAgICBwb29sLmpvaW4oKQorICAgIGlmIGVycm9yZWQgPiAwOgorICAgICAg
ICByYWlzZSBTeXN0ZW1FeGl0KDEpCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAg
bWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggMTA0ZjY2MDJhYjU3NDAwNGRhNzQ3OTgzZTk2OTU2
MjAwM2RhODBmMy4uMWZkY2E2YmU1Y2Y3MjgxZTY5MWY2N2Y0MTE4OWQxYmIzY2JhMDg1NiAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbQpAQCAtMjI3OSw2ICsyMjc5LDE0IEBAIHN1YiBjbWFrZUdlbmVyYXRlZEJ1
aWxkZmlsZShAKQogICAgIH0KIH0KIAorc3ViIGNoZWNrU3ludGF4KEApCit7CisgICAgbXkgKCRu
dW1DUFVzKSA9IEBfOworICAgIG15ICRidWlsZERpciA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoYmFz
ZVByb2R1Y3REaXIoKSwgY29uZmlndXJhdGlvbigpKTsKKyAgICBteSAkY2hlY2tTeW50YXhUb29s
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgIlRvb2xzIiwgIlNjcmlwdHMiLCAi
Y2hlY2stc3ludGF4Iik7CisgICAgcmV0dXJuIGV4aXRTdGF0dXMoc3lzdGVtVmVyYm9zZSgkY2hl
Y2tTeW50YXhUb29sLCAiLS1qb2JzPSRudW1DUFVzIiwgJGJ1aWxkRGlyKSk7Cit9CisKIHN1YiBn
ZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogewogICAgIG15ICgkcHJlZml4UGF0
aCwgQGNtYWtlQXJncykgPSBAXzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>