Dear Kent,

Thank you for pointing me to this project.
I did some searching for an explanation of the superbuild cmake
pattern but didn't find any text resources.

I am wondering if the superbuild pattern can cover the following case:

I.e. given 3 projects A, B and C where B depends on A and C depends on
B ... that means B will not build without A... and C not without B.
Is this covered by the superbuild pattern for C? Or asked differently
how can the superbuild of C control the build of B so that B finds the
product of A?

I guess this is controlled by the order how the external projects are
added. Right? In which file is this done in the NamiceExternalProject?

Furthermore, What happens if B is an Superbuild patter project already?



regards
Witold



On 25 October 2013 17:18, Williams, Norman K
<norman-k-willi...@uiowa.edu> wrote:
> There is our project here:
> https://github.com/BRAINSia/NAMICExternalProjects
>
> This is set up using the CMake 'SuperBuild' pattern first used with Slicer.
>
> It might be more complicated a setup than you have in mind, but it builds
> a large number of interdependent packages.
>
> It's structured as a two-phase setup:  First, all prerequisite packages
> are built, and then the actual project is built.  As NamicExternalProjects
> is set up as a functioning prototype, the 'top-level' CMake project is
> empty.
>
> Adding a new external project is a matter of copying
> SuperBuild/External_Template.cmake to
> SuperBuild/External_<your_project>.cmake and editing it to make it
> specific to that project. This mostly amounts to  setting its
> dependencies, where to download the source from, and which version to
> download.
>
> --
> Kent Williams norman-k-willi...@uiowa.edu
>
>
>
>
>
>
> On 10/24/13 3:35 AM, "Witold E Wolski" <wewol...@gmail.com> wrote:
>
>>Would also like to start configuring external dependencies with
>>
>>ExternalProject_Add
>>
>>So some examples would be pretty useful to me. So did you ended up
>>collecting some examples?
>>Sure, you posted in this links to repositories, but finding the
>>"ExternalProject_Add" in these huge projects with hundreds of
>>CMakeLists.txt is not easy if they are not in the top-level
>>CMakeLists.txt and they are not there.
>>
>>My dependencies are
>>
>>gtest - Cmake
>>glog - Cmake
>>tbb - configure make
>>vigra - Cmkae based
>>soci - Cmake based
>>pwiz
>>
>>
>>regards
>>
>>
>>
>>On 18 March 2012 00:24, Luigi Calori <l.cal...@cineca.it> wrote:
>>> On 17/03/2012 22.11, Marcus D. Hanwell wrote:
>>>>
>>>> On Sat, Mar 17, 2012 at 5:03 PM, Bill Lorensen<bill.loren...@gmail.com>
>>>> wrote:
>>>>>
>>>>> Folks,
>>>>>
>>>>> I've recently created a number of super builds using CMake's External
>>>>> Project mechanism. Each external project requires some sort of
>>>>> download, configuration, build and possibly install. The CMake defines
>>>>> needed to correctly access the results of the external project vary
>>>>> significantly. The trickiest part is find the proper download,
>>>>> configuration and CMake defines.
>>>>>
>>>>> For example, for the Point Cloud Library (http://pointclouds.org/) I
>>>>> created these external projects:
>>>>> VTK - git, cmake, make; VTK_DIR
>>>>> FLANN - zip, cmake, make install; FLANN_LIBRARY, FLANN_INCUDE_DIR
>>>>> Eigen - .tar.bz2,; EIGEN_INCLUDE_DIR
>>>>> Qhull - git, cmake, make;QHULL_LIBRARY,QHULL_INCLUDE_DIR
>>>>> Boost - .tar.gz, bootstrap.sh, b2; BOOST_ROOT
>>>>> GTest - .zip, cmake, make; GTEST_ROOT,GTEST_INCLUDE_DIR
>>>>>
>>>>> Slicer4 has many more.
>>>>>
>>>>> Should we start collecting sample ExternalProject_Add files for
>>>>> external projects?
>>>>
>>>> We have talked about doing this too (I have Eigen, Boost, GTest and
>>>> others for example). The standard CMake based projects hardly seem
>>>> worth it, but it depends on what you want to do with them I suppose.
>>>> For the work we are doing in chemistry we have been working on an
>>>> experimental superbuild that uses a common prefix in the build tree to
>>>> install to, and then all we need pass in is CMAKE_PREFIX_PATH - this
>>>> can make the logic significantly easier for dependent CMake projects
>>>> as it will always search within the prefix first.
>>>
>>> I did something similar, trying to collet all the build of stuff that I
>>>had
>>> to do in a single place powered by cmake
>>> Used  CMAKE_PREFIX_PATH and a single source place where all the builds
>>> download  and expand
>>>
>>> you can have a look at
>>>
>>> https://hpc-forge.cineca.it/svn/CmakeBuilds/lib/
>>>
>>> It's just for my use only, so really dirty and not properly checked, I'
>>>m
>>> also looking for good starting point for common stuff like Qt, boost and
>>> others
>>> (I' tried to collect in the folder  Packages the tricky part of building
>>> the components,) I' ve tried to define a dependency graph but it' still
>>> messy
>>>
>>> anyway I would really appreciate a place where to share good "recipies"
>>>for
>>> CMake building packeges
>>>
>>> Thanks
>>>                   Luigi
>>>
>>>
>>>
>>>
>>>
>>>
>>>>
>>>> The Qt external project was pretty tricky too, and we are using that
>>>> in several places along with smaller libraries like libxml2.
>>>>
>>>> Marcus
>>>> --
>>>>
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Please keep messages on-topic and check the CMake FAQ at:
>>>> http://www.cmake.org/Wiki/CMake_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.cmake.org/mailman/listinfo/cmake
>>>>
>>>
>>>
>>> --
>>> Luigi Calori
>>> SuperComputing Applications and Innovation Department
>>> CINECA - via Magnanelli, 6/3, 40033 Casalecchio di Reno (Bologna) -
>>>ITALY
>>> Tel: +39 051 6171509  Fax: +39 051 6132198
>>> hpc.cineca.it
>>>
>>>
>>> --
>>>
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the CMake FAQ at:
>>> http://www.cmake.org/Wiki/CMake_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.cmake.org/mailman/listinfo/cmake
>>
>>
>>
>>--
>>Witold Eryk Wolski
>>--
>>
>>Powered by www.kitware.com
>>
>>Please keep messages on-topic and check the CMake FAQ at:
>>http://www.cmake.org/Wiki/CMake_FAQ
>>
>>Kitware offers various services to support the CMake community. For more
>>information on each offering, please visit:
>>
>>CMake Support: http://cmake.org/cmake/help/support.html
>>CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>>Visit other Kitware open-source projects at
>>http://www.kitware.com/opensource/opensource.html
>>
>>Follow this link to subscribe/unsubscribe:
>>http://www.cmake.org/mailman/listinfo/cmake
>
>
>
> ________________________________
> Notice: This UI Health Care e-mail (including attachments) is covered by the 
> Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential 
> and may be legally privileged.  If you are not the intended recipient, you 
> are hereby notified that any retention, dissemination, distribution, or 
> copying of this communication is strictly prohibited.  Please reply to the 
> sender that you have received the message in error, then delete it.  Thank 
> you.
> ________________________________
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more 
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake



-- 
Witold Eryk Wolski
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to