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>