[cmake] set SYSTEM for external includes

* add winpr_system_includ_directory_add macro for WinPR related external
  include directories
* set target property SYSTEM for SDL related targets
This commit is contained in:
akallabeth 2024-12-18 20:40:37 +01:00
parent 6111ac458c
commit a8b05717bf
No known key found for this signature in database
GPG Key ID: A49454A3FC909FD5
12 changed files with 57 additions and 31 deletions

View File

@ -16,9 +16,7 @@
# limitations under the License.
set(MODULE_NAME "sdl2-freerdp")
find_package(SDL2 REQUIRED COMPONENTS)
include_directories(SYSTEM ${SDL2_INCLUDE_DIR})
include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
find_package(SDL2 REQUIRED)
find_package(Threads REQUIRED)
@ -59,9 +57,11 @@ list(
)
if(NOT WITH_SDL_LINK_SHARED)
list(APPEND LIBS ${SDL2_STATIC_LIBRARIES})
list(APPEND LIBS SDL2::SDL2-static)
set_target_properties(SDL2::SDL2-static PROPERTIES SYSTEM TRUE)
else()
list(APPEND LIBS ${SDL2_LIBRARIES})
list(APPEND LIBS SDL2::SDL2)
set_target_properties(SDL2::SDL2 PROPERTIES SYSTEM TRUE)
endif()
addtargetwithresourcefile(${MODULE_NAME} TRUE "${PROJECT_VERSION}" SRCS)

View File

