aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@qt.io>2020-08-20 20:19:51 +0200
committerAlessandro Portale <alessandro.portale@qt.io>2020-08-21 10:39:08 +0000
commit2555627b257027c798c6a43195ad8b07a019403e (patch)
treeb710d45b166ffef2dc88e4faa11cf3048fff2959
parentc78f9352d233d99b911b81d63237e033b35c0ba1 (diff)
CMake build system: Avoid duplicated include paths
Clean the paths before adding them to targets. This prevents the code completion from showing multiple identical entries when completing an #include. It also removes ~2MB from build.ninja. Task-number: QTCREATORBUG-24514 Change-Id: I19f3df400e65d8dfc4747415a8e14dae05d4b88c Reviewed-by: Cristian Adam <cristian.adam@qt.io>
-rw-r--r--cmake/QtCreatorAPI.cmake14
1 files changed, 8 insertions, 6 deletions
diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake
index 8030f17d66..4ba26250a3 100644
--- a/cmake/QtCreatorAPI.cmake
+++ b/cmake/QtCreatorAPI.cmake
@@ -128,13 +128,14 @@ function(add_qtc_library name)
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
)
- file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+ get_filename_component(public_build_interface_dir "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE)
+ file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/..")
target_include_directories(${name}
PRIVATE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
PUBLIC
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>"
- "$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>"
+ "$<BUILD_INTERFACE:${public_build_interface_dir}>"
+ "$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
)
set(skip_translation OFF)
@@ -378,15 +379,16 @@ function(add_qtc_plugin target_name)
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
)
- file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+ get_filename_component(public_build_interface_dir "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE)
+ file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/..")
target_include_directories(${target_name}
PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/src"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
PUBLIC
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>"
- "$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>"
+ "$<BUILD_INTERFACE:${public_build_interface_dir}>"
+ "$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
)
set(plugin_dir "${IDE_PLUGIN_PATH}")