[CMake] cmake - library help

Doug Reiland dreiland at gmail.com
Thu May 27 13:47:43 EDT 2010


ok, I think I have this working, thanks.
I am building static version of "foo" as well.
Before, I could just archive in this composite object.
How is the best way to do that?

Here is my current cmake pseudo-code of what I have come up with?
Note, SOURCES has list of files adding to shared lib

set SOURCES-static ${SOURCES}
file(GLOB subdira-sources subdira/*.c)
list(APPEND SOURCES-static ${subdira-sources})

then
add_library(foo-static STATIC ${SOURCES-static})

I have several composite objects like this.Is there a better way?

Doug


On Thu, May 27, 2010 at 11:32 AM, Torri, Stephen CIV NSWCDD, W15
<stephen.torri at navy.mil> wrote:
>> From: cmake-bounces at cmake.org on behalf of Doug Reiland
>> Sent: Thu 5/27/2010 11:14 AM
>> To: cmake at cmake.org
>> Subject: [CMake] cmake - library help
>>
>> First, I am new to cmake and exploring converting our home grown build system.
>> How would I code this up in cmake
>> I have composite objects that need to be added to a share library
>> add_library(foo a.c b.c c.c)
>
> Use the keyword 'SHARED' to indicate you need shared library:
>
> add_library (foo SHARED a.c b.c c.c)
>
>> I also need x.o in the library AND x.o linked from:
>> subdir-a/aa.c subdir-a/bb.c
>
> If the subdirectories have a project named in a CMakeLists.txt you can just tell cmake to link the library in:
>
> So if subdir-a has a project like:
>
>  cmake_minimum_required(VERSION 2.6)
>  add_library (subA aa.c bb.c )
>
> then you can link subA inside the other project. For example say the 'foo' library needs to statically link in subA.
>
>  add_library ( foo SHARED a.c b.c c.c)
>  link_libraries ( subA )
>
> Stephen
> _______________________________________________
> 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