mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[CMake,libfreerdp] add pkg-config dependencies
This commit is contained in:
@@ -28,6 +28,22 @@ if(WITH_RESOURCE_VERSIONING)
|
||||
string(APPEND FREERDP_RESOURCE_ROOT "${FREERDP_VERSION_MAJOR}")
|
||||
endif()
|
||||
|
||||
set(FREERDP_PC_REQUIRES_PRIVATE "" CACHE INTERNAL "dependencies")
|
||||
macro(freerdp_pc_add_requires_private)
|
||||
foreach(_lib ${ARGN})
|
||||
list(APPEND FREERDP_PC_REQUIRES_PRIVATE " ${_lib}")
|
||||
endforeach()
|
||||
set(FREERDP_PC_REQUIRES_PRIVATE ${FREERDP_PC_REQUIRES_PRIVATE} CACHE INTERNAL "dependencies")
|
||||
endmacro()
|
||||
|
||||
set(FREERDP_PC_LIBRARY_PRIVATE "" CACHE INTERNAL "dependencies")
|
||||
macro(freerdp_pc_add_library_private)
|
||||
foreach(_lib ${ARGN})
|
||||
list(APPEND FREERDP_PC_LIBRARY_PRIVATE ${_lib})
|
||||
endforeach()
|
||||
set(FREERDP_PC_LIBRARY_PRIVATE ${FREERDP_PC_LIBRARY_PRIVATE} CACHE INTERNAL "dependencies")
|
||||
endmacro()
|
||||
|
||||
# CMake modules includes
|
||||
include(FindCairo)
|
||||
|
||||
@@ -121,6 +137,7 @@ if(WITH_FDK_AAC)
|
||||
endif()
|
||||
|
||||
add_compile_definitions(WITH_FDK_AAC)
|
||||
freerdp_pc_add_requires_private("fdk-aac")
|
||||
endif()
|
||||
|
||||
set(OPUS_DEFAULT OFF)
|
||||
@@ -151,13 +168,16 @@ if(WITH_OPUS)
|
||||
freerdp_include_directory_add(${OPUS_INCLUDE_DIRS})
|
||||
link_directories(${OPUS_LIBRARY_DIRS})
|
||||
endif()
|
||||
freerdp_pc_add_requires_private("opus")
|
||||
endif()
|
||||
|
||||
if(WITH_SWSCALE)
|
||||
find_package(FFmpeg REQUIRED COMPONENTS SWSCALE)
|
||||
freerdp_pc_add_requires_private("libswscale")
|
||||
endif(WITH_SWSCALE)
|
||||
if(WITH_CAIRO)
|
||||
find_package(Cairo REQUIRED)
|
||||
freerdp_pc_add_requires_private("cairo")
|
||||
endif(WITH_CAIRO)
|
||||
|
||||
# Prefer SWScale over Cairo, both at the same time are not possible.
|
||||
@@ -247,13 +267,15 @@ installwithrpath(
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "FreeRDP/libfreerdp")
|
||||
|
||||
include(pkg-config-install-prefix)
|
||||
set(FREERDP_REQUIRES_PRIVATE "")
|
||||
|
||||
if(WITH_SMARTCARD_EMULATE)
|
||||
string(APPEND FREERDP_REQUIRES_PRIVATE " zlib")
|
||||
list(APPEND FREERDP_PC_PRIVATE_LIBS "-lz")
|
||||
list(REMOVE_DUPLICATES FREERDP_PC_REQUIRES_PRIVATE)
|
||||
list(JOIN FREERDP_PC_REQUIRES_PRIVATE " " FREERDP_PC_REQUIRES_PRIVATE)
|
||||
|
||||
list(REMOVE_DUPLICATES FREERDP_PC_LIBRARY_PRIVATE)
|
||||
list(JOIN FREERDP_PC_LIBRARY_PRIVATE " -l" FREERDP_PC_LIBRARY_PRIVATE)
|
||||
if(FREERDP_PC_LIBRARY_PRIVATE)
|
||||
string(PREPEND FREERDP_PC_LIBRARY_PRIVATE "-l")
|
||||
endif()
|
||||
list(JOIN FREERDP_PC_PRIVATE_LIBS " " FREERDP_PC_PRIVATE_LIBS)
|
||||
cleaning_configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/freerdp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc @ONLY
|
||||
)
|
||||
@@ -262,8 +284,6 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc DES
|
||||
## cmake project
|
||||
export(PACKAGE freerdp)
|
||||
|
||||
setfreerdpcmakeinstalldir(FREERDP_CMAKE_INSTALL_DIR "FreeRDP${FREERDP_VERSION_MAJOR}")
|
||||
|
||||
configure_package_config_file(
|
||||
FreeRDPConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake
|
||||
INSTALL_DESTINATION ${FREERDP_CMAKE_INSTALL_DIR} PATH_VARS FREERDP_INCLUDE_DIR FREERDP_PLUGIN_PATH
|
||||
@@ -276,5 +296,3 @@ write_basic_package_version_file(
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
|
||||
DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}
|
||||
)
|
||||
|
||||
install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
|
||||
|
||||
@@ -68,35 +68,42 @@ if(WITH_DSP_FFMPEG)
|
||||
set(CODEC_SRCS ${CODEC_SRCS} dsp_ffmpeg.c dsp_ffmpeg.h)
|
||||
include_directories(SYSTEM ${FFMPEG_INCLUDE_DIRS})
|
||||
list(APPEND CODEC_LIBS ${FFMPEG_LIBRARIES})
|
||||
freerdp_pc_add_requires_private("libavfilter;libavformat;libavcodec;libavutil;libswresample")
|
||||
endif(WITH_DSP_FFMPEG)
|
||||
|
||||
if(WITH_SOXR)
|
||||
list(APPEND CODEC_LIBS ${SOXR_LIBRARIES})
|
||||
include_directories(SYSTEM ${SOXR_INCLUDE_DIR})
|
||||
freerdp_pc_add_requires_private("soxr")
|
||||
endif(WITH_SOXR)
|
||||
|
||||
if(GSM_FOUND)
|
||||
list(APPEND CODEC_LIBS ${GSM_LIBRARIES})
|
||||
include_directories(SYSTEM ${GSM_INCLUDE_DIRS})
|
||||
freerdp_pc_add_library_private("gsm")
|
||||
endif()
|
||||
|
||||
if(LAME_FOUND)
|
||||
list(APPEND CODEC_LIBS ${LAME_LIBRARIES})
|
||||
include_directories(SYSTEM ${LAME_INCLUDE_DIRS})
|
||||
freerdp_pc_add_requires_private("lame")
|
||||
endif()
|
||||
|
||||
if(WITH_FDK_AAC)
|
||||
list(APPEND CODEC_SRCS dsp_fdk_impl.c dsp_fdk_impl.h dsp_fdk_aac.c dsp_fdk_aac.h)
|
||||
freerdp_pc_add_requires_private("fdk-aac")
|
||||
endif()
|
||||
|
||||
if(FAAD2_FOUND)
|
||||
list(APPEND CODEC_LIBS ${FAAD2_LIBRARIES})
|
||||
include_directories(SYSTEM ${FAAD2_INCLUDE_DIRS})
|
||||
freerdp_pc_add_requires_private("faad2")
|
||||
endif()
|
||||
|
||||
if(FAAC_FOUND)
|
||||
list(APPEND CODEC_LIBS ${FAAC_LIBRARIES})
|
||||
include_directories(SYSTEM ${FAAC_INCLUDE_DIRS})
|
||||
freerdp_pc_add_requires_private("faac")
|
||||
endif()
|
||||
|
||||
if(WITH_OPENH264)
|
||||
@@ -104,6 +111,7 @@ if(WITH_OPENH264)
|
||||
include_directories(SYSTEM ${OPENH264_INCLUDE_DIR})
|
||||
if(NOT WITH_OPENH264_LOADING)
|
||||
list(APPEND CODEC_LIBS ${OPENH264_LIBRARIES})
|
||||
freerdp_pc_add_requires_private("openh264")
|
||||
endif(NOT WITH_OPENH264_LOADING)
|
||||
endif()
|
||||
|
||||
@@ -111,6 +119,7 @@ if(WITH_VIDEO_FFMPEG)
|
||||
set(CODEC_SRCS ${CODEC_SRCS} h264_ffmpeg.c)
|
||||
include_directories(SYSTEM ${FFMPEG_INCLUDE_DIRS})
|
||||
list(APPEND CODEC_LIBS ${FFMPEG_LIBRARIES})
|
||||
freerdp_pc_add_requires_private("libavfilter;libavformat;libavcodec;libavutil")
|
||||
endif()
|
||||
|
||||
if(WIN32 AND WITH_MEDIA_FOUNDATION)
|
||||
|
||||
@@ -163,6 +163,7 @@ if(WIN32)
|
||||
endif()
|
||||
|
||||
freerdp_library_add(${OPENSSL_LIBRARIES})
|
||||
freerdp_pc_add_requires_private("libssl")
|
||||
|
||||
if(BUILD_TESTING_INTERNAL OR BUILD_TESTING)
|
||||
add_subdirectory(test)
|
||||
|
||||
@@ -43,10 +43,12 @@ freerdp_module_add(
|
||||
freerdp_include_directory_add(${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
freerdp_library_add(${OPENSSL_LIBRARIES})
|
||||
freerdp_pc_add_requires_private("libssl")
|
||||
|
||||
if(MBEDTLS_FOUND)
|
||||
freerdp_include_directory_add(${MBEDTLS_INCLUDE_DIR})
|
||||
freerdp_library_add(${MBEDTLS_LIBRARIES})
|
||||
freerdp_pc_add_requires_private("mbedtls")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
|
||||
@@ -10,4 +10,5 @@ if(WITH_SMARTCARD_EMULATE)
|
||||
)
|
||||
freerdp_module_add(${EMULATE_SRCS})
|
||||
freerdp_library_add(ZLIB::ZLIB)
|
||||
freerdp_pc_add_requires_private("zlib")
|
||||
endif()
|
||||
|
||||
@@ -14,7 +14,7 @@ Description: FreeRDP: A Remote Desktop Protocol Implementation
|
||||
URL: http://www.freerdp.com/
|
||||
Version: @FREERDP_VERSION@
|
||||
Requires:
|
||||
Requires.private: winpr@FREERDP_API_VERSION@ @FREERDP_REQUIRES_PRIVATE@
|
||||
Requires.private: winpr@FREERDP_API_VERSION@ @FREERDP_PC_REQUIRES_PRIVATE@
|
||||
Libs: -L${libdir} ${libs}
|
||||
Libs.private: -ldl -lpthread @FREERDP_PC_PRIVATE_LIBS@
|
||||
Libs.private: -L${plugindir} -ldl -lpthread @FREERDP_PC_LIBRARY_PRIVATE@
|
||||
Cflags: -I${includedir}
|
||||
|
||||
@@ -56,6 +56,7 @@ endif()
|
||||
|
||||
if(WITH_X11 AND NOT WITHOUT_FREERDP_3x_DEPRECATED)
|
||||
find_package(X11 REQUIRED)
|
||||
freerdp_pc_add_requires_private("x11")
|
||||
|
||||
freerdp_definition_add(WITH_X11)
|
||||
freerdp_include_directory_add(${X11_INCLUDE_DIR})
|
||||
@@ -68,6 +69,7 @@ if(WITH_X11 AND NOT WITHOUT_FREERDP_3x_DEPRECATED)
|
||||
endif()
|
||||
|
||||
if(X11_Xkbfile_FOUND AND (NOT APPLE))
|
||||
freerdp_pc_add_requires_private("xkbfile")
|
||||
freerdp_definition_add(WITH_XKBFILE)
|
||||
freerdp_include_directory_add(${X11_Xkbfile_INCLUDE_PATH})
|
||||
list(APPEND SRCS ${XKBFILE_SRCS})
|
||||
|
||||
@@ -66,6 +66,7 @@ if(WITH_OPENCL)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/opencl)
|
||||
freerdp_include_directory_add(${OpenCL_INCLUDE_DIRS})
|
||||
freerdp_library_add(OpenCL::OpenCL)
|
||||
freerdp_pc_add_requires_private("OpenCL")
|
||||
endif()
|
||||
|
||||
set(PRIMITIVES_OPT_SRCS ${PRIMITIVES_NEON_SRCS} ${PRIMITIVES_SSE3_SRCS} ${PRIMITIVES_SSSE3_SRCS}
|
||||
|
||||
@@ -53,6 +53,7 @@ check_library_exists(m pow "" HAVE_LIB_M)
|
||||
|
||||
if(HAVE_LIB_M)
|
||||
freerdp_library_add(m)
|
||||
freerdp_pc_add_library_private("m")
|
||||
endif()
|
||||
|
||||
if(BUILD_TESTING_INTERNAL OR BUILD_TESTING)
|
||||
|
||||
Reference in New Issue
Block a user