CMake: Use target_include_directores more.

The include_directories documentation at
https://cmake.org/cmake/help/latest/command/include_directories.html
says:

"Note: Prefer the target_include_directories() command to add include
 directories to individual targets and optionally propagate/export them
 to dependents."

Switch from include_directories to target_include_directories in a bunch
of places.

Add "SYSTEM" to the remaining external include_directories calls in
order to minimize our compiler warning blast radius.
This commit is contained in:
Gerald Combs 2021-02-16 18:04:59 -08:00 committed by Wireshark GitLab Utility
parent 6bffbc9896
commit 4fd5224ecf
9 changed files with 49 additions and 56 deletions

View File

@ -994,7 +994,7 @@ message(STATUS "Linker flags: ${WS_LINK_FLAGS}")
if(APPLE AND EXISTS /usr/local/opt/gettext)
# GLib on macOS requires libintl. Homebrew installs gettext (and
# libintl) in /usr/local/opt/gettext
include_directories(/usr/local/opt/gettext/include)
include_directories(SYSTEM /usr/local/opt/gettext/include)
link_directories(/usr/local/opt/gettext/lib)
endif()
@ -1208,9 +1208,7 @@ endif()
# Include minizip include directories
if(MINIZIP_FOUND)
include_directories(
${MINIZIP_INCLUDE_DIRS}
)
include_directories(SYSTEM ${MINIZIP_INCLUDE_DIRS})
else()
set(MINIZIP_LIBRARY "")
endif()
@ -2577,10 +2575,7 @@ if(BUILD_sharkd)
add_executable(sharkd ${sharkd_FILES})
set_extra_executable_properties(sharkd "Executables")
target_link_libraries(sharkd ${sharkd_LIBS})
target_include_directories(sharkd SYSTEM
PUBLIC
${SPEEXDSP_INCLUDE_DIRS}
)
target_include_directories(sharkd SYSTEM PUBLIC ${SPEEXDSP_INCLUDE_DIRS})
install(TARGETS sharkd RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()

View File

@ -28,11 +28,6 @@ if(LUA_FOUND)
add_subdirectory(wslua)
endif()
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
add_custom_command(
OUTPUT ps.c
COMMAND ${PYTHON_EXECUTABLE}
@ -344,11 +339,14 @@ target_link_libraries(epan
target_include_directories(epan
INTERFACE
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/wireshark>
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/wireshark>
)
target_include_directories(epan SYSTEM PUBLIC ${GLIB2_INCLUDE_DIRS})
target_include_directories(epan
SYSTEM PUBLIC
${GLIB2_INCLUDE_DIRS}
)
target_include_directories(epan
SYSTEM PRIVATE
@ -362,6 +360,9 @@ target_include_directories(epan
${NGHTTP2_INCLUDE_DIRS}
${SMI_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS}
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
add_dependencies(epan lemon)

View File

@ -9,12 +9,6 @@
ADD_CUSTOM_CMAKE_INCLUDE()
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set(CRYPT_HEADER_FILES
dot11decrypt_debug.h
dot11decrypt_int.h
@ -63,6 +57,9 @@ add_library(crypt OBJECT
target_include_directories(crypt
SYSTEM PRIVATE
${GCRYPT_INCLUDE_DIRS}
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set_target_properties(crypt PROPERTIES

View File

@ -7,13 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/epan
${CMAKE_SOURCE_DIR}/tools/lemon
)
set(DFILTER_PUBLIC_HEADERS
dfilter.h
drange.h
@ -83,6 +76,14 @@ add_library(dfilter OBJECT
${DFILTER_FILES}
)
target_include_directories(dfilter
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/epan
${CMAKE_SOURCE_DIR}/tools/lemon
)
set_target_properties(dfilter PROPERTIES
FOLDER "Libs/epan/dfilter"
COMPILE_DEFINITIONS "WS_BUILD_DLL"

View File

@ -13,12 +13,6 @@ add_subdirectory(asn1 EXCLUDE_FROM_ALL)
add_subdirectory(dcerpc EXCLUDE_FROM_ALL)
add_subdirectory(pidl EXCLUDE_FROM_ALL)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/epan
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/packet-ncp2222.c
COMMAND ${PYTHON_EXECUTABLE}
@ -2065,6 +2059,10 @@ target_include_directories(dissectors
${SNAPPY_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS}
${ZSTD_INCLUDE_DIRS}
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/epan
)
set_target_properties(dissectors PROPERTIES

View File

@ -7,12 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/epan
)
set(FTYPE_PUBLIC_HEADERS
ftypes.h
)
@ -52,6 +46,13 @@ add_library(ftypes OBJECT
${FTYPE_FILES}
)
target_include_directories(ftypes
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/epan
)
set_target_properties(ftypes PROPERTIES
FOLDER "Libs/epan/ftypes"
COMPILE_DEFINITIONS "WS_BUILD_DLL"

View File

@ -7,11 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set(WMEM_PUBLIC_HEADERS
wmem.h
wmem_array.h
@ -75,6 +70,12 @@ add_library(wmem OBJECT
${WMEM_FILES}
)
target_include_directories(wmem
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set_target_properties(wmem PROPERTIES
FOLDER "Libs/epan/wmem"
COMPILE_DEFINITIONS "WS_BUILD_DLL"

View File

@ -7,11 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set(WSLUA_MODULES
${CMAKE_CURRENT_SOURCE_DIR}/lrexlib.c
${CMAKE_CURRENT_SOURCE_DIR}/lrexlib_glib.c
@ -149,6 +144,9 @@ add_library(wslua OBJECT
target_include_directories(wslua
SYSTEM PRIVATE
${LUA_INCLUDE_DIRS}
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set_target_properties(wslua PROPERTIES

View File

@ -628,11 +628,6 @@ set(WIRESHARK_QT_QRC
${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc
)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
set(CMAKE_AUTOMOC TRUE)
set(CMAKE_AUTOUIC TRUE)
set(CMAKE_AUTORCC TRUE)
@ -714,11 +709,17 @@ target_include_directories(qtui
${QT_INCLUDE_DIRS}
${WINSPARKLE_INCLUDE_DIRS}
${SPEEXDSP_INCLUDE_DIRS}
)
target_include_directories(qtui
SYSTEM PRIVATE
# Can't use imported target, linking object libraries for usage requirements
# requires CMake 3.12
${PCAP_INCLUDE_DIRS}
${GCRYPT_INCLUDE_DIRS}
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
target_compile_definitions(qtui