[CMake] target_link_libraries difficulties
Michael Jackson
mike.jackson at bluequartz.net
Thu Apr 1 15:05:52 EDT 2010
Not sure if this is recommended or not with CMake 2.8 BUT:
[mjackson at Ferb]$ cmake --help-command link_directories
cmake version 2.6-patch 4
------------------------------------------------------------------------------
SingleItem
link_directories
Specify directories in which the linker will look for libraries.
link_directories(directory1 directory2 ...)
Specify the paths in which the linker should search for
libraries.
The command will apply only to targets created after it is
called.
For historical reasons, relative paths given to this command are
passed to the linker unchanged (unlike many CMake commands which
interpret them relative to the current source directory).
set (CMAKE_BUILD_TYPE "Config-1")
link_directories ( ${SOME_SOURCE_DIR}/${CMAKE_BUILD_TYPE} )
include (${SOME_SOURCE_DIR}/${CMAKE_BUILD_TYPE}/Libraries.cmake)
add_executable(MyExe ${srcs})
target_link_libraries(MyExe ${MyLinkLibraries})
#--- Libraries.cmake file
set (MyLinkLibraries "Somelib1 SOmeLib2")
Thoughts/comments from the community?
___________________________________________________________
Mike Jackson www.bluequartz.net
Principal Software Engineer mike.jackson at bluequartz.net
BlueQuartz Software Dayton, Ohio
On Apr 1, 2010, at 2:52 PM, Benoit Thomas wrote:
> Hello,
>
> I'm trying to find a work around since target_link_libraries cannot
> be used per-configuration. I know that out-of-build could solve my
> problem, but my team is currently migrating from Visual Studio to
> cmake, so I need something which "feel" more like Visual Studio.
>
> My current project has around 20 configurations (debug, release,
> many many more, mostly combination of debug_something,
> release_something, etc.) and some of those configuration requires to
> include special external libraries, some not. Since I cannot
> classify all my configurations as debug or release, solution like
> target_link_libraries (target my_library debug|optimized) did not
> work.
>
> To put it simply, what I'm trying to achieve is something like:
>
> add_executable (exec)
> add_library (my_lib)
>
> set_target_properties (exec PROPERTIES COMPILE_DEFINITIONS_CONFIG1
> USING_MY_LIB)
> set_target_properties (exec PROPERTIES COMPILE_DEFINITIONS_CONFIG2
> NOT_USING_MY_LIB)
>
> # should only link the library under CONFIG1
> target_link_libraries (exec my_library)
>
> Thank you,
> Ben.
>
> _______________________________________________
> 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