diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2020-08-20 20:19:51 +0200 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2020-08-21 10:39:08 +0000 |
commit | 2555627b257027c798c6a43195ad8b07a019403e (patch) | |
tree | b710d45b166ffef2dc88e4faa11cf3048fff2959 /cmake | |
parent | c78f9352d233d99b911b81d63237e033b35c0ba1 (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>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtCreatorAPI.cmake | 14 |
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}") |