<table><tr><td style="">rjvbb created this revision.<br />rjvbb added a reviewer: KDevelop.<br />rjvbb added a project: KDevelop.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7930" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>The build system of projects like KDevelop itself depends internally on the use of relative paths to (auto-generated) headerfiles. The build and thus also the parsing of such projects can break because of this if there are symlinks on the build.dir path and the host OS doesn't normalise (canonicalise) paths by default.</p>

<p>This modification introduces optional build.dir normalisation and uses it wherever required. I kept the default to off since I'm not certain what subtle things and user expectation would be broken by turning it on by default.</p>

<p>Normalisation is done on the fly, so the path is preserved in the configuration dialog and settings files as entered initially by the user.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>works as intended. It also restores parsing for KDevelop (and similar projects) when imported with the JSON importer (probably by reintroducing #a8d7c1bd2351d25faa47e9ba9c17b3d52d173579).</p>

<p>Question: should the source directory also be canonicalised?</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R32 KDevelop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7930" rel="noreferrer">https://phabricator.kde.org/D7930</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>plugins/cmake/cmakebuilddirchooser.cpp<br />
plugins/cmake/cmakecommitchangesjob.cpp<br />
plugins/cmake/cmakeimportjsonjob.cpp<br />
plugins/cmake/cmakemanager.cpp<br />
plugins/cmake/cmakemodelitems.cpp<br />
plugins/cmake/cmakeserverimportjob.cpp<br />
plugins/cmake/cmakeutils.cpp<br />
plugins/cmake/cmakeutils.h<br />
plugins/cmake/settings/cmakepreferences.cpp</div></div></div><br /><div><strong>To: </strong>rjvbb, KDevelop<br /><strong>Cc: </strong>kdevelop-devel, geetamc, Pilzschaf, akshaydeo, surgenight, arrowdodger<br /></div>