@ -22,9 +22,9 @@ set(SRCS
list(APPEND LIBS sdl2_client_res winpr)
if(NOT WITH_SDL_LINK_SHARED)
list(APPEND LIBS ${SDL2_STATIC_LIBRARIES})
list(APPEND LIBS SDL2::SDL2-static)
else()
list(APPEND LIBS ${SDL2_LIBRARIES})
list(APPEND LIBS SDL2::SDL2)
endif()
macro(find_sdl_component name)
@ -45,8 +45,10 @@ macro(find_sdl_component name)
else()
if(WITH_SDL_LINK_SHARED)
list(APPEND LIBS ${name}::${name})
set_target_properties(${name}::${name} PROPERTIES SYSTEM TRUE)
else()
list(APPEND LIBS ${name}::${name}-static)
set_target_properties(${name}::${name}-static PROPERTIES SYSTEM TRUE)
endif()
endif()
endmacro()

View File

@ -18,7 +18,7 @@
# limitations under the License.
set(MODULE_NAME "sdl3-freerdp")
find_package(SDL3 REQUIRED COMPONENTS)
find_package(SDL3 REQUIRED)
find_package(Threads REQUIRED)
@ -61,10 +61,11 @@ list(
)
if(NOT WITH_SDL_LINK_SHARED)
list(APPEND LIBS ${SDL3_STATIC_LIBRARIES})
list(APPEND LIBS SDL3::SDL3-static)
else()
list(APPEND LIBS ${SDL3_LIBRARIES})
list(APPEND LIBS SDL3::SDL3)
endif()
set_target_properties(SDL3::Headers PROPERTIES SYSTEM TRUE)
addtargetwithresourcefile(${MODULE_NAME} "${WIN32_GUI_FLAG}" "${PROJECT_VERSION}" SRCS)

View File

@ -48,8 +48,10 @@ macro(find_sdl_component name)
find_package(${name} REQUIRED)
if(WITH_SDL_LINK_SHARED)
list(APPEND LIBS ${name}::${name})
set_target_properties(${name}::${name}-shared PROPERTIES SYSTEM TRUE)
else()
list(APPEND LIBS ${name}::${name}-static)
set_target_properties(${name}::${name}-static PROPERTIES SYSTEM TRUE)
endif()
endmacro()

View File

@ -23,6 +23,7 @@ set(WINPR_SRCS "")
set(WINPR_LIBS_PRIVATE "")
set(WINPR_LIBS_PUBLIC "")
set(WINPR_INCLUDES "")
set(WINPR_SYSTEM_INCLUDES "")
set(WINPR_DEFINITIONS "")
set(WINPR_COMPILE_OPTIONS "")
set(WINPR_LINK_OPTIONS "")
@ -60,6 +61,24 @@ macro(winpr_include_directory_add)
endif()
endmacro()
macro(winpr_system_include_directory_add)
file(RELATIVE_PATH _relPath "${WINPR_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
foreach(_inc ${ARGN})
if(IS_ABSOLUTE ${_inc})
list(APPEND WINPR_SYSTEM_INCLUDES "${_inc}")
else()
if(_relPath)
list(APPEND WINPR_SYSTEM_INCLUDES "${_relPath}/${_inc}")
else()
list(APPEND WINPR_SYSTEM_INCLUDES "${_inc}")
endif()
endif()
endforeach()
if(_relPath)
set(WINPR_SYSTEM_INCLUDES ${WINPR_SYSTEM_INCLUDES} PARENT_SCOPE)
endif()
endmacro()
macro(winpr_library_add_private)
foreach(_lib ${ARGN})
list(APPEND WINPR_LIBS_PRIVATE "${_lib}")
@ -113,8 +132,8 @@ if(WITH_URIPARSER)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(uriparser REQUIRED liburiparser)
winpr_include_directory_add(${uriparser_INCLUDEDIR})
winpr_include_directory_add(${uriparser_INCLUDE_DIRS})
winpr_system_include_directory_add(${uriparser_INCLUDEDIR})
winpr_system_include_directory_add(${uriparser_INCLUDE_DIRS})
winpr_library_add_private(${uriparser_LIBRARIES})
endif()
add_compile_definitions("WITH_URIPARSER")
@ -197,6 +216,7 @@ list(REMOVE_DUPLICATES WINPR_COMPILE_OPTIONS)
list(REMOVE_DUPLICATES WINPR_LINK_OPTIONS)
list(REMOVE_DUPLICATES WINPR_LINK_DIRS)
list(REMOVE_DUPLICATES WINPR_INCLUDES)
list(REMOVE_DUPLICATES WINPR_SYSTEM_INCLUDES)
addtargetwithresourcefile(${MODULE_NAME} FALSE "${WINPR_VERSION}" WINPR_SRCS)
@ -218,6 +238,7 @@ else()
endif()
target_link_options(${MODULE_NAME} ${LINK_OPTS_MODE} ${WINPR_LINK_OPTIONS})
target_include_directories(${MODULE_NAME} PRIVATE ${WINPR_INCLUDES})
target_include_directories(${MODULE_NAME} SYSTEM PRIVATE ${WINPR_SYSTEM_INCLUDES})
target_include_directories(${MODULE_NAME} INTERFACE $<INSTALL_INTERFACE:include/winpr${WINPR_VERSION_MAJOR}>)
target_link_directories(${MODULE_NAME} PRIVATE ${WINPR_LINK_DIRS})
target_compile_options(${MODULE_NAME} PRIVATE ${WINPR_COMPILE_OPTIONS})

View File

@ -33,7 +33,7 @@ else()
elseif(NOT APPLE AND NOT WIN32)
find_package(ICU REQUIRED i18n uc io data)
list(APPEND CRT_FILES unicode_icu.c)
winpr_include_directory_add(${ICU_INCLUDE_DIRS})
winpr_system_include_directory_add(${ICU_INCLUDE_DIRS})
winpr_library_add_private(${ICU_LIBRARIES})
elseif(APPLE)
list(APPEND CRT_FILES unicode_apple.m)

View File

@ -32,12 +32,12 @@ endif()
winpr_module_add(${SRCS})
if(OPENSSL_FOUND)
winpr_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_system_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_library_add_private(${OPENSSL_LIBRARIES})
endif()
if(MBEDTLS_FOUND)
winpr_include_directory_add(${MBEDTLS_INCLUDE_DIR})
winpr_system_include_directory_add(${MBEDTLS_INCLUDE_DIR})
winpr_library_add_private(${MBEDTLS_LIBRARIES})
endif()

View File

@ -17,7 +17,7 @@
winpr_module_add(rpc.c)
winpr_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_system_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_library_add_private(${OPENSSL_LIBRARIES})

View File

@ -65,8 +65,8 @@ if(WITH_KRB5)
list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue.h)
winpr_include_directory_add(${KRB5_INCLUDEDIR})
winpr_include_directory_add(${KRB5_INCLUDE_DIRS})
winpr_system_include_directory_add(${KRB5_INCLUDEDIR})
winpr_system_include_directory_add(${KRB5_INCLUDE_DIRS})
winpr_library_add_private(${KRB5_LIBRARIES})
winpr_library_add_private(${KRB5_LIBRARY})
winpr_library_add_compile_options(${KRB5_CFLAGS})
@ -100,12 +100,12 @@ winpr_module_add(
)
if(OPENSSL_FOUND)
winpr_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_system_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_library_add_private(${OPENSSL_LIBRARIES})
endif()
if(MBEDTLS_FOUND)
winpr_include_directory_add(${MBEDTLS_INCLUDE_DIR})
winpr_system_include_directory_add(${MBEDTLS_INCLUDE_DIR})
winpr_library_add_private(${MBEDTLS_LIBRARIES})
endif()

View File

@ -32,7 +32,7 @@ winpr_module_add(
)
if(FREEBSD)
winpr_include_directory_add(${EPOLLSHIM_INCLUDE_DIR})
winpr_system_include_directory_add(${EPOLLSHIM_INCLUDE_DIR})
winpr_library_add_private(${EPOLLSHIM_LIBS})
endif()

View File

@ -42,7 +42,7 @@ endif()
option(WITH_TIMEZONE_ICU "Use ICU for improved timezone mapping" OFF)
if(WITH_TIMEZONE_ICU)
find_package(ICU COMPONENTS i18n uc REQUIRED)
winpr_include_directory_add(${ICU_INCLUDE_DIRS})
winpr_system_include_directory_add(${ICU_INCLUDE_DIRS})
winpr_library_add_private(${ICU_LIBRARIES})
winpr_definition_add(WITH_TIMEZONE_ICU)
else()

View File

@ -32,7 +32,7 @@ if(WITH_LODEPNG)
winpr_definition_add(WITH_LODEPNG)
set(WINPR_WITH_PNG ON CACHE BOOL "build cache")
winpr_include_directory_add(${lodepng_INCLUDE_DIRS})
winpr_system_include_directory_add(${lodepng_INCLUDE_DIRS})
winpr_library_add_private(${lodepng_LIBRARIES})
endif()
@ -41,7 +41,7 @@ if(WINPR_UTILS_IMAGE_PNG)
find_package(PNG REQUIRED)
set(WINPR_WITH_PNG ON CACHE BOOL "build cache")
winpr_include_directory_add(${PNG_INCLUDE_DIRS})
winpr_system_include_directory_add(${PNG_INCLUDE_DIRS})
winpr_library_add_private(${PNG_LIBRARIES})
endif()
@ -50,7 +50,7 @@ if(WINPR_UTILS_IMAGE_WEBP)
find_package(PkgConfig REQUIRED)
pkg_check_modules(WEBP libwebp REQUIRED)
winpr_include_directory_add(${WEBP_INCLUDE_DIRS})
winpr_system_include_directory_add(${WEBP_INCLUDE_DIRS})
winpr_library_add_private(${WEBP_LIBRARIES})
endif()
@ -59,7 +59,7 @@ if(WINPR_UTILS_IMAGE_JPEG)
find_package(PkgConfig REQUIRED)
pkg_check_modules(JPEG libjpeg REQUIRED)
winpr_include_directory_add(${JPEG_INCLUDE_DIRS})
winpr_system_include_directory_add(${JPEG_INCLUDE_DIRS})
winpr_library_add_private(${JPEG_LIBRARIES})
endif()
@ -91,7 +91,7 @@ if(WITH_LIBSYSTEMD)
find_package(libsystemd REQUIRED)
set(WINPR_HAVE_JOURNALD_H TRUE)
set(JOURNALD_SRCS wlog/JournaldAppender.c wlog/JournaldAppender.h)
winpr_include_directory_add(${LIBSYSTEMD_INCLUDE_DIR})
winpr_system_include_directory_add(${LIBSYSTEMD_INCLUDE_DIR})
winpr_library_add_private(${LIBSYSTEMD_LIBRARY})
else()
unset(WINPR_HAVE_JOURNALD_H)
@ -180,12 +180,12 @@ include(JsonDetect)
if(NOT WITH_JSON_DISABLED)
if(JSONC_FOUND AND NOT WITH_CJSON_REQUIRED)
winpr_library_add_private(${JSONC_LIBRARIES})
winpr_include_directory_add(${JSONC_INCLUDE_DIRS})
winpr_system_include_directory_add(${JSONC_INCLUDE_DIRS})
winpr_definition_add(WITH_JSONC)
set(WITH_WINPR_JSON ON CACHE INTERNAL "internal")
elseif(CJSON_FOUND)
winpr_library_add_private(${CJSON_LIBRARIES})
winpr_include_directory_add(${CJSON_INCLUDE_DIRS})
winpr_system_include_directory_add(${CJSON_INCLUDE_DIRS})
winpr_definition_add(WITH_CJSON)
set(WITH_WINPR_JSON ON CACHE INTERNAL "internal")
endif()
@ -198,12 +198,12 @@ winpr_module_add(${SRCS} ${COLLECTIONS_SRCS} ${WLOG_SRCS} ${ASN1_SRCS})
winpr_include_directory_add(".")
if(OPENSSL_FOUND)
winpr_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_system_include_directory_add(${OPENSSL_INCLUDE_DIR})
winpr_library_add_private(${OPENSSL_LIBRARIES})
endif()
if(MBEDTLS_FOUND)
winpr_include_directory_add(${MBEDTLS_INCLUDE_DIR})
winpr_system_include_directory_add(${MBEDTLS_INCLUDE_DIR})
winpr_library_add_private(${MBEDTLS_LIBRARIES})
endif()