CMake build: export less generic public includes

Do not put every plugin's and lib's source folder into public includes.
We require includes of the style <somelib/foo.h> and <someplugin/bar.h>
if someone depends on somelib or someplugin.

Change-Id: I3a9f200b7c3879cf431b00a1bab4a70f7aa0a9ec
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Eike Ziller
2020-04-23 11:00:30 +02:00
parent aad05dde54
commit ae080facf5
10 changed files with 25 additions and 12 deletions

View File

@@ -496,11 +496,11 @@ function(add_qtc_library name)
file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(${name} target_include_directories(${name}
PRIVATE ${_arg_INCLUDES} PRIVATE
PUBLIC ${_arg_INCLUDES}
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>"
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>" "$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>"
) )
set_public_includes(${name} "${_arg_PUBLIC_INCLUDES}") set_public_includes(${name} "${_arg_PUBLIC_INCLUDES}")
@@ -755,10 +755,9 @@ function(add_qtc_plugin target_name)
${_arg_INCLUDES} ${_arg_INCLUDES}
"${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/src" "${CMAKE_BINARY_DIR}/src"
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>"
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>" "$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>"
) )
set_public_includes(${target_name} "${_arg_PUBLIC_INCLUDES}") set_public_includes(${target_name} "${_arg_PUBLIC_INCLUDES}")
@@ -886,7 +885,7 @@ function(extend_qtc_target target_name)
if (NOT IS_ABSOLUTE ${_arg_SOURCES_PREFIX}) if (NOT IS_ABSOLUTE ${_arg_SOURCES_PREFIX})
set(_arg_SOURCES_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_SOURCES_PREFIX}") set(_arg_SOURCES_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_SOURCES_PREFIX}")
endif() endif()
target_include_directories(${target_name} PUBLIC $<BUILD_INTERFACE:${_arg_SOURCES_PREFIX}>) target_include_directories(${target_name} PRIVATE $<BUILD_INTERFACE:${_arg_SOURCES_PREFIX}>)
set(_arg_SOURCES ${prefixed_sources}) set(_arg_SOURCES ${prefixed_sources})
endif() endif()

View File

