<div dir="ltr"><div><div><div><div>Hi Folks, <br><br></div>While working on the packaging of CTK for debian, we needed to be able to easily tell the build system which dependency should be expected on the system and which one should be externally build.<br>

<br></div>I propose to integrate a pull requests that will make usage of such option possible:<br><br>   <a href="https://github.com/jcfr/CTK/compare/418-support-use-system-option">https://github.com/jcfr/CTK/compare/418-support-use-system-option</a><br>

   <a href="https://github.com/jcfr/ExternalProjectsContrib/compare/418-support-use-system-option">https://github.com/jcfr/ExternalProjectsContrib/compare/418-support-use-system-option</a><br><br></div><div>... and will also simplify the management of external projects. <br>

<br><br>Indeed, the CTK external project are now more similar to the one used in Slicer, they both used a macro named "(ctk|slicer)CheckExternalProjectDependencies" that prints a neat informative text allowing to understand the state of an external project:<br>

<br><font size="1"><span style="font-family:courier new,monospace">[...]<br>-- Generating done<br>-- Build files have been written to: /home/jchris/Projects/CTK-Debug/ExternalProjectsContrib-proj<br>[...]<br>[100%] Built target ExternalProjectsContrib<br>

-- SuperBuild - First pass<br>-- SuperBuild - First pass - done<br>-- SuperBuild - Log4Qt[OPTIONAL]<br>-- SuperBuild - ZMQ[OPTIONAL]<br>-- SuperBuild - OpenIGTLink[OPTIONAL]<br>-- SuperBuild - XIP[OPTIONAL]<br>-- SuperBuild - ITK[OPTIONAL]<br>

-- SuperBuild - CTK => Requires VTK, PythonQt, DCMTK, QtSOAP, qxmlrpc, CTKData, QuaZip, qRestAPI, <br>-- SuperBuild -   VTK[OK]<br>-- SuperBuild -   PythonQt[OK]<br>-- SuperBuild -   DCMTK[OK] (SYSTEM)<br>[...]<br>-- SuperBuild -   QtSOAP[OK]<br>

-- SuperBuild -   qxmlrpc[OK]<br>-- SuperBuild -   CTKData[OK]<br>-- SuperBuild -   QuaZip[OK]<br>-- SuperBuild -   qRestAPI[OK]<br>-- SuperBuild - CTK[OK]<br>-- Configuring done<br>-- Generating done<br>-- Build files have been written to: /home/jchris/Projects/CTK-Debug</span></font><br>

<br></div><div><br></div>In case you have some external project files living in your fork of <a href="https://github.com/commontk/ExternalProjectsContrib">ExternalProjectsContrib</a>, I wrote a small migration guide to help you transition.<br>

<br></div>See <a href="http://www.commontk.org/index.php/Documentation/MigrationGuide/ExternalProject#Transitioning_to_ExternalProject_following_0c423189d">http://www.commontk.org/index.php/Documentation/MigrationGuide/ExternalProject#Transitioning_to_ExternalProject_following_0c423189d</a><br>

<div><div><div><div><div><div><div><div><br><br><br></div><div>Short term, the plan is to integrate these topics in the coming days.<br></div><div><br></div><div>Ultimately, the idea would be to have a very convenient set of CMake allowing to very simply manage "complex" external project based system. These files would leave in dedicated github repository that could easily be integrated in any project with the help of a "git subtree" command.<br>

<br></div><div>Thanks<br></div><div>Jc<br></div><div><br>-- <br>+1 919 869 8849<br>
</div></div></div></div></div></div></div></div></div>