[CMake] How to integrate autoconf based library into my cmake build tree
Michael Wild
themiwi at gmail.com
Mon Mar 1 01:02:13 EST 2010
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.
> 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.
> 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.
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 <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
>>>
>>
>>
> _______________________________________________
> 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
More information about the CMake
mailing list