Re: [CMake] ExternalProject_Add examples
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
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
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
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
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
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
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
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
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
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
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
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
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
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