<div dir="ltr"><div><div>In your executable project (which contains the application specific code, namely, an ITK application), you can &quot;super build&quot; ITK as a third party library. You could specify the corresponding module cmake variable (Module_&lt;your remote module name&gt; = ON )  to include the remote module when building ITK. You can refer to Slicer on this.<br>
</div></div><div><br></div><div>Or if the project size is not very big, you can also put in your executable code together in your remote module. They serve as great examples.  You can refer to LesionSizingToolkit[1],which is an ITK remote module. But yes, you need to build your remote module in the process of building ITK. </div>
<div><br></div><div>See more inline comments below.</div><div><br></div><div>[1] <a href="https://github.com/InsightSoftwareConsortium/LesionSizingToolkit">https://github.com/InsightSoftwareConsortium/LesionSizingToolkit</a><br>
</div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 7, 2014 at 2:32 PM, Luke Bloy <span dir="ltr">&lt;<a href="mailto:luke.bloy@gmail.com" target="_blank">luke.bloy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">I figured it would be more complicated then I thought :)<div>
<br></div><div>Here is my situation and perhaps someone can suggest a good path forward.</div><div><br></div><div>I&#39;m in the process of of reorganizing the code from my graduate thesis on diffusion imaging for use in my new lab and for my collaborators. This code is a mix of filters and executables etc. Ideally Id like to develop an ITK external module for the core filters and libraries and then another package for the executable code.</div>

<div><br></div><div>I like the idea of an external module to share with the community etc, but I need be able to build the executables as a stand alone project on production systems where I may or may not have access to the ITK build process.</div>

<div><br></div><div>I think the ideal situation would be to develop an external itk module (get it registered as a remote module), then in the executables project I would</div><div>1) include ITK</div><div>2) check if ITK was build with my external module  (is this possible at the moment???)</div>
</div></blockquote><div><b><br></b></div><div><b>&gt;&gt; Yes. You can check whether the module is included in your ITK build when using <a href="http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:find_package">find_package </a> cmake command with &quot;REQUIRED components&quot;, such as</b></div>
<div><b> find_package(ITK REQUIRED  ITKFoo ... )</b></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div>3) if not I would build it myself as an external project ( I assume this is how ITK handles remote modules)</div></div></blockquote><div><br></div><div><b>&gt;&gt; The remote module concept is the same as the external model in that the source code all sit in the source tree of ITK. The difference between the two is that  remote module can be automatically downloaded during the build process of ITK, while external module source code needs to be dropped in manually.</b></div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Does this even seem feasible? I am totally open to other ideas</div>
<div><br></div>
<div>Thanks</div><span class=""><font color="#888888"><div>Luke</div><div><br></div><div> </div></font></span></div><div class=""><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 7, 2014 at 10:43 AM, Xiaoxiao Liu <span dir="ltr">&lt;<a href="mailto:xiaoxiao.liu@kitware.com" target="_blank">xiaoxiao.liu@kitware.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>An ITK module follows a set of unified CMake APIs and  some default source code organization ( src, test, include folder ).  Each module uses the modular CMake macros defined in&quot; CMake/ITKModuleMacros.cmake&quot;, e.g.  itk_module() in the itk-module.cmake  sets up the module&#39;s name and its dependencies on other modules.</div>


<div><br></div><div>Before compiling each module, a global dependency DAG is sorted out based on the module dependencies specified in those itk-module.cmake files to decide the order of build.  </div><div><br></div><div>

The top level CMake code looks for itk-module.cmake files inside the source tree of ITK  at  the CMake configuration time. If you have a module outside the source tree, it won&#39;t find it. </div>
<div><div><br></div><div>I hope this helps.</div><div>Thanks.<br><div><br></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Tue, Jan 7, 2014 at 10:00 AM, Luke Bloy <span dir="ltr">&lt;<a href="mailto:luke.bloy@gmail.com" target="_blank">luke.bloy@gmail.com</a>&gt;</span> wrote:<br>


</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div><div dir="ltr">Am I wrong in thinking that this would only require access to some of the cmake functions that ITK supplies in the CMake directory?</div>


<div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jan 6, 2014 at 2:06 PM, Matt McCormick <span dir="ltr">&lt;<a href="mailto:matt.mccormick@kitware.com" target="_blank">matt.mccormick@kitware.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi Luke,<br>
<br>
Not at this time, but this would be a great feature to have.<br>
<br>
Thanks,<br>
Matt<br>
<div><div><br>
On Mon, Jan 6, 2014 at 1:38 PM, Luke Bloy &lt;<a href="mailto:luke.bloy@gmail.com" target="_blank">luke.bloy@gmail.com</a>&gt; wrote:<br>
&gt; Hi All,<br>
&gt;<br>
&gt; Is it possible to build external modules outside of the ITK source tree?<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Luke<br>
&gt;<br>
</div></div>&gt; _____________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
</blockquote></div><br></div>
</div></div><br>_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br></div></div>_______________________________________________<br>
Community mailing list<br>
<a href="mailto:Community@itk.org" target="_blank">Community@itk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/community" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/community</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><br></div><div><br></div>---------------------------------------------<br><b>Xiaoxiao Liu</b>, Ph.D.<div><div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse">R &amp; D Engineer</span></font></div>
<div><div><a href="http://www.kitware.com/" target="_blank">Kitware Inc</a>.</div></div><div><span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">Clifton Park, NY</span><div><div>Phone: <a href="tel:%28518%29%20881-4924" value="+15188814924" target="_blank">(518) 881-4924</a>  or  <span style="border-collapse:collapse;color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"><a href="tel:%28518%29%20371-3971%20x124" value="+15183713971" target="_blank">(518) 371-3971 x124</a></span></div>


<div><font face="Verdana, Arial, Helvetica, sans-serif"><span style="line-height:31px;font-size:x-small"><br></span></font></div></div></div></div></div>
</font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><br></div><div><br></div>---------------------------------------------<br><b>Xiaoxiao Liu</b>, Ph.D.<div><div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">R &amp; D Engineer</span></font></div>
<div><div><a href="http://www.kitware.com/" target="_blank">Kitware Inc</a>.</div></div><div><span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">Clifton Park, NY</span><div><div>Phone: (518) 881-4924  or  <span style="border-collapse:collapse;color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px">(518) 371-3971 x124</span></div>
<div><font face="Verdana, Arial, Helvetica, sans-serif"><span style="line-height:31px;font-size:x-small"><br></span></font></div></div></div></div></div>
</div></div>