[proxy,modules] generate pkg-config files for modules

This commit is contained in:
Armin Novak
2025-09-11 07:16:23 +02:00
committed by akallabeth
parent abdd85bcbd
commit a7b7474742
5 changed files with 49 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
macro(generate_proxy_module_config)
if(NOT BUILD_SHARED_LIBS)
string(REPLACE "-" "_" PROJECT_SHORT_NAME_UNDERSCORE ${PROJECT_NAME})
string(REPLACE "proxy_" "" PROJECT_SHORT_NAME_UNDERSCORE ${PROJECT_SHORT_NAME_UNDERSCORE})
string(REPLACE "_plugin" "" PROJECT_SHORT_NAME_UNDERSCORE ${PROJECT_SHORT_NAME_UNDERSCORE})
set(PROJECT_LIBRARY_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
include(pkg-config-install-prefix)
cleaning_configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../freerdp-proxy-module.pc.in
${CMAKE_CURRENT_BINARY_DIR}/freerdp-${PROJECT_NAME}${FREERDP_VERSION_MAJOR}.pc @ONLY
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-${PROJECT_NAME}${FREERDP_VERSION_MAJOR}.pc
DESTINATION ${PKG_CONFIG_PC_INSTALL_DIR}
)
endif()
endmacro()

View File

@@ -44,3 +44,7 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}
target_link_libraries(${PROJECT_NAME} winpr freerdp)
installwithrpath(TARGETS ${PROJECT_NAME} DESTINATION ${FREERDP_PROXY_PLUGINDIR})
set(PROJECT_PC_REQUIRES_PRIVATE "winpr${FREERDP_API_VERSION} freerdp${FREERDP_API_VERSION}")
include(ProxyModuleConfig)
generate_proxy_module_config()

View File

@@ -44,3 +44,7 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}
target_link_libraries(${PROJECT_NAME} winpr)
installwithrpath(TARGETS ${PROJECT_NAME} DESTINATION ${FREERDP_PROXY_PLUGINDIR})
set(PROJECT_PC_REQUIRES_PRIVATE "winpr${FREERDP_API_VERSION}")
include(ProxyModuleConfig)
generate_proxy_module_config()

View File

@@ -43,3 +43,9 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}
target_link_libraries(${PROJECT_NAME} PRIVATE winpr freerdp freerdp-client freerdp-server freerdp-server-proxy)
installwithrpath(TARGETS ${PROJECT_NAME} DESTINATION ${FREERDP_PROXY_PLUGINDIR})
set(PROJECT_PC_REQUIRES_PRIVATE
"winpr${FREERDP_API_VERSION} freerdp${FREERDP_API_VERSION} freerdp-server${FREERDP_API_VERSION} freerdp-client${FREERDP_API_VERSION} freerdp-server-proxy${FREERDP_API_VERSION}"
)
include(ProxyModuleConfig)
generate_proxy_module_config()

View File

@@ -0,0 +1,16 @@
prefix=@PKG_CONFIG_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/@WINPR_INCLUDE_DIR@
plugindir=${libdir}/@FREERDP_MAJOR_DIR@
proxy_plugindir=${plugindir}/proxy
Name: @PROJECT_NAME@
Description: FreeRDP proxy module
URL: http://www.freerdp.com/
Version: @PROJECT_VERSION@
Requires:
Requires.private: @PROJECT_PC_REQUIRES_PRIVATE@
Libs: -L${libdir}
Libs.private: -Wl,--whole-archive \${proxy_plugindir}/@PROJECT_LIBRARY_NAME@ -u @PROJECT_SHORT_NAME_UNDERSCORE@_proxy_module_entry_point -Wl,--no-whole-archive
Cflags: -I${includedir}