Hi there, In Qt 5 we currently generate IMPORTED_LOCATION_${Config} for the Debug or Release (or both, depending on platform), depending on how Qt is configured.
If both exist (on windows) and the caller uses CMAKE_BUILD_TYPE == Debug or Release, the correct location should be used. However, this doesn't account for having a different or empty CMAKE_BUILD_TYPE. If the Config doesn't match any available IMPORTED_LOCATION_${Config}, then it seems from my testing that the first one set is chosen. This means that for example if I have a PROFILING Configuration, which should use the release libraries, but Debug appears first in the generated Config file (as it does), then the wrong IMPORTED_LOCATION would be used. I have written a patch that changes the behavior to not create a IMPORTED_LOCATION_${Config} for both Debug and Release unless necessary. If only building Debug or only building Release, only the IMPORTED_LOCATION will be specified. If building debug_and_release, then IMPORTED_LOCATION will refer to the Release location, and IMPORTED_LOCATION_DEBUG will refer to the debug location. https://codereview.qt-project.org/#change,26116 I'm looking for some review of the approach, and some confirmation of how non-matching configurations are handled. Does it make sense? In particular, with this set-up, how would a downstream create a configuration which should use the debug libraries, but where they have built Qt with debug_and_release (the default on Windows)? Would they have to create another IMPORTED_LOCATION_Foo for all targets themselves? Thanks, Steve. -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers