This recently submitted bug is probably related: http://public.kitware.com/Bug/view.php?id=10346
I have not had a chance to investigate yet, but it sounds like you are not alone in experiencing the "no download given" error when specifying a SOURCE_DIR... Keep an eye on that bug for future updates. David On Mon, Mar 1, 2010 at 3:35 AM, Luigi Calori <l.cal...@cineca.it> wrote: > Michael Wild wrote: > >> On 1. Mar, 2010, at 4:10 , Albert Z wrote: >> >> >> >>> I just found that unless I explicitly include ExternalProject.cmak in my >>> cmake build, cmake won't find command "ExternalProject_Add", which is >>> pretty >>> weird for me. >>> include(/usr/local/share/cmake-2.8/Modules/ExternalProject.cmake) >>> >>> >> >> Again: >> >> include(ExternalProject) >> >> will do... But then, the man-pages would tell you that. >> >> > The > > ExternalProject.cmake contains the function ExternalProject_Add ... so you > have to explicitly include it to have the function defined. > > > >> >>> And now the problem is that if I use the following cmake script to build >>> apr >>> >>> ExternalProject_Add(${LIB_NAME} >>> PREFIX /home/xxx/prj/trunk/external/apr/1.3.9 >>> SOURCE_DIR /home/xxx/prj/trunk/external/apr/1.3.9 >>> CONFIGURE_COMMAND /home/xxx/prj/trunk/external/apr/1.3.9/configure >>> --enable-static --disable-shared --disable-ipv6 >>> BINARY_DIR "/home/xxx/prj/trunk/external/apr/1.3.9/.libs/" >>> BUILD_COMMAND make all >>> ) >>> >>> >>> >> >> You most probably don't want to use hard-coded paths, but something >> relative to either CMAKE_SOURCE_DIR or CMAKE_BINARY_DIR. >> >> > Correct, otherwise you ' ll have to change your cmake code whan move the > stuff > > >> >> >>> CMake complains >>> >>> error: no download info for 'apr' -- please specify existing SOURCE_DIR >>> or >>> one of URL, CVS_REPOSITORY and CVS_MODULE, SVN_REPOSITORY or >>> DOWNLOAD_COMMAND >>> >>> I have already specified the SOURCE_DIR, and I do not want the library is >>> downloaded online. Is it a bug of CMake? Or I have done something wrong? >>> >>> >> >> Does SOURCE_DIR exist and contain the apr sources? >> >> If I was you, I'd prefer to specify a URL to a tar-ball on the local >> system (e.g. ${CMAKE_SOURCE_DIR}/external/apr-1.3.9.tgz), point SOURCE_DIR >> to ${CMAKE_BINARY_DIR}/external/apr and then let CMake to the rest. >> >> > If your source is alredy complete, try setting up DOWNLOAD_COMMAND "" > Anyway, I agree it would be probably better specifying a URL (either > local or remote) like > URL http://apache.fastbull.org/apr/apr-1.3.9.tar.gz and let him do: it > is cleaner and easier. > > Then if you have mods, you can specify a PATCH_COMMAND to apply your > patches > If apr configure must be run in-source, specify > > BUILD_IN_SOURCE 1 > > But in that case, if you do not have a download step, your source will be > cluttered, so another good reason > to specify a URL > > I' ll probably would add some configure based libs to my deps, If you are > interested, I' ll let you know. > > Luigi > > > > Also, I might be wrong, but are you building in-source? If so, please >> don't and read >> http://www.cmake.org/Wiki/CMake_FAQ#Out-of-source_build_trees. >> >> Michael >> >> >> >>> On Sun, Feb 28, 2010 at 5:45 PM, Albert Z <amzproj...@gmail.com> wrote: >>> >>> >>> >>>> Thanks, Luigi. However, I read the CMake 2.8 doc and tried to use >>>> function >>>> "ExternalProject_Add". When I ran cmake in the root of my project, I got >>>> the >>>> following error >>>> >>>> Unknown CMake command "ExternalProject_Add" >>>> >>>> I tried on both linux and mac and got the same error. And I am sure the >>>> version of the cmake is 2.8 >>>> >>>> Best, >>>> Meng >>>> >>>> >>>> On Sun, Feb 28, 2010 at 4:50 AM, Luigi Calori <l.cal...@cineca.it> >>>> wrote: >>>> >>>> >>>> >>>>> Albert Z wrote: >>>>> >>>>> >>>>> >>>>>> Hello, >>>>>> Our project now uses a bunch of 3rd party libraries such as apr, >>>>>> protobuf, libcurl, etc. Almost all of these libraries use autoconf ( >>>>>> configure.in <http://configure.in>) based build system. Since we have >>>>>> some modifications to most of the libraries, we have to integrate >>>>>> these >>>>>> libraries to our cmake build tree. What is the easiest way to >>>>>> integrate such >>>>>> a 3rd-party library to a cmake build with keeping the maximum >>>>>> portability? >>>>>> >>>>>> >>>>>> >>>>> Try to look at ExternalProject module >>>>> >>>>> http://www.cmake.org/cmake/help/cmake-2-8-docs.html#module:ExternalProject >>>>> and page 10 of >>>>> http://www.kitware.com/products/archive/kitware_quarterly1009.pdf >>>>> >>>>> I have used it (with some mods): it allow to automate download >>>>> pactch,build and install) >>>>> Anyway, curl have recently included a CMakeLists in its distribution. I >>>>> have used it even if had to apply some patches. >>>>> I am trying to collect some cmake build recipes for some libraries I >>>>> need. >>>>> If you are interested, grab the stuff at >>>>> bzr branch http://3d.cineca.it/storage/bazaar_repo/CmakeDeps/lib >>>>> >>>>> HTH >>>>> >>>>> Luigi >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> >>>>>> _______________________________________________ >>>>>> 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 >>>>> >>>>> 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 >>> >>> 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 > > 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 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