Re: [CMake] ExternalProject_Add examples

2013-10-28 Thread Yngve Inntjore Levinsen
Den 17. mars 2012 22:03, skrev Bill Lorensen:
 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?

 Bill

Hi,

For what it's worth, I would also mention a larger superbuild project at
CERN called LCGsoft:
http://svnweb.cern.ch/world/wsvn/lcgsoft/trunk/lcgcmake/

They built macros on top of ExternalProject_Add, see
cmake/modules/lcgsoft-macros.cmake. Maybe some parts of this design are
interesting to you. I have never used this myself, so I don't know the
details.

Cheers,
Yngve
--

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


Re: [CMake] ExternalProject_Add examples

2013-10-28 Thread Aaron Nowack
https://github.com/OpenChemistry/openchemistry/tree/master/cmake

David Cole pointed me to the project he is developing. There are a lot of
ExternalProject_Add examples, and good practices for super-build projects
in general. It was/is very helpful for me!


On Mon, Oct 28, 2013 at 2:05 AM, Yngve Inntjore Levinsen 
yngve.levin...@gmail.com wrote:

 Den 17. mars 2012 22:03, skrev Bill Lorensen:
  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?
 
  Bill

 Hi,

 For what it's worth, I would also mention a larger superbuild project at
 CERN called LCGsoft:
 http://svnweb.cern.ch/world/wsvn/lcgsoft/trunk/lcgcmake/

 They built macros on top of ExternalProject_Add, see
 cmake/modules/lcgsoft-macros.cmake. Maybe some parts of this design are
 interesting to you. I have never used this myself, so I don't know the
 details.

 Cheers,
 Yngve
 --

 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

--

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

Re: [CMake] ExternalProject_Add examples

2013-10-27 Thread Witold E Wolski
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 Lorensenbill.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 

Re: [CMake] ExternalProject_Add examples

2013-10-27 Thread Pau Garcia i Quiles
Hello,

ExternalProject_Add(A
...
)

ExternalProject_Add(B
DEPENDS A
...)

ExternalProject_Add(C
DEPENDS B
...
)

CMake will take care of the build order of those projects

Please check winstng for a complex project with a lot of interdependencies.
The documentation for ExternalProject and this article by David Cole also
help a lot:

http://www.kitware.com/media/html/BuildingExternalProjectsWithCMake2.8.html




On Sun, Oct 27, 2013 at 10:31 PM, Witold E Wolski wewol...@gmail.comwrote:

 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
  

Re: [CMake] ExternalProject_Add examples

2013-10-25 Thread Williams, Norman K
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 Lorensenbill.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 

Re: [CMake] ExternalProject_Add examples

2013-10-24 Thread Witold E Wolski
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 Lorensenbill.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


Re: [CMake] ExternalProject_Add examples

2013-10-24 Thread Fraser Hutchison
There's a StackOverflow answer I did a while back which gives an example 
of ExternalProject_Add for GTest: http://stackoverflow.com/a/9695234/2556117


It maybe needs updated, and I don't think I ever tried it on OSX, but it 
should hopefully be an OK starting point.  (If not - hack away at my 
answer!)


Cheers,
Fraser.


On 24/10/2013 09:35, Witold E Wolski 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 Lorensenbill.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





--

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


Re: [CMake] ExternalProject_Add examples

2013-10-24 Thread Pau Garcia i Quiles
Hello,

Take a look at winstng:

https://elpauer.assembla.com/code/winstng/git/nodes

It's being used for the Wt SDKs:

http://www.webtoolkit.eu/wt/blog/2013/10/21/binary_packages_for_visual_studio/


On Thu, Oct 24, 2013 at 10:35 AM, Witold E Wolski wewol...@gmail.comwrote:

 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



-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
--

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

Re: [CMake] ExternalProject_Add examples

2013-10-24 Thread Magnus Therning
On Thu, Oct 24, 2013 at 09:04:25PM +0100, Fraser Hutchison wrote:
 There's a StackOverflow answer I did a while back which gives an example of
 ExternalProject_Add for GTest: http://stackoverflow.com/a/9695234/2556117
 
 It maybe needs updated, and I don't think I ever tried it on OSX, but it
 should hopefully be an OK starting point.  (If not - hack away at my
 answer!)

There's also a recent thread of mine on this list that's at least
slightly related:

http://www.cmake.org/pipermail/cmake/2013-October/056086.html

/M

-- 
Magnus Therning  OpenPGP: 0xAB4DFBA4 
email: mag...@therning.org   jabber: mag...@therning.org
twitter: magthe   http://therning.org/magnus

Time is a great teacher, but unfortunately it kills all its pupils.
 -- Hector Louis Berlioz


pgpg6xzorizx3.pgp
Description: PGP signature
--

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

[CMake] ExternalProject_Add examples

2012-03-17 Thread Bill Lorensen
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?

Bill
-- 
Unpaid intern in BillsBasement at noware dot com
--

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


Re: [CMake] ExternalProject_Add examples

2012-03-17 Thread Pau Garcia i Quiles
Hi,

OpenSSL is very tricky on Windows. You'll find my solution (it requires a
two-stage process) at http://gitorious.org/winstng


On Sat, Mar 17, 2012 at 10:03 PM, Bill Lorensen bill.loren...@gmail.comwrote:

 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?

 Bill
 --
 Unpaid intern in BillsBasement at noware dot com
 --

 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




-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
--

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

Re: [CMake] ExternalProject_Add examples

2012-03-17 Thread Marcus D. Hanwell
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.

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


Re: [CMake] ExternalProject_Add examples

2012-03-17 Thread Bill Lorensen
I agree, most all super builds are tricky. Is it practical to collect
examples are are they so Project specific they won't be useful. For
example, the Slicer4 external;s have a bunch of Slicer-specific stuff
in them.

However, it is still frustrating to star a superbuild from scratch.
Maybe we can collect a skeleton for each external package.

Bill

On Sat, Mar 17, 2012 at 2:11 PM, Marcus D. Hanwell
marcus.hanw...@kitware.com 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.

 The Qt external project was pretty tricky too, and we are using that
 in several places along with smaller libraries like libxml2.

 Marcus



-- 
Unpaid intern in BillsBasement at noware dot com
--

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


Re: [CMake] ExternalProject_Add examples

2012-03-17 Thread Luigi Calori

On 17/03/2012 22.11, Marcus D. Hanwell wrote:

On Sat, Mar 17, 2012 at 5:03 PM, Bill Lorensenbill.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