On 30/06/2015 22:28, Stephen Kelly wrote:

Hi Steve,

thanks for looking at this.
Bill Somerville wrote:

Any ideas how I can control the ordering or reorder the
TARGET_INCLUDE_DIRECTORIES property?

  add_executable(hello main.cpp)
  target_link_libraries(hello Qt5::Widgets)
  target_include_directories(
    $<TARGET_PROPERTY:Qt5::Widgets,INTERFACE_INCLUDE_DIRECTORIES>
    ${otherIncludes}
  )
OK, so that doesn't work but the following does:

add_executable(hello main.cpp)
target_link_libraries(hello Qt5::Widgets Qt5::Network ${other_LIBRARIES})
target_include_directories( hello PRIVATE
$<TARGET_PROPERTY:Qt5::Widgets,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Network,INTERFACE_INCLUDE_DIRECTORIES>
    ${other_INCLUDE_DIRS}
)

Note that every top level Qt5 include directory property used has to be mentioned. This is pretty painful given the intent is simply to put ${other_INCLUDE_DIRS} at the end of the list. Also this is all due to a Mac issue where having MacPorts Qt4 installed causes it to be pulled in when some other MacPorts library is used, in this case FFTW3. Most of our developers work on Windows and Linux and are not going to know that this abomination is required to stop the Mac build breaking.

I see target_include_directories() has a BEFORE option but no AFTER option, I would have thought that is necessary to be the equivalent of he directory level include_directories() command.

It would also help to understand how the Qt5 include directories get added when they are not specified at all, i.e. when something like:

add_executable(hello main.cpp)
target_link_libraries(hello Qt5::Widgets)

is used alone.

Thanks,

Steve.

Regards
Bill.
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to