[cmake] static build: populate private

in pkg-config files only add Requires.private and Libs.private if we
build a static library.
This commit is contained in:
Armin Novak
2025-09-11 09:56:25 +02:00
parent 85b864c799
commit d355082c32
18 changed files with 78 additions and 18 deletions

View File

@@ -102,6 +102,9 @@ if(WITH_FUSE)
freerdp_client_pc_add_requires_private("fuse3") freerdp_client_pc_add_requires_private("fuse3")
endif() endif()
freerdp_client_pc_add_requires_private("freerdp${FREERDP_API_VERSION}")
freerdp_client_pc_add_library_private("dl;pthread")
list(REMOVE_DUPLICATES FREERDP_CLIENT_PC_REQUIRES_PRIVATE) list(REMOVE_DUPLICATES FREERDP_CLIENT_PC_REQUIRES_PRIVATE)
list(JOIN FREERDP_CLIENT_PC_REQUIRES_PRIVATE " " FREERDP_CLIENT_PC_REQUIRES_PRIVATE) list(JOIN FREERDP_CLIENT_PC_REQUIRES_PRIVATE " " FREERDP_CLIENT_PC_REQUIRES_PRIVATE)
@@ -111,6 +114,12 @@ if(FREERDP_CLIENT_PC_LIBRARY_PRIVATE)
string(PREPEND FREERDP_CLIENT_PC_LIBRARY_PRIVATE "-l") string(PREPEND FREERDP_CLIENT_PC_LIBRARY_PRIVATE "-l")
endif() endif()
# Do not set Requires.Private if not a static build
if(BUILD_SHARED_LIBS)
set(FREERDP_CLIENT_PC_REQUIRES_PRIVATE "")
set(FREERDP_CLIENT_PC_LIBRARY_PRIVATE "")
endif()
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/freerdp-client.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/freerdp-client.pc.in

View File

@@ -9,7 +9,7 @@ Description: FreeRDP: A Remote Desktop Protocol Implementation
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @FREERDP_VERSION@ Version: @FREERDP_VERSION@
Requires: Requires:
Requires.private: @WINPR_PKG_CONFIG_FILENAME@ freerdp@FREERDP_VERSION_MAJOR@ @FREERDP_CLIENT_PC_REQUIRES_PRIVATE@ Requires.private: @FREERDP_CLIENT_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -ldl -lpthread @FREERDP_CLIENT_PC_LIBRARY_PRIVATE@ Libs.private: @FREERDP_CLIENT_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -268,6 +268,8 @@ set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "FreeRDP/libfreerdp")
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
freerdp_pc_add_requires_private(winpr${FREERDP_API_VERSION})
list(REMOVE_DUPLICATES FREERDP_PC_REQUIRES_PRIVATE) list(REMOVE_DUPLICATES FREERDP_PC_REQUIRES_PRIVATE)
list(JOIN FREERDP_PC_REQUIRES_PRIVATE " " FREERDP_PC_REQUIRES_PRIVATE) list(JOIN FREERDP_PC_REQUIRES_PRIVATE " " FREERDP_PC_REQUIRES_PRIVATE)
@@ -276,6 +278,13 @@ list(JOIN FREERDP_PC_LIBRARY_PRIVATE " -l" FREERDP_PC_LIBRARY_PRIVATE)
if(FREERDP_PC_LIBRARY_PRIVATE) if(FREERDP_PC_LIBRARY_PRIVATE)
string(PREPEND FREERDP_PC_LIBRARY_PRIVATE "-l") string(PREPEND FREERDP_PC_LIBRARY_PRIVATE "-l")
endif() endif()
# Do not set Requires.Private if not a static build
if(BUILD_SHARED_LIBS)
set(FREERDP_PC_REQUIRES_PRIVATE "")
set(FREERDP_PC_LIBRARY_PRIVATE "")
endif()
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/freerdp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc @ONLY ${CMAKE_CURRENT_SOURCE_DIR}/freerdp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc @ONLY
) )

View File

