[Ctk-developers] Introducing CTK_USE_SYSTEM_* option and a simpler external project description

Jean-Christophe Fillion-Robin jchris.fillionr at kitware.com
Wed Nov 20 18:31:03 EST 2013


Hi Folks,

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.

I propose to integrate a pull requests that will make usage of such option
possible:

   https://github.com/jcfr/CTK/compare/418-support-use-system-option

https://github.com/jcfr/ExternalProjectsContrib/compare/418-support-use-system-option

... and will also simplify the management of external projects.


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:

[...]
-- Generating done
-- Build files have been written to:
/home/jchris/Projects/CTK-Debug/ExternalProjectsContrib-proj
[...]
[100%] Built target ExternalProjectsContrib
-- SuperBuild - First pass
-- SuperBuild - First pass - done
-- SuperBuild - Log4Qt[OPTIONAL]
-- SuperBuild - ZMQ[OPTIONAL]
-- SuperBuild - OpenIGTLink[OPTIONAL]
-- SuperBuild - XIP[OPTIONAL]
-- SuperBuild - ITK[OPTIONAL]
-- SuperBuild - CTK => Requires VTK, PythonQt, DCMTK, QtSOAP, qxmlrpc,
CTKData, QuaZip, qRestAPI,
-- SuperBuild -   VTK[OK]
-- SuperBuild -   PythonQt[OK]
-- SuperBuild -   DCMTK[OK] (SYSTEM)
[...]
-- SuperBuild -   QtSOAP[OK]
-- SuperBuild -   qxmlrpc[OK]
-- SuperBuild -   CTKData[OK]
-- SuperBuild -   QuaZip[OK]
-- SuperBuild -   qRestAPI[OK]
-- SuperBuild - CTK[OK]
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jchris/Projects/CTK-Debug


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

See
http://www.commontk.org/index.php/Documentation/MigrationGuide/ExternalProject#Transitioning_to_ExternalProject_following_0c423189d



Short term, the plan is to integrate these topics in the coming days.

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.

Thanks
Jc

-- 
+1 919 869 8849
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ctk-developers/attachments/20131120/9a09fea9/attachment.html>


More information about the Ctk-developers mailing list