[CMake] Linking static libraries into shared libs?
Brad King
brad.king at kitware.com
Mon Jun 19 13:15:21 EDT 2006
Daniel Sands wrote:
> I have some static libraries and need to link them into my CMAKE
> project's shared libraries. Is there a platform-independent way to
> specify this? What I want can be expressed by the following:
>
> g++ -shared -o libmylib.so my_obj_files.o -Wl,-whole-archive
> -lmy_static_lib -Wl,-no-whole-archive
>
> On SGI:
> cc -shared -o libmylib.so my_obj_files.o -Wl,-all -lmy_static_lib
> -Wl,-notall
CMake has no table mapping to these flags automatically, but if you set
them up yourself CMake will not change them. Any link library option
beginning with a "-" is left untouched, so you can do something like
SET(MYLIB my_static_lib)
IF("${CMAKE_SYSTEM}" MATCHES IRIX)
SET(MYLIB -Wl,-all -lmy_static_lib -Wl,-notall)
ENDIF("${CMAKE_SYSTEM}" MATCHES IRIX)
#...
TARGET_LINK_LIBRARIES(my_shared_lib ${MYLIB})
-Brad
More information about the CMake
mailing list