@@ -14,7 +14,7 @@ Description: FreeRDP: A Remote Desktop Protocol Implementation
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @FREERDP_VERSION@ Version: @FREERDP_VERSION@
Requires: Requires:
Requires.private: winpr@FREERDP_API_VERSION@ @FREERDP_PC_REQUIRES_PRIVATE@ Requires.private: @FREERDP_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -L${plugindir} -ldl -lpthread @FREERDP_PC_LIBRARY_PRIVATE@ Libs.private: -L${plugindir} @FREERDP_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -35,6 +35,11 @@ cleaning_configure_file(
cleaning_configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/rdtk/config.h) cleaning_configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/rdtk/config.h)
if(NOT RDTK_FORCE_STATIC_BUILD) if(NOT RDTK_FORCE_STATIC_BUILD)
# Do not set Requires.Private if not a static build
if(NOT BUILD_SHARED_LIBS)
set(RDTK_PC_REQUIRES_PRIVATE "winpr${WINPR_VERSION_MAJOR} libssl")
set(RDTK_PC_LIBRARY_PRIVATE "")
endif()
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/rdtk.pc.in ${CMAKE_CURRENT_BINARY_DIR}/rdtk${RDTK_VERSION_MAJOR}.pc @ONLY ${CMAKE_CURRENT_SOURCE_DIR}/rdtk.pc.in ${CMAKE_CURRENT_BINARY_DIR}/rdtk${RDTK_VERSION_MAJOR}.pc @ONLY
) )

View File

@@ -9,7 +9,7 @@ Description: rdtk:
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @RDTK_VERSION@ Version: @RDTK_VERSION@
Requires: Requires:
Requires.private: winpr@WINPR_VERSION_MAJOR@ Requires.private: @RDTK_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: Libs.private: @RDTK_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -77,6 +77,12 @@ foreach(FREERDP_SERVER ${FREERDP_EXTRA_SERVERS})
add_subdirectory(${FREERDP_SERVER}) add_subdirectory(${FREERDP_SERVER})
endforeach() endforeach()
# Do not set Requires.Private if not a static build
if(NOT BUILD_SHARED_LIBS)
set(FREERDP_SERVER_PC_REQUIRES_PRIVATE "freerdp${FREERDP_API_VERSION}")
set(FREERDP_SERVER_PC_LIBRARY_PRIVATE "-ldl -lpthread")
endif()
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/freerdp-server.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/freerdp-server.pc.in

View File

@@ -9,7 +9,7 @@ Description: FreeRDP: A Remote Desktop Protocol Implementation
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @FREERDP_VERSION@ Version: @FREERDP_VERSION@
Requires: Requires:
Requires.private: @WINPR_PKG_CONFIG_FILENAME@ freerdp@FREERDP_VERSION_MAJOR@ Requires.private: @FREERDP_SERVER_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -ldl -lpthread Libs.private: @FREERDP_SERVER_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -77,6 +77,12 @@ installwithrpath(
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/Proxy") set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/Proxy")
# pkg-config # pkg-config
# Do not set Requires.Private if not a static build
if(NOT BUILD_SHARED_LIBS)
set(FREERDP_PROXY_PC_REQUIRES_PRIVATE "freerdp-client${FREERDP_API_VERSION} freerdp-server${FREERDP_API_VERSION}")
set(FREERDP_PROXY_PC_LIBS_PRIVATE "-ldl -lpthread")
endif()
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/freerdp-proxy.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}${FREERDP_VERSION_MAJOR}.pc ${CMAKE_CURRENT_SOURCE_DIR}/freerdp-proxy.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}${FREERDP_VERSION_MAJOR}.pc

View File

@@ -9,8 +9,7 @@ Description: FreeRDP: A Remote Desktop Protocol Implementation
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @FREERDP_VERSION@ Version: @FREERDP_VERSION@
Requires: Requires:
Requires.private: @WINPR_PKG_CONFIG_FILENAME@ freerdp@FREERDP_VERSION_MAJOR@ freerdp-server@FREERDP_VERSION_MAJOR@ freerdp-client@FREERDP_VERSION_MAJOR@ Requires.private: @FREERDP_PROXY_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -ldl -lpthread Libs.private: @FREERDP_PROXY_PC_LIBS_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -161,6 +161,12 @@ endif()
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/shadow") set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/shadow")
# Do not set Requires.Private if not a static build
if(NOT BUILD_SHARED_LIBS)
set(FREERDP_SHADOW_PC_REQUIRES_PRIVATE "freerdp${FREERDP_API_VERSION}")
set(FREERDP_SHADOW_PC_LIBRARY_PRIVATE "-ldl -lpthread")
endif()
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/freerdp-shadow.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/freerdp-shadow.pc.in