@@ -8,6 +8,8 @@ add_qtc_library(ClangSupport
CLANG_RESOURCE_DIR="${IDE_LIBEXEC_PATH}/clang/lib/clang/${CLANG_VERSION}/include" CLANG_RESOURCE_DIR="${IDE_LIBEXEC_PATH}/clang/lib/clang/${CLANG_VERSION}/include"
CLANG_BINDIR="${IDE_LIBEXEC_PATH}/clang/bin" CLANG_BINDIR="${IDE_LIBEXEC_PATH}/clang/bin"
DEFINES CLANGSUPPORT_BUILD_LIB DEFINES CLANGSUPPORT_BUILD_LIB
PUBLIC_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
alivemessage.cpp alivemessage.h alivemessage.cpp alivemessage.h
annotationsmessage.cpp annotationsmessage.h annotationsmessage.cpp annotationsmessage.h

View File

@@ -3,6 +3,8 @@ add_qtc_library(Modeling
DEPENDS Qt5::Widgets Utils DEPENDS Qt5::Widgets Utils
PUBLIC_DEPENDS OptionalSvg PUBLIC_DEPENDS OptionalSvg
INCLUDES qtserialization/inc INCLUDES qtserialization/inc
PUBLIC_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
qmt/config/configcontroller.cpp qmt/config/configcontroller.h qmt/config/configcontroller.cpp qmt/config/configcontroller.h
qmt/config/sourcepos.cpp qmt/config/sourcepos.h qmt/config/sourcepos.cpp qmt/config/sourcepos.h

View File

@@ -4,7 +4,9 @@ add_qtc_library(Sqlite
SQLITE_ENABLE_UNLOCK_NOTIFY SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_UNLOCK_NOTIFY SQLITE_ENABLE_COLUMN_METADATA
BUILD_SQLITE_LIBRARY BUILD_SQLITE_LIBRARY
DEPENDS Qt5::Core Threads::Threads ${CMAKE_DL_LIBS} DEPENDS Qt5::Core Threads::Threads ${CMAKE_DL_LIBS}
PUBLIC_INCLUDES ../3rdparty/sqlite INCLUDES ../3rdparty/sqlite
PUBLIC_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
../3rdparty/sqlite/sqlite3.c ../3rdparty/sqlite/sqlite3.c
createtablesqlstatementbuilder.cpp createtablesqlstatementbuilder.h createtablesqlstatementbuilder.cpp createtablesqlstatementbuilder.h

View File

@@ -6,7 +6,8 @@ add_qtc_plugin(QmlDesigner
DESIGNER_CORE_LIBRARY DESIGNER_CORE_LIBRARY
IDE_LIBRARY_BASENAME=\"${IDE_LIBRARY_BASE_PATH}\" IDE_LIBRARY_BASENAME=\"${IDE_LIBRARY_BASE_PATH}\"
PUBLIC_INCLUDES PUBLIC_INCLUDES
${CMAKE_CURRENT_LIST_DIR}/designercore/include "${CMAKE_CURRENT_LIST_DIR}"
"${CMAKE_CURRENT_LIST_DIR}/designercore/include"
PLUGIN_DEPENDS PLUGIN_DEPENDS
Core ProjectExplorer QmlJSEditor QmakeProjectManager QmlProjectManager Core ProjectExplorer QmlJSEditor QmakeProjectManager QmlProjectManager
QtSupport TextEditor QtSupport TextEditor
@@ -155,6 +156,7 @@ extend_qtc_plugin(QmlDesigner
extend_qtc_plugin(QmlDesigner extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX ../../../share/qtcreator/qml/qmlpuppet/types SOURCES_PREFIX ../../../share/qtcreator/qml/qmlpuppet/types
PUBLIC_INCLUDES ../../../share/qtcreator/qml/qmlpuppet/types
SOURCES enumeration.h SOURCES enumeration.h
) )

View File

@@ -4,9 +4,11 @@ endif()
add_qtc_library(designerintegrationv2 STATIC add_qtc_library(designerintegrationv2 STATIC
DEPENDS Qt5::Designer Qt5::Widgets DEPENDS Qt5::Designer Qt5::Widgets
PUBLIC_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
formresizer.cpp formresizer.h formresizer.cpp formresizer.h
sizehandlerect.cpp sizehandlerect.h sizehandlerect.cpp sizehandlerect.h
widgethostconstants.h widgethostconstants.h
widgethost.cpp widgethost.h widgethost.cpp widgethost.h
) )

View File

@@ -18,6 +18,7 @@ add_qtc_library(shared_help STATIC
"${PLUGIN_SOURCE_DIR}" "${PLUGIN_SOURCE_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/shared_help_autogen/include${autogen_suffix}" "${CMAKE_CURRENT_BINARY_DIR}/shared_help_autogen/include${autogen_suffix}"
"${CMAKE_CURRENT_BINARY_DIR}/" "${CMAKE_CURRENT_BINARY_DIR}/"
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
bookmarkdialog.ui bookmarkdialog.ui
bookmarkmanager.cpp bookmarkmanager.h bookmarkmanager.cpp bookmarkmanager.h

View File

@@ -3,6 +3,7 @@ add_qtc_library(clangbackend_lib STATIC
PUBLIC_DEFINES CLANGSUPPORT_BUILD_LIB PUBLIC_DEFINES CLANGSUPPORT_BUILD_LIB
PUBLIC_INCLUDES PUBLIC_INCLUDES
${CLANG_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
clangasyncjob.h clangasyncjob.h
clangbackend_global.h clangbackend_global.h

View File

@@ -3,6 +3,7 @@ add_qtc_library(clangpchmanagerbackend_lib STATIC
PUBLIC_DEPENDS libclang PUBLIC_DEPENDS libclang
PUBLIC_DEFINES CLANGSUPPORT_BUILD_LIB PUBLIC_DEFINES CLANGSUPPORT_BUILD_LIB
PUBLIC_INCLUDES PUBLIC_INCLUDES
../../clangrefactoringbackend/source
${CLANG_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
SOURCES SOURCES
builddependenciesprovider.cpp builddependenciesprovider.h builddependenciesprovider.cpp builddependenciesprovider.h

View File

@@ -10,6 +10,7 @@ add_qtc_library(clangrefactoringbackend_lib STATIC
PUBLIC_INCLUDES PUBLIC_INCLUDES
${CLANG_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
"../../clangpchmanagerbackend/source" "../../clangpchmanagerbackend/source"
"${CMAKE_CURRENT_LIST_DIR}"
SOURCES SOURCES
clangquery.cpp clangquery.h clangquery.cpp clangquery.h
clangquerygatherer.cpp clangquerygatherer.h clangquerygatherer.cpp clangquerygatherer.h