[CMake] How to integrate autoconf based library into my cmake build tree

Albert Z amzproject at gmail.com
Sun Feb 28 22:10:22 EST 2010


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)

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
   )

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?

On Sun, Feb 28, 2010 at 5:45 PM, Albert Z <amzproject at 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.calori at 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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100228/38741002/attachment-0001.htm>


More information about the CMake mailing list