mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
[CMake,winpr] add pkg-config dependencies
Depending on CMake variables add cmake required.private options
This commit is contained in:
@@ -51,6 +51,14 @@ if(NOT FREERDP_UNIFIED_BUILD)
|
|||||||
add_compile_definitions(NONAMELESSUNION)
|
add_compile_definitions(NONAMELESSUNION)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(WINPR_PC_REQUIRES_PRIVATE "" CACHE INTERNAL "dependencies")
|
||||||
|
macro(winpr_pc_add_requires_private)
|
||||||
|
foreach(_lib ${ARGN})
|
||||||
|
list(APPEND WINPR_PC_REQUIRES_PRIVATE ${_lib})
|
||||||
|
endforeach()
|
||||||
|
set(WINPR_PC_REQUIRES_PRIVATE ${WINPR_PC_REQUIRES_PRIVATE} CACHE INTERNAL "dependencies")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
if(WIN32 AND NOT UWP)
|
if(WIN32 AND NOT UWP)
|
||||||
set(NATIVE_SSPI ON)
|
set(NATIVE_SSPI ON)
|
||||||
endif()
|
endif()
|
||||||
@@ -294,6 +302,7 @@ endif()
|
|||||||
|
|
||||||
if(WITH_OPENSSL AND OPENSSL_FOUND)
|
if(WITH_OPENSSL AND OPENSSL_FOUND)
|
||||||
add_compile_definitions("WITH_OPENSSL")
|
add_compile_definitions("WITH_OPENSSL")
|
||||||
|
winpr_pc_add_requires_private("libssl")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_MBEDTLS AND MBEDTLS_FOUND)
|
if(WITH_MBEDTLS AND MBEDTLS_FOUND)
|
||||||
@@ -331,6 +340,9 @@ set(WINPR_INCLUDE_DIR "include/winpr${WINPR_VERSION_MAJOR}")
|
|||||||
|
|
||||||
add_subdirectory(libwinpr)
|
add_subdirectory(libwinpr)
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES WINPR_PC_REQUIRES_PRIVATE)
|
||||||
|
list(JOIN WINPR_PC_REQUIRES_PRIVATE " " WINPR_PC_REQUIRES_PRIVATE)
|
||||||
|
|
||||||
if(WITH_WINPR_TOOLS)
|
if(WITH_WINPR_TOOLS)
|
||||||
add_subdirectory(tools)
|
add_subdirectory(tools)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ if(WITH_URIPARSER)
|
|||||||
winpr_library_add_private(${uriparser_LIBRARIES})
|
winpr_library_add_private(${uriparser_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
add_compile_definitions("WITH_URIPARSER")
|
add_compile_definitions("WITH_URIPARSER")
|
||||||
|
winpr_pc_add_requires_private("liburiparser")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT IOS)
|
if(NOT IOS)
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ else()
|
|||||||
list(APPEND CRT_FILES unicode_android.c)
|
list(APPEND CRT_FILES unicode_android.c)
|
||||||
elseif(NOT APPLE AND NOT WIN32)
|
elseif(NOT APPLE AND NOT WIN32)
|
||||||
find_package(ICU REQUIRED i18n uc io data)
|
find_package(ICU REQUIRED i18n uc io data)
|
||||||
|
winpr_pc_add_requires_private("icu-uc")
|
||||||
|
winpr_pc_add_requires_private("icu-io")
|
||||||
|
winpr_pc_add_requires_private("icu-i18n")
|
||||||
list(APPEND CRT_FILES unicode_icu.c)
|
list(APPEND CRT_FILES unicode_icu.c)
|
||||||
winpr_system_include_directory_add(${ICU_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${ICU_INCLUDE_DIRS})
|
||||||
winpr_library_add_private(${ICU_LIBRARIES})
|
winpr_library_add_private(${ICU_LIBRARIES})
|
||||||
|
|||||||
@@ -77,9 +77,11 @@ if(WITH_KRB5)
|
|||||||
|
|
||||||
if(KRB5_FLAVOUR STREQUAL "MIT")
|
if(KRB5_FLAVOUR STREQUAL "MIT")
|
||||||
winpr_definition_add(WITH_KRB5_MIT)
|
winpr_definition_add(WITH_KRB5_MIT)
|
||||||
|
winpr_pc_add_requires_private("mit-krb5")
|
||||||
list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue_mit.c)
|
list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue_mit.c)
|
||||||
elseif(KRB5_FLAVOUR STREQUAL "Heimdal")
|
elseif(KRB5_FLAVOUR STREQUAL "Heimdal")
|
||||||
winpr_definition_add(WITH_KRB5_HEIMDAL)
|
winpr_definition_add(WITH_KRB5_HEIMDAL)
|
||||||
|
winpr_pc_add_requires_private("krb5")
|
||||||
list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue_heimdal.c)
|
list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue_heimdal.c)
|
||||||
else()
|
else()
|
||||||
message(WARNING "Kerberos version not detected")
|
message(WARNING "Kerberos version not detected")
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ endif()
|
|||||||
option(WITH_TIMEZONE_ICU "Use ICU for improved timezone mapping" OFF)
|
option(WITH_TIMEZONE_ICU "Use ICU for improved timezone mapping" OFF)
|
||||||
if(WITH_TIMEZONE_ICU)
|
if(WITH_TIMEZONE_ICU)
|
||||||
find_package(ICU COMPONENTS i18n uc REQUIRED)
|
find_package(ICU COMPONENTS i18n uc REQUIRED)
|
||||||
|
winpr_pc_add_requires_private("icu-uc")
|
||||||
|
winpr_pc_add_requires_private("icu-i18n")
|
||||||
winpr_system_include_directory_add(${ICU_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${ICU_INCLUDE_DIRS})
|
||||||
winpr_library_add_private(${ICU_LIBRARIES})
|
winpr_library_add_private(${ICU_LIBRARIES})
|
||||||
winpr_definition_add(WITH_TIMEZONE_ICU)
|
winpr_definition_add(WITH_TIMEZONE_ICU)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ option(WINPR_UTILS_IMAGE_DIBv5 "[experimental] Add DIBv5 <--> BMP conversion sup
|
|||||||
option(WINPR_UTILS_IMAGE_PNG "Add PNG <--> BMP conversion support to clipboard" OFF)
|
option(WINPR_UTILS_IMAGE_PNG "Add PNG <--> BMP conversion support to clipboard" OFF)
|
||||||
if(WINPR_UTILS_IMAGE_PNG)
|
if(WINPR_UTILS_IMAGE_PNG)
|
||||||
find_package(PNG REQUIRED)
|
find_package(PNG REQUIRED)
|
||||||
|
winpr_pc_add_requires_private("libpng")
|
||||||
|
|
||||||
set(WINPR_WITH_PNG ON CACHE BOOL "build cache")
|
set(WINPR_WITH_PNG ON CACHE BOOL "build cache")
|
||||||
winpr_system_include_directory_add(${PNG_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${PNG_INCLUDE_DIRS})
|
||||||
@@ -55,6 +56,7 @@ option(WINPR_UTILS_IMAGE_WEBP "Add WebP <--> BMP conversion support to clipboard
|
|||||||
if(WINPR_UTILS_IMAGE_WEBP)
|
if(WINPR_UTILS_IMAGE_WEBP)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(WEBP libwebp REQUIRED)
|
pkg_check_modules(WEBP libwebp REQUIRED)
|
||||||
|
winpr_pc_add_requires_private("libwebp")
|
||||||
|
|
||||||
winpr_system_include_directory_add(${WEBP_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${WEBP_INCLUDE_DIRS})
|
||||||
winpr_library_add_private(${WEBP_LIBRARIES})
|
winpr_library_add_private(${WEBP_LIBRARIES})
|
||||||
@@ -64,6 +66,7 @@ option(WINPR_UTILS_IMAGE_JPEG "Add Jpeg <--> BMP conversion support to clipboard
|
|||||||
if(WINPR_UTILS_IMAGE_JPEG)
|
if(WINPR_UTILS_IMAGE_JPEG)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(JPEG libjpeg REQUIRED)
|
pkg_check_modules(JPEG libjpeg REQUIRED)
|
||||||
|
winpr_pc_add_requires_private("libjpeg")
|
||||||
|
|
||||||
winpr_system_include_directory_add(${JPEG_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${JPEG_INCLUDE_DIRS})
|
||||||
winpr_library_add_private(${JPEG_LIBRARIES})
|
winpr_library_add_private(${JPEG_LIBRARIES})
|
||||||
@@ -95,6 +98,7 @@ find_package(libsystemd)
|
|||||||
option(WITH_SYSTEMD "allows to export wLog to systemd journal" ${libsystemd_FOUND})
|
option(WITH_SYSTEMD "allows to export wLog to systemd journal" ${libsystemd_FOUND})
|
||||||
if(WITH_LIBSYSTEMD)
|
if(WITH_LIBSYSTEMD)
|
||||||
find_package(libsystemd REQUIRED)
|
find_package(libsystemd REQUIRED)
|
||||||
|
winpr_pc_add_requires_private("libsystemd")
|
||||||
set(WINPR_HAVE_JOURNALD_H TRUE)
|
set(WINPR_HAVE_JOURNALD_H TRUE)
|
||||||
set(JOURNALD_SRCS wlog/JournaldAppender.c wlog/JournaldAppender.h)
|
set(JOURNALD_SRCS wlog/JournaldAppender.c wlog/JournaldAppender.h)
|
||||||
winpr_system_include_directory_add(${LIBSYSTEMD_INCLUDE_DIR})
|
winpr_system_include_directory_add(${LIBSYSTEMD_INCLUDE_DIR})
|
||||||
@@ -186,11 +190,13 @@ include(JsonDetect)
|
|||||||
if(NOT WITH_JSON_DISABLED)
|
if(NOT WITH_JSON_DISABLED)
|
||||||
if(JSONC_FOUND AND NOT WITH_CJSON_REQUIRED)
|
if(JSONC_FOUND AND NOT WITH_CJSON_REQUIRED)
|
||||||
winpr_library_add_private(${JSONC_LIBRARIES})
|
winpr_library_add_private(${JSONC_LIBRARIES})
|
||||||
|
winpr_pc_add_requires_private("json-c")
|
||||||
winpr_system_include_directory_add(${JSONC_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${JSONC_INCLUDE_DIRS})
|
||||||
winpr_definition_add(WITH_JSONC)
|
winpr_definition_add(WITH_JSONC)
|
||||||
set(WITH_WINPR_JSON ON CACHE INTERNAL "internal")
|
set(WITH_WINPR_JSON ON CACHE INTERNAL "internal")
|
||||||
elseif(CJSON_FOUND)
|
elseif(CJSON_FOUND)
|
||||||
winpr_library_add_private(${CJSON_LIBRARIES})
|
winpr_library_add_private(${CJSON_LIBRARIES})
|
||||||
|
winpr_pc_add_requires_private("libcjson")
|
||||||
winpr_system_include_directory_add(${CJSON_INCLUDE_DIRS})
|
winpr_system_include_directory_add(${CJSON_INCLUDE_DIRS})
|
||||||
winpr_definition_add(WITH_CJSON)
|
winpr_definition_add(WITH_CJSON)
|
||||||
set(WITH_WINPR_JSON ON CACHE INTERNAL "internal")
|
set(WITH_WINPR_JSON ON CACHE INTERNAL "internal")
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ Description: WinPR: Windows Portable Runtime
|
|||||||
URL: http://www.freerdp.com/
|
URL: http://www.freerdp.com/
|
||||||
Version: @WINPR_VERSION@
|
Version: @WINPR_VERSION@
|
||||||
Requires:
|
Requires:
|
||||||
Requires.private: libssl
|
Requires.private: @WINPR_PC_REQUIRES_PRIVATE@
|
||||||
Libs: -L${libdir} ${libs}
|
Libs: -L${libdir} ${libs}
|
||||||
Libs.private: -ldl -lrt -lm -lpthread
|
Libs.private: -ldl -lrt -lm -lpthread
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
|||||||
Reference in New Issue
Block a user