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