[client,sdl] allow side by side and replacement

Allow SDL2 and SDL3 client to be installed side by side as well as an
option to only install one and name it accordingly
This commit is contained in:
akallabeth 2024-05-16 09:36:27 +02:00
parent 23229859d7
commit 35859c81a1
No known key found for this signature in database
GPG Key ID: A49454A3FC909FD5
12 changed files with 40 additions and 24 deletions

View File

@ -32,9 +32,15 @@ if(FREERDP_VENDOR AND WITH_CLIENT)
endif()
endif()
cmake_dependent_option(WITH_CLIENT_SDL_VERSIONED "append sdl version to client binaries" OFF WITH_CLIENT_SDL OFF)
cmake_dependent_option(WITH_CLIENT_SDL2 "[experimental] build experimental SDL2 client" ON WITH_CLIENT_SDL OFF)
cmake_dependent_option(WITH_CLIENT_SDL3 "[experimental] build experimental SDL3 client" OFF WITH_CLIENT_SDL OFF)
if (WITH_CLIENT_SDL2 AND WITH_CLIENT_SDL3)
message("Building both, SDL2 and SDL3 clients, forcing WITH_CLIENT_SDL_VERSIONED=ON")
set(WITH_CLIENT_SDL_VERSIONED ON)
endif()
if (WITH_CLIENT_SDL2)
find_package(SDL2)
if (SDL2_FOUND)

View File

@ -24,7 +24,7 @@ if (NOT FREERDP_DEFAULT_PROJECT_VERSION)
set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0")
endif()
project(sdl-freerdp
project(sdl2-freerdp
LANGUAGES CXX
VERSION ${FREERDP_DEFAULT_PROJECT_VERSION}
)
@ -116,6 +116,14 @@ AddTargetWithResourceFile(${PROJECT_NAME} "${WIN32_GUI_FLAG}" "${PROJECT_VERSION
target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBS})
target_link_libraries(sdl2-prefs winpr)
set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER "Client/SDL")
if (NOT WITH_CLIENT_SDL_VERSIONED)
set_target_properties(${PROJECT_NAME}
PROPERTIES
OUTPUT_NAME "sdl-freerdp"
)
endif()
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)
add_subdirectory(man)

View File

@ -1,8 +1,8 @@
set(DEPS
sdl-freerdp-channels.1.xml
sdl-freerdp-config.1.xml
sdl-freerdp-examples.1.xml
sdl-freerdp-envvar.1.xml
sdl2-freerdp-channels.1.xml
sdl2-freerdp-config.1.xml
sdl2-freerdp-examples.1.xml
sdl2-freerdp-envvar.1.xml
)
generate_and_install_freerdp_man_from_xml(${PROJECT_NAME} "1" "${FREERDP_API_VERSION}" "${DEPS}")
generate_and_install_freerdp_man_from_xml(${PROJECT_NAME} "1" "${DEPS}")

View File

@ -3,9 +3,9 @@
PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY syntax SYSTEM "freerdp-argument.1.xml">
<!ENTITY config SYSTEM "sdl-freerdp-config.1.xml">
<!ENTITY envvar SYSTEM "sdl-freerdp-envvar.1.xml">
<!ENTITY examples SYSTEM "sdl-freerdp-examples.1.xml">
<!ENTITY config SYSTEM "sdl2-freerdp-config.1.xml">
<!ENTITY envvar SYSTEM "sdl2-freerdp-envvar.1.xml">
<!ENTITY examples SYSTEM "sdl2-freerdp-examples.1.xml">
]
>

View File

@ -116,6 +116,12 @@ AddTargetWithResourceFile(${PROJECT_NAME} "${WIN32_GUI_FLAG}" "${PROJECT_VERSION
target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBS})
target_link_libraries(sdl3-prefs winpr)
set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER "Client/SDL")
if (NOT WITH_CLIENT_SDL_VERSIONED)
set_target_properties(${PROJECT_NAME}
PROPERTIES
OUTPUT_NAME "sdl-freerdp"
)
endif()
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)
add_subdirectory(man)

View File

@ -1,8 +1,8 @@
set(DEPS
sdl3-freerdp-channels.1.xml
sdl3-freerdp-config.1.xml
sdl3-freerdp-examples.1.xml
sdl3-freerdp-envvar.1.xml
sdl3-freerdp-channels.1.xml
sdl3-freerdp-config.1.xml
sdl3-freerdp-examples.1.xml
sdl3-freerdp-envvar.1.xml
)
generate_and_install_freerdp_man_from_xml(${PROJECT_NAME} "1" "${FREERDP_API_VERSION}" "${DEPS}")
generate_and_install_freerdp_man_from_xml(${PROJECT_NAME} "1" "${DEPS}")

View File

@ -5,4 +5,4 @@ set(DEPS
xfreerdp-envvar.1.xml
)
generate_and_install_freerdp_man_from_xml("xfreerdp" "1" "${FREERDP_API_VERSION}" ${DEPS})
generate_and_install_freerdp_man_from_xml(${PROJECT_NAME} "1" ${DEPS})

View File

@ -19,16 +19,12 @@ function(generate_and_install_freerdp_man_from_template name_base section api)
endif()
endfunction()
function(generate_and_install_freerdp_man_from_xml name_base section api dependencies)
function(generate_and_install_freerdp_man_from_xml target section dependencies)
if(WITH_MANPAGES)
set(template "${name_base}.${section}")
if (WITH_BINARY_VERSIONING)
set(MANPAGE_NAME "${name_base}${api}")
set(manpage "${name_base}${api}.${section}")
else()
set(MANPAGE_NAME "${name_base}")
set(manpage "${name_base}.${section}")
endif()
get_target_property(name_base ${target} OUTPUT_NAME)
set(template "${target}.${section}")
set(MANPAGE_NAME "${name_base}")
set(manpage "${name_base}.${section}")
# We need the variable ${MAN_TODAY} to contain the current date in ISO
# format to replace it in the configure_file step.