Hi Perry, <br><br>Regarding the technical aspect, assuming you want to get write access to the repository, here are the steps:<br><br>  -> download QT 4.6  (see <a href="http://qt.nokia.com/downloads">http://qt.nokia.com/downloads</a>)<br>

<br>  -> create an account on github (upload public key + ask steve pieper to add you on the project). See <a href="http://github.com/pieper/CTK">http://github.com/pieper/CTK</a><br>  -> <span style="font-family: courier new,monospace;">git clone git@github.com:pieper/CTK.git</span><br>

<br>  -> create a build directory: <br>   mkdir CTK-superbuild <br>   cd CTK-superbuild<br><br>  -> <span style="font-family: courier new,monospace;">ccmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/perry/projects/qtsdk-2010.02/qt/bin/qmake  ../CTK</span><br>

<br>  -> Then you should be able to see the following. See attached image: ccmake_CTK.png<br><br><br><br>More details about CTK architecture:<br><br>CTK is a collection of librarie:<br>   CTKCore<br>   CTKWidgets<br>   CTKVisualizationVTKCore<br>

   CTKVisualizationVTKWidgets<br>   ...<br><br>Each one of these libraries have dependencies that could be either other CTK libraries. For example CTKWidgets depends on CTKCore, or third party library like: QT, VTK, PythonQt, etc ...<br>

<br>Each library is contained in its own directory:<br>  CTK/Libs/Core<br>  CTK/Libs/Widgets<br>  CTK/Libs/Visualization/VTK/Core<br>  CTK/Libs/Visualization/VTK/Widgets<br>  ....<br><br>The way to add a new library to the build process is:<br>

  - create a new directory. <br><br>For example:  <br>      -> CTK/Libs/Visualization/Vurtigo/Core<br>      -> CTK/Libs/Visualization/Vurtigo/Widgets<br><br><span style="font-family: times new roman,serif;">Create the fol</span><span style="font-family: courier new,monospace;"><span style="font-family: times new roman,serif;">lowing files in each one of these directories:</span><br>

  -> CMakeLists.txt</span><br>   ->  <span style="font-family: courier new,monospace;">target_libraries.cmake</span><br> <br>You could inspire from: <br>  <a href="http://github.com/pieper/CTK/blob/master/Libs/Widgets/CMakeLists.txt">http://github.com/pieper/CTK/blob/master/Libs/Widgets/CMakeLists.txt</a><br>

  <a href="http://github.com/pieper/CTK/blob/master/Libs/Widgets/target_libraries.cmake">http://github.com/pieper/CTK/blob/master/Libs/Widgets/target_libraries.cmake</a><br><br><br>Last, to enable your library, edit CTK/CMakeLists.txt and update the variable CTK_LIBS line 209.<br>

<br><br>As of today, we are following a "SVN like" workflow were people:<br>  -> git pull --rebase<br>  -> git push<br> See <a href="http://www.cmake.org/Wiki/CMake/Git#Rebase">http://www.cmake.org/Wiki/CMake/Git#Rebase</a><br>

<br>After the Hackfest, we will come up with a branchy workflow and will have a clear idea on how we will manage topic, branch, pull request, etc ...<br><br>########  The S U P E R B U I L D magic !  ######## <br><br>My new library depends on a third library ... how its working ? <br>

<br>Using the <span style="font-family: courier new,monospace;">target_libraries.cmake</span> file, the superbuild script is able to "know" which are the dependencies of your library. <br>Knowing that, it will be able to include or not the associated external project. <br>

<br>For example, looking at Libs/DICOM/Core/target_libraries.cmake<br><pre><div class="line" id="LC1"><font size="1">#</font></div><div class="line" id="LC2"><font size="1"># See CMake/ctkMacroGetTargetLibraries.cmake</font></div>

<div class="line" id="LC3"><font size="1"># </font></div><div class="line" id="LC4"><font size="1"># This file should list the libraries required to build the current CTK libraries</font></div><div class="line" id="LC5">
<font size="1"># </font></div>
<div class="line" id="LC6"><font size="1"><br></font></div><div class="line" id="LC7"><font size="1">SET(target_libraries</font></div><div class="line" id="LC8"><font size="1">  CTKCore</font></div><div class="line" id="LC9">

<font size="1">  DCMTK_LIBRARIES</font></div><div class="line" id="LC10"><font size="1">  )</font></div></pre><br>We can see then it depends on:<br>  CTKCore<br>  DCMTK_LIBRARIES<br><br>Then, in CTK/Superbuild.cmake, line 139, <br>

<br>[...]<br><pre><div class="line" id="LC139">SET(DCMTK_DEPENDS)</div><div class="line" id="LC140">ctkMacroShouldAddExternalProject(DCMTK_LIBRARIES add_project)</div><div class="line" id="LC141">IF(${add_project})</div>
<div class="line" id="LC142">
  IF(NOT DEFINED DCMTK_DIR)</div><div class="line" id="LC143">    SET(proj DCMTK)<br><div class="line" id="LC145">    SET(DCMTK_DEPENDS ${proj})</div><div class="line" id="LC146">    ExternalProject_Add(${proj}</div><div class="line" id="LC147">

        DOWNLOAD_COMMAND ""</div><div class="line" id="LC148">        CMAKE_GENERATOR ${gen}</div><div class="line" id="LC149">        SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/${proj}</div><div class="line" id="LC150">

        CMAKE_ARGS</div><div class="line" id="LC151">          ${ep_common_args}</div><div class="line" id="LC152">          -DDCMTK_BUILD_APPS:BOOL=ON # Build also dmctk tools (movescu, storescp, ...)</div><div class="line" id="LC153">

        )</div><div class="line" id="LC154">    SET(DCMTK_DIR ${ep_install_dir})</div>  ENDIF()<br>ENDIF()<br><br>[...]<br></div></pre><br>We notice the use of the macro <b>ctkMacroShouldAddExternalProject</b> which determine if an external project should be added based on dependency of the different CTK libraries.<br>

<br><br>######## Remarks on DCMTK ######## <br><br>For convenience, we added a copy of DCMTK project to CTK repository. See CTK/Utilities/DCMTK<br><br>This later one is also CMake-ified ! If you have contribution to do, it would be great if we could:<br>

  - update the CTK version of DCMTK<br>  - contribute back both our CMakefiles.txt and your improvement to the main DCMTK project ... <br><br><br>If you have any question, do not hesitate. <br><br>Thks<br>Jc<br><br><br><br>

<br><br><br><br><br><div class="gmail_quote">On Fri, May 7, 2010 at 7:59 AM, Steve Pieper <span dir="ltr"><<a href="mailto:pieper@bwh.harvard.edu">pieper@bwh.harvard.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Hi Perry, Stefan -<br>
<br>
Another idea - if you have specific user interface ideas it would be great to incorporate them into the wishlist for CTKWidgets.<br>
<br>
<a href="http://www.commontk.org/index.php/Documentation/WidgetPlans#Application_Specific_Widgets" target="_blank">http://www.commontk.org/index.php/Documentation/WidgetPlans#Application_Specific_Widgets</a><br>
<br>
Best,<br><font color="#888888">
Steve</font><div><div></div><div class="h5"><br>
<br>
On May/6/10 9:48 PM, Stephen Aylward wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi Perry,<br>
<br>
That seems like an outstanding direction to head.   It will provide<br>
useful functionality and test DCMTK/VTK/Qt capabilities in a new way.<br>
<br>
Have you had a chance to download the CTK code in the git repository?<br>
<br>
A good place to start might be to try to contribute a dashboard build<br>
to the CTK dashboard.   Are you familiar with CDash, our coding<br>
standards, and other software processes?<br>
<br>
Eventually you'll need to look to see if you can make use of any of<br>
CTK's current widgets or if you have duplicated any of its<br>
functionality already.  We can then discuss how to do the integration<br>
of our code bases and how to then port your application.<br>
<br>
s<br>
<br>
On Thu, May 6, 2010 at 3:25 PM, Perry Radau<<a href="mailto:perry.radau@gmail.com" target="_blank">perry.radau@gmail.com</a>>  wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hello all,<br>
I am new to the CTK project, and am interested in contributing to it<br>
after speaking with Will Schroeder and Steve Pieper.  Stefan Pintilie<br>
in our group has been developing a project (<a href="http://www.vurtigo.ca" target="_blank">www.vurtigo.ca</a>) that<br>
integrates DCMTK with a VTK based visualization platform for<br>
cardiovascular MR-guided applications.  This has been compiled on<br>
Ubuntu, OSX and Windows.  We have also been developing some<br>
improvements to the DCMTK reader to handle vendor specific tags,<br>
especially for cine studies.  Also, we have several example datasets<br>
that have already been placed in the public domain and plan to add<br>
more from other vendors.<br>
<br>
If some of these developments are of interest and fits with the CTK<br>
project, then we would appreciate some guidance about where to begin<br>
and how to contribute.  Unfortunately we won't be able to attend the<br>
upcoming hackfest.<br>
<br>
Cheers,<br>
Perry Radau<br>
_______________________________________________<br>
Ctk-developers mailing list<br>
<a href="mailto:Ctk-developers@commontk.org" target="_blank">Ctk-developers@commontk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers</a><br>
<br>
</blockquote>
<br>
<br>
<br>
</blockquote>
_______________________________________________<br>
Ctk-developers mailing list<br>
<a href="mailto:Ctk-developers@commontk.org" target="_blank">Ctk-developers@commontk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Phone: 1-518-836-2174<br>Ext: 304<br>