forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -128,13 +128,14 @@ function(add_qtc_library name)
|
|||||||
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
|
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}
|
target_include_directories(${name}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||||
PUBLIC
|
PUBLIC
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>"
|
"$<BUILD_INTERFACE:${public_build_interface_dir}>"
|
||||||
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>"
|
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
|
||||||
)
|
)
|
||||||
|
|
||||||
set(skip_translation OFF)
|
set(skip_translation OFF)
|
||||||
@@ -378,15 +379,16 @@ function(add_qtc_plugin target_name)
|
|||||||
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
|
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}
|
target_include_directories(${target_name}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
"${CMAKE_BINARY_DIR}/src"
|
"${CMAKE_BINARY_DIR}/src"
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||||
PUBLIC
|
PUBLIC
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>"
|
"$<BUILD_INTERFACE:${public_build_interface_dir}>"
|
||||||
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>"
|
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
|
||||||
)
|
)
|
||||||
|
|
||||||
set(plugin_dir "${IDE_PLUGIN_PATH}")
|
set(plugin_dir "${IDE_PLUGIN_PATH}")
|
||||||
|
Reference in New Issue
Block a user