cyril_wobow wrote:
Unfortunately, there is a showstopper : when it comes to linking, tell me if I am wrong, there is no way to express which configuration type should link against which library. In particular, all my configuration types end up linking against the release version of my 3rd party libraries.

1st possible solution :
Is there a way to specify libraries to link with, using a XX_<CONFIG>-style variable ?

Use an IMPORTED library.  This is supported in CMake 2.6:

  add_library(xx_lib STATIC IMPORTED)
  set_target_properties(xx_lib PROPERTIES
    IMPORTED_CONFIGURATIONS "DEBUG;RELEASE"
    IMPORTED_LOCATION_GUIDEBUG ${XX_DEBUG}
    IMPORTED_LOCATION_GUIRELEASE ${XX_RELEASE}
    MAP_IMPORTED_CONFIG_GUIRELEASE RELEASE
    MAP_IMPORTED_CONFIG_CONSOLERELEASE RELEASE
    MAP_IMPORTED_CONFIG_GUIDEBUG DEBUG
    MAP_IMPORTED_CONFIG_CONSOLEDEBUG DEBUG
    )
  # ...
  target_link_libraries(myexe xx_lib)

See related documentation here:

http://www.cmake.org/Wiki/CMake_2.6_Notes#Importing_Targets
http://www.cmake.org/HTML/cmake-2.6.html#command:add_library
http://www.cmake.org/HTML/cmake-2.6.html#prop_tgt:IMPORTED_LOCATION_CONFIG
http://www.cmake.org/HTML/cmake-2.6.html#prop_tgt:MAP_IMPORTED_CONFIG_CONFIG

-Brad

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to