View File

@@ -9,7 +9,7 @@ Description: FreeRDP: A Remote Desktop Protocol Implementation
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @FREERDP_VERSION@ Version: @FREERDP_VERSION@
Requires: Requires:
Requires.private: @WINPR_PKG_CONFIG_FILENAME@ freerdp@FREERDP_API_VERSION@ Requires.private: @FREERDP_SHADOW_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -ldl -lpthread Libs.private: @FREERDP_SHADOW_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -37,6 +37,12 @@ cleaning_configure_file(build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include
cleaning_configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/config.h) cleaning_configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/config.h)
if(NOT UWAC_FORCE_STATIC_BUILD) if(NOT UWAC_FORCE_STATIC_BUILD)
# Do not set Requires.Private if not a static build
if(NOT BUILD_SHARED_LIBS)
set(UWAC_PC_REQUIRES_PRIVATE "wayland-client xkbcommon freerdp${FREERDP_VERSION_MAJOR}")
set(UWAC_PC_LIBRARY_PRIVATE "")
endif()
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
cleaning_configure_file(uwac.pc.in ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc @ONLY) cleaning_configure_file(uwac.pc.in ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc @ONLY)

View File

@@ -9,7 +9,7 @@ Description: uwac: using wayland as a client
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @UWAC_VERSION@ Version: @UWAC_VERSION@
Requires: Requires:
Requires.private: wayland-client xkbcommon freerdp@FREERDP_VERSION_MAJOR@ Requires.private: @UWAC_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: Libs.private: @UWAC_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -343,6 +343,14 @@ add_subdirectory(libwinpr)
list(REMOVE_DUPLICATES WINPR_PC_REQUIRES_PRIVATE) list(REMOVE_DUPLICATES WINPR_PC_REQUIRES_PRIVATE)
list(JOIN WINPR_PC_REQUIRES_PRIVATE " " WINPR_PC_REQUIRES_PRIVATE) list(JOIN WINPR_PC_REQUIRES_PRIVATE " " WINPR_PC_REQUIRES_PRIVATE)
set(WINPR_PC_LIBRARY_PRIVATE "-ldl -lrt -lm -lpthread")
# Do not set Requires.Private if not a static build
if(BUILD_SHARED_LIBS)
set(WINPR_PC_REQUIRES_PRIVATE "")
set(WINPR_PC_LIBRARY_PRIVATE "")
endif()
if(WITH_WINPR_TOOLS) if(WITH_WINPR_TOOLS)
add_subdirectory(tools) add_subdirectory(tools)
endif() endif()

View File

@@ -118,6 +118,12 @@ if(WITH_WINPR_TOOLS_CLI)
add_subdirectory(hash-cli) add_subdirectory(hash-cli)
endif() endif()
# Do not set Requires.Private if not a static build
if(NOT BUILD_SHARED_LIBS)
set(WINPR_TOOLS_PC_REQUIRES_PRIVATE "winpr${WINPR_API_VERSION} libssl")
set(WINPR_TOOLS_PC_LIBRARY_PRIVATE "crypto")
endif()
include(pkg-config-install-prefix) include(pkg-config-install-prefix)
cleaning_configure_file( cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/winpr-tools.pc.in ${CMAKE_CURRENT_BINARY_DIR}/winpr-tools${WINPR_TOOLS_VERSION_MAJOR}.pc ${CMAKE_CURRENT_SOURCE_DIR}/winpr-tools.pc.in ${CMAKE_CURRENT_BINARY_DIR}/winpr-tools${WINPR_TOOLS_VERSION_MAJOR}.pc

View File

@@ -9,7 +9,7 @@ Description: WinPR: Windows Portable Runtime
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @WINPR_TOOLS_VERSION@ Version: @WINPR_TOOLS_VERSION@
Requires: Requires:
Requires.private: winpr@WINPR_VERSION_MAJOR@ libssl Requires.private: @WINPR_TOOLS_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -lcrypto Libs.private: @WINPR_TOOLS_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@@ -11,5 +11,5 @@ Version: @WINPR_VERSION@
Requires: Requires:
Requires.private: @WINPR_PC_REQUIRES_PRIVATE@ Requires.private: @WINPR_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs} Libs: -L${libdir} ${libs}
Libs.private: -ldl -lrt -lm -lpthread Libs.private: @WINPR_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir} Cflags: -I${includedir}