Milestone 5: deliver embedded RDP sessions and lifecycle hardening

This commit is contained in:
Keith Smith
2026-03-03 18:59:26 -07:00
parent 230a401386
commit 36006bd4aa
2941 changed files with 724359 additions and 77 deletions

View File

@@ -0,0 +1,51 @@
set(UWAC_INCLUDE_DIR "include/uwac${UWAC_VERSION_MAJOR}")
if(NOT UWAC_FORCE_STATIC_BUILD)
# cmake package
export(PACKAGE uwac)
setfreerdpcmakeinstalldir(UWAC_CMAKE_INSTALL_DIR "uwac${UWAC_VERSION_MAJOR}")
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/uwacConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/uwacConfig.cmake
INSTALL_DESTINATION ${UWAC_CMAKE_INSTALL_DIR} PATH_VARS UWAC_INCLUDE_DIR
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/uwacConfigVersion.cmake VERSION ${UWAC_VERSION} COMPATIBILITY SameMajorVersion
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/uwacConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/uwacConfigVersion.cmake
DESTINATION ${UWAC_CMAKE_INSTALL_DIR}
)
install(EXPORT uwac DESTINATION ${UWAC_CMAKE_INSTALL_DIR})
endif()
set(UWAC_BUILD_CONFIG_LIST "")
get_cmake_property(res VARIABLES)
foreach(var ${res})
if(var MATCHES "^WITH_*|^BUILD_TESTING*|^UWAC_HAVE_*")
list(APPEND UWAC_BUILD_CONFIG_LIST "${var}=${${var}}")
endif()
endforeach()
string(REPLACE ";" " " UWAC_BUILD_CONFIG "${UWAC_BUILD_CONFIG_LIST}")
cleaning_configure_file(version.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/version.h)
cleaning_configure_file(buildflags.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/buildflags.h)
cleaning_configure_file(build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/build-config.h)
cleaning_configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/config.h)
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)
cleaning_configure_file(uwac.pc.in ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc @ONLY)
set(UWAC_INSTALL_INCLUDE_DIR ${UWAC_INCLUDE_DIR}/uwac)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc DESTINATION ${PKG_CONFIG_PC_INSTALL_DIR})
endif()

View File

@@ -0,0 +1,22 @@
#ifndef UWAC_BUILD_CONFIG_H
#define UWAC_BUILD_CONFIG_H
#define UWAC_DATA_PATH "${WINPR_DATA_PATH}"
#define UWAC_KEYMAP_PATH "${WINPR_KEYMAP_PATH}"
#define UWAC_PLUGIN_PATH "${WINPR_PLUGIN_PATH}"
#define UWAC_INSTALL_PREFIX "${WINPR_INSTALL_PREFIX}"
#define UWAC_LIBRARY_PATH "${WINPR_LIBRARY_PATH}"
#define UWAC_ADDIN_PATH "${WINPR_ADDIN_PATH}"
#define UWAC_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}"
#define UWAC_SHARED_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}"
#define UWAC_VENDOR_STRING "${VENDOR}"
#define UWAC_PRODUCT_STRING "${PRODUCT}"
#define UWAC_PROXY_PLUGINDIR "${WINPR_PROXY_PLUGINDIR}"
#endif /* UWAC_BUILD_CONFIG_H */

View File

@@ -0,0 +1,11 @@
#ifndef UWAC_BUILD_FLAGS_H
#define UWAC_BUILD_FLAGS_H
#define UWAC_CFLAGS "${CURRENT_C_FLAGS}"
#define UWAC_COMPILER_ID "${CMAKE_C_COMPILER_ID}"
#define UWAC_COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}"
#define UWAC_TARGET_ARCH "${TARGET_ARCH}"
#define UWAC_BUILD_CONFIG "${UWAC_BUILD_CONFIG}"
#define UWAC_BUILD_TYPE "${CURRENT_BUILD_CONFIG}"
#endif /* UWAC_BUILD_FLAGS_H */

View File

@@ -0,0 +1,12 @@
#ifndef UWAC_CONFIG_H
#define UWAC_CONFIG_H
/* Include files */
#cmakedefine UWAC_HAVE_TM_GMTOFF
#cmakedefine UWAC_HAVE_POLL_H
#cmakedefine UWAC_HAVE_SYSLOG_H
#cmakedefine UWAC_HAVE_JOURNALD_H
#cmakedefine UWAC_HAVE_PIXMAN_REGION
#cmakedefine UWAC_HAVE_STRERROR_R
#endif /* UWAC_CONFIG_H */

View File

@@ -0,0 +1,15 @@
prefix=@PKG_CONFIG_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/@UWAC_INCLUDE_DIR@
libs=-luwac@UWAC_VERSION_MAJOR@
Name: uwac@UWAC_API_VERSION@
Description: uwac: using wayland as a client
URL: http://www.freerdp.com/
Version: @UWAC_VERSION@
Requires:
Requires.private: @UWAC_PC_REQUIRES_PRIVATE@
Libs: -L${libdir} ${libs}
Libs.private: @UWAC_PC_LIBRARY_PRIVATE@
Cflags: -I${includedir}

View File

@@ -0,0 +1,9 @@
@PACKAGE_INIT@
set(UWAC_VERSION_MAJOR "@UWAC_VERSION_MAJOR@")
set(UWAC_VERSION_MINOR "@UWAC_VERSION_MINOR@")
set(UWAC_VERSION_REVISION "@UWAC_VERSION_REVISION@")
set_and_check(UWAC_INCLUDE_DIR "@PACKAGE_UWAC_INCLUDE_DIR@")
include("${CMAKE_CURRENT_LIST_DIR}/uwac.cmake")

View File

@@ -0,0 +1,32 @@
/**
* FreeRDP: A Remote Desktop Protocol Implementation
* Version includes
*
* Copyright 2021 Thincast Technologies GmbH
* Copyright 2021 Armin Novak <armin.novak@thincast.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UWAC_VERSION_H
#define UWAC_VERSION_H
#define UWAC_VERSION_MAJOR ${UWAC_VERSION_MAJOR}
#define UWAC_VERSION_MINOR ${UWAC_VERSION_MINOR}
#define UWAC_VERSION_REVISION ${UWAC_VERSION_REVISION}
#define UWAC_VERSION_SUFFIX "${UWAC_VERSION_SUFFIX}"
#define UWAC_API_VERSION "${UWAC_API_VERSION}"
#define UWAC_VERSION "${UWAC_VERSION}"
#define UWAC_VERSION_FULL "${UWAC_VERSION_FULL}"
#define UWAC_GIT_REVISION "${GIT_REVISION}"
#endif /* UWAC_VERSION_H */