Fixed rdtk, uwac and winpr standalone builds

This commit is contained in:
akallabeth 2021-06-10 09:54:35 +02:00 committed by akallabeth
parent 81cef9251f
commit b453d5e40e
57 changed files with 835 additions and 526 deletions

View File

@ -2,8 +2,6 @@
# Generate .txt license file for CPack (PackageMaker requires a file extension) # Generate .txt license file for CPack (PackageMaker requires a file extension)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt @ONLY)
SET(CPACK_BINARY_ZIP "ON")
# Workaround to remove c++ compiler macros and defines for Eclipse. # Workaround to remove c++ compiler macros and defines for Eclipse.
# If c++ macros/defines are set __cplusplus is also set which causes # If c++ macros/defines are set __cplusplus is also set which causes
# problems when compiling freerdp/jni. To prevent this problem we set the macros to "". # problems when compiling freerdp/jni. To prevent this problem we set the macros to "".

View File

@ -20,7 +20,7 @@
cmake_minimum_required(VERSION 3.4) cmake_minimum_required(VERSION 3.4)
project(FreeRDP C CXX) project(FreeRDP C)
if(NOT DEFINED VENDOR) if(NOT DEFINED VENDOR)
set(VENDOR "FreeRDP" CACHE STRING "FreeRDP package vendor") set(VENDOR "FreeRDP" CACHE STRING "FreeRDP package vendor")
@ -67,7 +67,6 @@ include(ConfigOptions)
include(ComplexLibrary) include(ComplexLibrary)
include(FeatureSummary) include(FeatureSummary)
include(CheckCCompilerFlag) include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
include(GNUInstallDirsWrapper) include(GNUInstallDirsWrapper)
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
include(InstallFreeRDPMan) include(InstallFreeRDPMan)
@ -130,17 +129,9 @@ endif(CMAKE_CROSSCOMPILING)
find_program(CCACHE ccache) find_program(CCACHE ccache)
if(CCACHE AND WITH_CCACHE) if(CCACHE AND WITH_CCACHE)
if(CMAKE_VERSION VERSION_GREATER 3.3.2) if(NOT DEFINED CMAKE_C_COMPILER_LAUNCHER)
if(NOT DEFINED CMAKE_C_COMPILER_LAUNCHER) SET(CMAKE_C_COMPILER_LAUNCHER ${CCACHE})
SET(CMAKE_C_COMPILER_LAUNCHER ${CCACHE}) endif(NOT DEFINED CMAKE_C_COMPILER_LAUNCHER)
endif(NOT DEFINED CMAKE_C_COMPILER_LAUNCHER)
if(NOT DEFINED CMAKE_CXX_COMPILER_LAUNCHER)
SET(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE})
endif(NOT DEFINED CMAKE_CXX_COMPILER_LAUNCHER)
else()
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
endif()
endif(CCACHE AND WITH_CCACHE) endif(CCACHE AND WITH_CCACHE)
if(EXISTS "${CMAKE_SOURCE_DIR}/.source_version" ) if(EXISTS "${CMAKE_SOURCE_DIR}/.source_version" )
@ -170,13 +161,12 @@ if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release") set(CMAKE_BUILD_TYPE "Release")
endif() endif()
if(NOT DEFINED BUILD_SHARED_LIBS) set(LIB_DEFAULT ON)
if(IOS) if (IOS)
set(BUILD_SHARED_LIBS OFF) set(LIB_DEFAULT OFF)
else()
set(BUILD_SHARED_LIBS ON)
endif()
endif() endif()
option(BUILD_SHARED_LIBS "Build shared libraries" ${LIB_DEFAULT})
option(EXPORT_ALL_SYMBOLS "Export all symbols form library" OFF)
if(BUILD_TESTING) if(BUILD_TESTING)
set(EXPORT_ALL_SYMBOLS TRUE) set(EXPORT_ALL_SYMBOLS TRUE)
@ -254,12 +244,6 @@ if(CMAKE_COMPILER_IS_GNUCC)
else() else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
endif() endif()
else()
if(CMAKE_POSITION_INDEPENDENT_CODE)
if(${CMAKE_VERSION} VERSION_LESS 2.8.9)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
endif()
endif()
endif() endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
@ -276,10 +260,6 @@ if(CMAKE_COMPILER_IS_GNUCC)
if(Wno-deprecated-declarations) if(Wno-deprecated-declarations)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations")
endif() endif()
CHECK_CXX_COMPILER_FLAG(-Wno-deprecated-declarations Wno-deprecated-declarationsCXX)
if(Wno-deprecated-declarationsCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
endif()
if(NOT EXPORT_ALL_SYMBOLS) if(NOT EXPORT_ALL_SYMBOLS)
message(STATUS "GCC default symbol visibility: hidden") message(STATUS "GCC default symbol visibility: hidden")
@ -306,7 +286,6 @@ if(CMAKE_COMPILER_IS_GNUCC)
add_definitions(-DNDEBUG) add_definitions(-DNDEBUG)
else() else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
endif() endif()
endif() endif()
@ -319,11 +298,6 @@ if (CMAKE_GENERATOR MATCHES "Unix Makefile*")
if(Wno-builtin-macro-redefined) if(Wno-builtin-macro-redefined)
set(CMAKE_C_FLAGS_${UPPER_BUILD_TYPE} "${CMAKE_C_FLAGS_${UPPER_BUILD_TYPE}} -Wno-builtin-macro-redefined -D__FILE__='\"$(subst ${CMAKE_BINARY_DIR}/,,$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<)))\"'") set(CMAKE_C_FLAGS_${UPPER_BUILD_TYPE} "${CMAKE_C_FLAGS_${UPPER_BUILD_TYPE}} -Wno-builtin-macro-redefined -D__FILE__='\"$(subst ${CMAKE_BINARY_DIR}/,,$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<)))\"'")
endif() endif()
CHECK_CXX_COMPILER_FLAG (-Wno-builtin-macro-redefined Wno-builtin-macro-redefinedCXX)
if(Wno-builtin-macro-redefinedCXX)
set(CMAKE_CXX_FLAGS_${UPPER_BUILD_TYPE} "${CMAKE_CXX_FLAGS_${UPPER_BUILD_TYPE}} -Wno-builtin-macro-redefined -D__FILE__='\"$(subst ${CMAKE_BINARY_DIR}/,,$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<)))\"'")
endif()
endif() endif()
endif() endif()
@ -336,10 +310,6 @@ if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
if(Wno-deprecated-declarations) if(Wno-deprecated-declarations)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations")
endif() endif()
CHECK_CXX_COMPILER_FLAG(-Wno-deprecated-declarations Wno-deprecated-declarationsCXX)
if(Wno-deprecated-declarationsCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
endif()
endif() endif()
set(THREAD_PREFER_PTHREAD_FLAG TRUE) set(THREAD_PREFER_PTHREAD_FLAG TRUE)
@ -440,10 +410,6 @@ if(MSVC)
# NMake is otherwise complaining. # NMake is otherwise complaining.
foreach (flags_var_to_scrub foreach (flags_var_to_scrub
CMAKE_C_FLAGS CMAKE_C_FLAGS
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_MINSIZEREL) CMAKE_C_FLAGS_MINSIZEREL)
@ -460,7 +426,6 @@ if(MSVC)
if(CMAKE_BUILD_TYPE STREQUAL "Release") if(CMAKE_BUILD_TYPE STREQUAL "Release")
else() else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Zi") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Zi")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi")
endif() endif()
endif() endif()
@ -468,9 +433,7 @@ endif()
if(ANDROID) if(ANDROID)
# workaround for https://github.com/android-ndk/ndk/issues/243 # workaround for https://github.com/android-ndk/ndk/issues/243
string(REPLACE "-g " "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) string(REPLACE "-g " "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
string(REPLACE "-g " "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
endif() endif()
if(WIN32) if(WIN32)
@ -515,7 +478,7 @@ if(WIN32)
endif() endif()
endif() endif()
add_definitions(-DWINPR_EXPORTS -DFREERDP_EXPORTS) add_definitions(-DFREERDP_EXPORTS)
# Include files # Include files
if(NOT IOS) if(NOT IOS)
@ -564,7 +527,6 @@ if(APPLE)
if (WITH_VERBOSE) if (WITH_VERBOSE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -v") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -v")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -v")
endif() endif()
endif(APPLE) endif(APPLE)
@ -1017,23 +979,22 @@ if(BUILD_TESTING)
endif() endif()
# WinPR # WinPR
include_directories("${CMAKE_SOURCE_DIR}/winpr/include") if (FREERDP_UNIFIED_BUILD)
include_directories("${CMAKE_BINARY_DIR}/winpr/include") add_subdirectory(winpr)
if (WITH_WAYLAND)
add_subdirectory(uwac)
endif()
if (WITH_SERVER)
add_subdirectory(rdtk)
endif()
if (${CMAKE_VERSION} VERSION_LESS 2.8.12) include_directories(${CMAKE_SOURCE_DIR}/winpr/include)
set(PUBLIC_KEYWORD "") include_directories(${CMAKE_BINARY_DIR}/winpr/include)
set(PRIVATE_KEYWORD "")
else() else()
set(PUBLIC_KEYWORD "PUBLIC") find_package(WinPR 3 REQUIRED)
set(PRIVATE_KEYWORD "PRIVATE") include_directories(${WinPR_INCLUDE_DIR})
endif() endif()
if(BUILD_SHARED_LIBS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_DLL")
endif()
add_subdirectory(winpr)
# Sub-directories # Sub-directories
if(WITH_THIRD_PARTY) if(WITH_THIRD_PARTY)
@ -1047,16 +1008,6 @@ add_subdirectory(include)
add_subdirectory(libfreerdp) add_subdirectory(libfreerdp)
# RdTk
include_directories("${CMAKE_SOURCE_DIR}/rdtk/include")
include_directories("${CMAKE_BINARY_DIR}/rdtk/include")
add_subdirectory(rdtk)
if(WAYLAND_FOUND)
add_subdirectory(uwac)
endif()
if(BSD) if(BSD)
if(IS_DIRECTORY /usr/local/include) if(IS_DIRECTORY /usr/local/include)
include_directories(/usr/local/include) include_directories(/usr/local/include)

View File

@ -7,7 +7,7 @@
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
# You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, # distributed under the License is distributed on an "AS IS" BASIS,
@ -21,157 +21,157 @@ include(CMakeParseArguments)
include(CMakeDependentOption) include(CMakeDependentOption)
macro(define_channel_options) macro(define_channel_options)
set(PREFIX "CHANNEL") set(PREFIX "CHANNEL")
cmake_parse_arguments(${PREFIX} cmake_parse_arguments(${PREFIX}
"" ""
"NAME;TYPE;DESCRIPTION;SPECIFICATIONS;DEFAULT" "NAME;TYPE;DESCRIPTION;SPECIFICATIONS;DEFAULT"
"" ""
${ARGN}) ${ARGN})
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_CLIENT_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_CLIENT_OPTION)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" CHANNEL_SERVER_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" CHANNEL_SERVER_OPTION)
string(TOUPPER "${CHANNEL_TYPE}" CHANNEL_TYPE) string(TOUPPER "${CHANNEL_TYPE}" CHANNEL_TYPE)
if(${${CHANNEL_CLIENT_OPTION}}) if(${${CHANNEL_CLIENT_OPTION}})
set(OPTION_CLIENT_DEFAULT ${${CHANNEL_CLIENT_OPTION}}) set(OPTION_CLIENT_DEFAULT ${${CHANNEL_CLIENT_OPTION}})
endif() endif()
if(${${CHANNEL_SERVER_OPTION}}) if(${${CHANNEL_SERVER_OPTION}})
set(OPTION_SERVER_DEFAULT ${${CHANNEL_SERVER_OPTION}}) set(OPTION_SERVER_DEFAULT ${${CHANNEL_SERVER_OPTION}})
endif() endif()
if(${${CHANNEL_OPTION}}) if(${${CHANNEL_OPTION}})
set(OPTION_DEFAULT ${${CHANNEL_OPTION}}) set(OPTION_DEFAULT ${${CHANNEL_OPTION}})
endif() endif()
if(${OPTION_CLIENT_DEFAULT} OR ${OPTION_SERVER_DEFAULT}) if(${OPTION_CLIENT_DEFAULT} OR ${OPTION_SERVER_DEFAULT})
set(OPTION_DEFAULT "ON") set(OPTION_DEFAULT "ON")
endif() endif()
set(CHANNEL_DEFAULT ${OPTION_DEFAULT}) set(CHANNEL_DEFAULT ${OPTION_DEFAULT})
set(CHANNEL_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel") set(CHANNEL_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel")
if ("${CHANNEL_TYPE}" STREQUAL "DYNAMIC") if ("${CHANNEL_TYPE}" STREQUAL "DYNAMIC")
CMAKE_DEPENDENT_OPTION(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT} "CHANNEL_DRDYNVC" OFF) CMAKE_DEPENDENT_OPTION(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT} "CHANNEL_DRDYNVC" OFF)
else() else()
option(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT}) option(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT})
endif() endif()
endmacro(define_channel_options) endmacro(define_channel_options)
macro(define_channel_client_options _channel_client_default) macro(define_channel_client_options _channel_client_default)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_CLIENT_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_CLIENT_OPTION)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION)
set(CHANNEL_CLIENT_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel client") set(CHANNEL_CLIENT_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel client")
CMAKE_DEPENDENT_OPTION(${CHANNEL_CLIENT_OPTION} "${CHANNEL_CLIENT_OPTION_DOC}" CMAKE_DEPENDENT_OPTION(${CHANNEL_CLIENT_OPTION} "${CHANNEL_CLIENT_OPTION_DOC}"
${_channel_client_default} "${CHANNEL_OPTION}" OFF) ${_channel_client_default} "${CHANNEL_OPTION}" OFF)
endmacro(define_channel_client_options) endmacro(define_channel_client_options)
macro(define_channel_server_options _channel_server_default) macro(define_channel_server_options _channel_server_default)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" CHANNEL_SERVER_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" CHANNEL_SERVER_OPTION)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION) string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION)
set(CHANNEL_SERVER_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel server") set(CHANNEL_SERVER_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel server")
CMAKE_DEPENDENT_OPTION(${CHANNEL_SERVER_OPTION} "${CHANNEL_SERVER_OPTION_DOC}" CMAKE_DEPENDENT_OPTION(${CHANNEL_SERVER_OPTION} "${CHANNEL_SERVER_OPTION_DOC}"
${_channel_server_default} "${CHANNEL_OPTION}" OFF) ${_channel_server_default} "${CHANNEL_OPTION}" OFF)
endmacro(define_channel_server_options) endmacro(define_channel_server_options)
macro(define_channel _channel_name) macro(define_channel _channel_name)
set(CHANNEL_NAME ${_channel_name}) set(CHANNEL_NAME ${_channel_name})
set(MODULE_NAME ${CHANNEL_NAME}) set(MODULE_NAME ${CHANNEL_NAME})
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" MODULE_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}" MODULE_PREFIX)
endmacro(define_channel) endmacro(define_channel)
macro(define_channel_client _channel_name) macro(define_channel_client _channel_name)
set(CHANNEL_NAME ${_channel_name}) set(CHANNEL_NAME ${_channel_name})
set(MODULE_NAME "${CHANNEL_NAME}-client") set(MODULE_NAME "${CHANNEL_NAME}-client")
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" MODULE_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" MODULE_PREFIX)
endmacro(define_channel_client) endmacro(define_channel_client)
macro(define_channel_server _channel_name) macro(define_channel_server _channel_name)
set(CHANNEL_NAME ${_channel_name}) set(CHANNEL_NAME ${_channel_name})
set(MODULE_NAME "${CHANNEL_NAME}-server") set(MODULE_NAME "${CHANNEL_NAME}-server")
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" MODULE_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" MODULE_PREFIX)
endmacro(define_channel_server) endmacro(define_channel_server)
macro(define_channel_client_subsystem _channel_name _subsystem _type) macro(define_channel_client_subsystem _channel_name _subsystem _type)
set(CHANNEL_NAME ${_channel_name}) set(CHANNEL_NAME ${_channel_name})
set(CHANNEL_SUBSYSTEM ${_subsystem}) set(CHANNEL_SUBSYSTEM ${_subsystem})
string(LENGTH "${_type}" _type_length) string(LENGTH "${_type}" _type_length)
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_PREFIX)
if(_type_length GREATER 0) if(_type_length GREATER 0)
set(SUBSYSTEM_TYPE ${_type}) set(SUBSYSTEM_TYPE ${_type})
set(MODULE_NAME "${CHANNEL_NAME}-client-${CHANNEL_SUBSYSTEM}-${SUBSYSTEM_TYPE}") set(MODULE_NAME "${CHANNEL_NAME}-client-${CHANNEL_SUBSYSTEM}-${SUBSYSTEM_TYPE}")
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT_${CHANNEL_SUBSYSTEM}_${SUBSYSTEM_TYPE}" MODULE_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT_${CHANNEL_SUBSYSTEM}_${SUBSYSTEM_TYPE}" MODULE_PREFIX)
else() else()
set(MODULE_NAME "${CHANNEL_NAME}-client-${CHANNEL_SUBSYSTEM}") set(MODULE_NAME "${CHANNEL_NAME}-client-${CHANNEL_SUBSYSTEM}")
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT_${CHANNEL_SUBSYSTEM}" MODULE_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT_${CHANNEL_SUBSYSTEM}" MODULE_PREFIX)
endif() endif()
endmacro(define_channel_client_subsystem) endmacro(define_channel_client_subsystem)
macro(define_channel_server_subsystem _channel_name _subsystem _type) macro(define_channel_server_subsystem _channel_name _subsystem _type)
set(CHANNEL_NAME ${_channel_name}) set(CHANNEL_NAME ${_channel_name})
set(CHANNEL_SUBSYSTEM ${_subsystem}) set(CHANNEL_SUBSYSTEM ${_subsystem})
set(MODULE_NAME "${CHANNEL_NAME}-server-${CHANNEL_SUBSYSTEM}") set(MODULE_NAME "${CHANNEL_NAME}-server-${CHANNEL_SUBSYSTEM}")
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_server_${CHANNEL_SUBSYSTEM}" MODULE_PREFIX) string(TOUPPER "CHANNEL_${CHANNEL_NAME}_server_${CHANNEL_SUBSYSTEM}" MODULE_PREFIX)
endmacro(define_channel_server_subsystem) endmacro(define_channel_server_subsystem)
macro(add_channel_client _channel_prefix _channel_name) macro(add_channel_client _channel_prefix _channel_name)
add_subdirectory(client) add_subdirectory(client)
if(${${_channel_prefix}_CLIENT_STATIC}) if(${${_channel_prefix}_CLIENT_STATIC})
set(CHANNEL_STATIC_CLIENT_MODULES ${CHANNEL_STATIC_CLIENT_MODULES} ${_channel_prefix} PARENT_SCOPE) set(CHANNEL_STATIC_CLIENT_MODULES ${CHANNEL_STATIC_CLIENT_MODULES} ${_channel_prefix} PARENT_SCOPE)
set(${_channel_prefix}_CLIENT_NAME ${${_channel_prefix}_CLIENT_NAME} PARENT_SCOPE) set(${_channel_prefix}_CLIENT_NAME ${${_channel_prefix}_CLIENT_NAME} PARENT_SCOPE)
set(${_channel_prefix}_CLIENT_CHANNEL ${${_channel_prefix}_CLIENT_CHANNEL} PARENT_SCOPE) set(${_channel_prefix}_CLIENT_CHANNEL ${${_channel_prefix}_CLIENT_CHANNEL} PARENT_SCOPE)
set(${_channel_prefix}_CLIENT_ENTRY ${${_channel_prefix}_CLIENT_ENTRY} PARENT_SCOPE) set(${_channel_prefix}_CLIENT_ENTRY ${${_channel_prefix}_CLIENT_ENTRY} PARENT_SCOPE)
set(CHANNEL_STATIC_CLIENT_ENTRIES ${CHANNEL_STATIC_CLIENT_ENTRIES} ${${_channel_prefix}_CLIENT_ENTRY} PARENT_SCOPE) set(CHANNEL_STATIC_CLIENT_ENTRIES ${CHANNEL_STATIC_CLIENT_ENTRIES} ${${_channel_prefix}_CLIENT_ENTRY} PARENT_SCOPE)
endif() endif()
endmacro(add_channel_client) endmacro(add_channel_client)
macro(add_channel_server _channel_prefix _channel_name) macro(add_channel_server _channel_prefix _channel_name)
add_subdirectory(server) add_subdirectory(server)
if(${${_channel_prefix}_SERVER_STATIC}) if(${${_channel_prefix}_SERVER_STATIC})
set(CHANNEL_STATIC_SERVER_MODULES ${CHANNEL_STATIC_SERVER_MODULES} ${_channel_prefix} PARENT_SCOPE) set(CHANNEL_STATIC_SERVER_MODULES ${CHANNEL_STATIC_SERVER_MODULES} ${_channel_prefix} PARENT_SCOPE)
set(${_channel_prefix}_SERVER_NAME ${${_channel_prefix}_SERVER_NAME} PARENT_SCOPE) set(${_channel_prefix}_SERVER_NAME ${${_channel_prefix}_SERVER_NAME} PARENT_SCOPE)
set(${_channel_prefix}_SERVER_CHANNEL ${${_channel_prefix}_SERVER_CHANNEL} PARENT_SCOPE) set(${_channel_prefix}_SERVER_CHANNEL ${${_channel_prefix}_SERVER_CHANNEL} PARENT_SCOPE)
set(${_channel_prefix}_SERVER_ENTRY ${${_channel_prefix}_SERVER_ENTRY} PARENT_SCOPE) set(${_channel_prefix}_SERVER_ENTRY ${${_channel_prefix}_SERVER_ENTRY} PARENT_SCOPE)
set(CHANNEL_STATIC_SERVER_ENTRIES ${CHANNEL_STATIC_SERVER_ENTRIES} ${${_channel_prefix}_SERVER_ENTRY} PARENT_SCOPE) set(CHANNEL_STATIC_SERVER_ENTRIES ${CHANNEL_STATIC_SERVER_ENTRIES} ${${_channel_prefix}_SERVER_ENTRY} PARENT_SCOPE)
endif() endif()
endmacro(add_channel_server) endmacro(add_channel_server)
macro(add_channel_client_subsystem _channel_prefix _channel_name _subsystem _type) macro(add_channel_client_subsystem _channel_prefix _channel_name _subsystem _type)
add_subdirectory(${_subsystem}) add_subdirectory(${_subsystem})
set(_channel_module_name "${_channel_name}-client") set(_channel_module_name "${_channel_name}-client")
string(LENGTH "${_type}" _type_length) string(LENGTH "${_type}" _type_length)
if(_type_length GREATER 0) if(_type_length GREATER 0)
string(TOUPPER "CHANNEL_${_channel_name}_CLIENT_${_subsystem}_${_type}" _subsystem_prefix) string(TOUPPER "CHANNEL_${_channel_name}_CLIENT_${_subsystem}_${_type}" _subsystem_prefix)
else() else()
string(TOUPPER "CHANNEL_${_channel_name}_CLIENT_${_subsystem}" _subsystem_prefix) string(TOUPPER "CHANNEL_${_channel_name}_CLIENT_${_subsystem}" _subsystem_prefix)
endif() endif()
if(${${_subsystem_prefix}_STATIC}) if(${${_subsystem_prefix}_STATIC})
get_target_property(CHANNEL_SUBSYSTEMS ${_channel_module_name} SUBSYSTEMS) get_target_property(CHANNEL_SUBSYSTEMS ${_channel_module_name} SUBSYSTEMS)
if(_type_length GREATER 0) if(_type_length GREATER 0)
set(SUBSYSTEMS ${SUBSYSTEMS} "${_subsystem}-${_type}") set(SUBSYSTEMS ${SUBSYSTEMS} "${_subsystem}-${_type}")
else() else()
set(SUBSYSTEMS ${SUBSYSTEMS} ${_subsystem}) set(SUBSYSTEMS ${SUBSYSTEMS} ${_subsystem})
endif() endif()
set_target_properties(${_channel_module_name} PROPERTIES SUBSYSTEMS "${SUBSYSTEMS}") set_target_properties(${_channel_module_name} PROPERTIES SUBSYSTEMS "${SUBSYSTEMS}")
endif() endif()
endmacro(add_channel_client_subsystem) endmacro(add_channel_client_subsystem)
macro(channel_install _targets _destination _export_target) macro(channel_install _targets _destination _export_target)
install(TARGETS ${_targets} DESTINATION ${_destination} EXPORT ${_export_target}) install(TARGETS ${_targets} DESTINATION ${_destination} EXPORT ${_export_target})
endmacro(channel_install) endmacro(channel_install)
macro(server_channel_install _targets _destination) macro(server_channel_install _targets _destination)
channel_install(${_targets} ${_destination} "FreeRDP-ServerTargets") channel_install(${_targets} ${_destination} "FreeRDP-ServerTargets")
endmacro(server_channel_install) endmacro(server_channel_install)
macro(client_channel_install _targets _destination) macro(client_channel_install _targets _destination)
channel_install(${_targets} ${_destination} "FreeRDP-ClientTargets") channel_install(${_targets} ${_destination} "FreeRDP-ClientTargets")
endmacro(client_channel_install) endmacro(client_channel_install)
macro(add_channel_client_library _module_prefix _module_name _channel_name _dynamic _entry) macro(add_channel_client_library _module_prefix _module_name _channel_name _dynamic _entry)
@ -181,8 +181,8 @@ macro(add_channel_client_library _module_prefix _module_name _channel_name _dyna
endif() endif()
if(${_dynamic} AND (NOT BUILTIN_CHANNELS)) if(${_dynamic} AND (NOT BUILTIN_CHANNELS))
# On windows create dll version information. # On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt # Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32) if (WIN32)
set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
@ -191,9 +191,9 @@ macro(add_channel_client_library _module_prefix _module_name _channel_name _dyna
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
${CMAKE_CURRENT_BINARY_DIR}/version.rc ${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY) @ONLY)
set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif() endif()
@ -209,7 +209,7 @@ macro(add_channel_client_library _module_prefix _module_name _channel_name _dyna
add_library(${_module_name} STATIC ${${_module_prefix}_SRCS}) add_library(${_module_name} STATIC ${${_module_prefix}_SRCS})
target_link_libraries(${_module_name} ${${_module_prefix}_LIBS}) target_link_libraries(${_module_name} ${${_module_prefix}_LIBS})
if (${CMAKE_VERSION} VERSION_LESS 2.8.12 OR NOT BUILD_SHARED_LIBS) if (NOT BUILTIN_CHANNELS)
client_channel_install(${_module_name} ${FREERDP_ADDIN_PATH}) client_channel_install(${_module_name} ${FREERDP_ADDIN_PATH})
endif() endif()
endif() endif()
@ -222,8 +222,8 @@ macro(add_channel_client_subsystem_library _module_prefix _module_name _channel_
endif() endif()
if(${_dynamic} AND (NOT BUILTIN_CHANNELS)) if(${_dynamic} AND (NOT BUILTIN_CHANNELS))
# On windows create dll version information. # On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt # Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32) if (WIN32)
set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
@ -232,9 +232,9 @@ macro(add_channel_client_subsystem_library _module_prefix _module_name _channel_
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
${CMAKE_CURRENT_BINARY_DIR}/version.rc ${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY) @ONLY)
set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif() endif()
@ -249,7 +249,7 @@ macro(add_channel_client_subsystem_library _module_prefix _module_name _channel_
add_library(${_module_name} STATIC ${${_module_prefix}_SRCS}) add_library(${_module_name} STATIC ${${_module_prefix}_SRCS})
target_link_libraries(${_module_name} ${${_module_prefix}_LIBS}) target_link_libraries(${_module_name} ${${_module_prefix}_LIBS})
if (${CMAKE_VERSION} VERSION_LESS 2.8.12 OR NOT BUILD_SHARED_LIBS) if (NOT BUILTIN_CHANNELS)
client_channel_install(${_module_name} ${FREERDP_ADDIN_PATH}) client_channel_install(${_module_name} ${FREERDP_ADDIN_PATH})
endif() endif()
endif() endif()
@ -262,34 +262,34 @@ macro(add_channel_server_library _module_prefix _module_name _channel_name _dyna
endif() endif()
if(${_dynamic} AND (NOT BUILTIN_CHANNELS)) if(${_dynamic} AND (NOT BUILTIN_CHANNELS))
# On windows create dll version information. # On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt # Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32) if (WIN32)
set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${FREERDP_VERSION_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
${CMAKE_CURRENT_BINARY_DIR}/version.rc ${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY) @ONLY)
set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif() endif()
add_library(${_module_name} ${${_module_prefix}_SRCS}) add_library(${_module_name} ${${_module_prefix}_SRCS})
server_channel_install(${_module_name} ${FREERDP_ADDIN_PATH}) server_channel_install(${_module_name} ${FREERDP_ADDIN_PATH})
else() else()
set(${_module_prefix}_STATIC ON PARENT_SCOPE) set(${_module_prefix}_STATIC ON PARENT_SCOPE)
set(${_module_prefix}_NAME ${_module_name} PARENT_SCOPE) set(${_module_prefix}_NAME ${_module_name} PARENT_SCOPE)
set(${_module_prefix}_CHANNEL ${_channel_name} PARENT_SCOPE) set(${_module_prefix}_CHANNEL ${_channel_name} PARENT_SCOPE)
set(${_module_prefix}_ENTRY ${_entry} PARENT_SCOPE) set(${_module_prefix}_ENTRY ${_entry} PARENT_SCOPE)
add_library(${_module_name} STATIC ${${_module_prefix}_SRCS}) add_library(${_module_name} STATIC ${${_module_prefix}_SRCS})
if (${CMAKE_VERSION} VERSION_LESS 2.8.12 OR NOT BUILD_SHARED_LIBS) if (NOT BUILTIN_CHANNELS)
server_channel_install(${_module_name} ${FREERDP_ADDIN_PATH}) server_channel_install(${_module_name} ${FREERDP_ADDIN_PATH})
endif() endif()
endif() endif()
endmacro(add_channel_server_library) endmacro(add_channel_server_library)
set(FILENAME "ChannelOptions.cmake") set(FILENAME "ChannelOptions.cmake")
@ -301,46 +301,46 @@ file(GLOB FILEPATHS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/${FILENAME}")
set(DRDYNVC_MATCH "") set(DRDYNVC_MATCH "")
foreach(FILEPATH ${FILEPATHS}) foreach(FILEPATH ${FILEPATHS})
if(${FILEPATH} MATCHES "^([^/]*)drdynvc/+${FILENAME}") if(${FILEPATH} MATCHES "^([^/]*)drdynvc/+${FILENAME}")
set(DRDYNVC_MATCH ${FILEPATH}) set(DRDYNVC_MATCH ${FILEPATH})
endif() endif()
endforeach() endforeach()
if (NOT "${DRDYNVC_MATCH}" STREQUAL "") if (NOT "${DRDYNVC_MATCH}" STREQUAL "")
list(REMOVE_ITEM FILEPATHS ${DRDYNVC_MATCH}) list(REMOVE_ITEM FILEPATHS ${DRDYNVC_MATCH})
list(APPEND FILEPATHS ${DRDYNVC_MATCH}) list(APPEND FILEPATHS ${DRDYNVC_MATCH})
list(REVERSE FILEPATHS) # list PREPEND is not available on old CMake3 list(REVERSE FILEPATHS) # list PREPEND is not available on old CMake3
endif() endif()
foreach(FILEPATH ${FILEPATHS}) foreach(FILEPATH ${FILEPATHS})
if(${FILEPATH} MATCHES "^([^/]*)/+${FILENAME}") if(${FILEPATH} MATCHES "^([^/]*)/+${FILENAME}")
string(REGEX REPLACE "^([^/]*)/+${FILENAME}" "\\1" DIR ${FILEPATH}) string(REGEX REPLACE "^([^/]*)/+${FILENAME}" "\\1" DIR ${FILEPATH})
set(CHANNEL_OPTION) set(CHANNEL_OPTION)
include(${FILEPATH}) include(${FILEPATH})
if(${CHANNEL_OPTION}) if(${CHANNEL_OPTION})
set(CHANNEL_MESSAGE "Adding ${CHANNEL_TYPE} channel") set(CHANNEL_MESSAGE "Adding ${CHANNEL_TYPE} channel")
if(${CHANNEL_CLIENT_OPTION}) if(${CHANNEL_CLIENT_OPTION})
set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE} client") set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE} client")
endif() endif()
if(${CHANNEL_SERVER_OPTION}) if(${CHANNEL_SERVER_OPTION})
set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE} server") set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE} server")
endif() endif()
set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE} \"${CHANNEL_NAME}\"") set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE} \"${CHANNEL_NAME}\"")
set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE}: ${CHANNEL_DESCRIPTION}") set(CHANNEL_MESSAGE "${CHANNEL_MESSAGE}: ${CHANNEL_DESCRIPTION}")
message(STATUS "${CHANNEL_MESSAGE}") message(STATUS "${CHANNEL_MESSAGE}")
add_subdirectory(${DIR}) add_subdirectory(${DIR})
endif() endif()
endif() endif()
endforeach(FILEPATH) endforeach(FILEPATH)
if(WITH_CLIENT_CHANNELS) if(WITH_CLIENT_CHANNELS)
add_subdirectory(client) add_subdirectory(client)
set(FREERDP_CHANNELS_CLIENT_SRCS ${FREERDP_CHANNELS_CLIENT_SRCS} PARENT_SCOPE) set(FREERDP_CHANNELS_CLIENT_SRCS ${FREERDP_CHANNELS_CLIENT_SRCS} PARENT_SCOPE)
set(FREERDP_CHANNELS_CLIENT_LIBS ${FREERDP_CHANNELS_CLIENT_LIBS} PARENT_SCOPE) set(FREERDP_CHANNELS_CLIENT_LIBS ${FREERDP_CHANNELS_CLIENT_LIBS} PARENT_SCOPE)
endif() endif()
if(WITH_SERVER_CHANNELS) if(WITH_SERVER_CHANNELS)
add_subdirectory(server) add_subdirectory(server)
set(FREERDP_CHANNELS_SERVER_SRCS ${FREERDP_CHANNELS_SERVER_SRCS} PARENT_SCOPE) set(FREERDP_CHANNELS_SERVER_SRCS ${FREERDP_CHANNELS_SERVER_SRCS} PARENT_SCOPE)
set(FREERDP_CHANNELS_SERVER_LIBS ${FREERDP_CHANNELS_SERVER_LIBS} PARENT_SCOPE) set(FREERDP_CHANNELS_SERVER_LIBS ${FREERDP_CHANNELS_SERVER_LIBS} PARENT_SCOPE)
endif() endif()

View File

@ -81,22 +81,21 @@ endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/freerdp-client.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp-client${FREERDP_VERSION_MAJOR}.pc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/freerdp-client.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp-client${FREERDP_VERSION_MAJOR}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-client${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-client${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10")
export(PACKAGE freerdp-client) export(PACKAGE freerdp-client)
SetFreeRDPCMakeInstallDir(FREERDP_CLIENT_CMAKE_INSTALL_DIR "FreeRDP-Client${FREERDP_VERSION_MAJOR}") SetFreeRDPCMakeInstallDir(FREERDP_CLIENT_CMAKE_INSTALL_DIR "FreeRDP-Client${FREERDP_VERSION_MAJOR}")
configure_package_config_file(FreeRDP-ClientConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfig.cmake configure_package_config_file(FreeRDP-ClientConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfig.cmake
INSTALL_DESTINATION ${FREERDP_CLIENT_CMAKE_INSTALL_DIR} INSTALL_DESTINATION ${FREERDP_CLIENT_CMAKE_INSTALL_DIR}
PATH_VARS FREERDP_INCLUDE_DIR) PATH_VARS FREERDP_INCLUDE_DIR)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfigVersion.cmake write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfigVersion.cmake
VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion) VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfigVersion.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ClientConfigVersion.cmake
DESTINATION ${FREERDP_CLIENT_CMAKE_INSTALL_DIR}) DESTINATION ${FREERDP_CLIENT_CMAKE_INSTALL_DIR})
if (NOT BUILTIN_CHANNELS)
install(EXPORT FreeRDP-ClientTargets DESTINATION ${FREERDP_CLIENT_CMAKE_INSTALL_DIR}) install(EXPORT FreeRDP-ClientTargets DESTINATION ${FREERDP_CLIENT_CMAKE_INSTALL_DIR})
endif() endif()

View File

@ -2,10 +2,8 @@
project(MacFreeRDP-library) project(MacFreeRDP-library)
if(${CMAKE_VERSION} GREATER 2.8.12) cmake_policy(SET CMP0026 OLD)
cmake_policy(SET CMP0026 OLD) cmake_policy(SET CMP0045 OLD)
cmake_policy(SET CMP0045 OLD)
endif()
set(MODULE_NAME "MacFreeRDP-library") set(MODULE_NAME "MacFreeRDP-library")
set(MODULE_OUTPUT_NAME "MacFreeRDP") set(MODULE_OUTPUT_NAME "MacFreeRDP")

View File

@ -20,7 +20,6 @@ set(MODULE_NAME "wlfreerdp")
set(MODULE_PREFIX "FREERDP_CLIENT_WAYLAND") set(MODULE_PREFIX "FREERDP_CLIENT_WAYLAND")
include_directories(${WAYLAND_INCLUDE_DIR}) include_directories(${WAYLAND_INCLUDE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/uwac/include)
set(${MODULE_PREFIX}_SRCS set(${MODULE_PREFIX}_SRCS
wlfreerdp.c wlfreerdp.c
@ -37,6 +36,14 @@ set(${MODULE_PREFIX}_SRCS
wlf_channels.h wlf_channels.h
) )
if (FREERDP_UNIFIED_BUILD)
include_directories(${CMAKE_SOURCE_DIR}/uwac/include)
include_directories(${CMAKE_BINARY_DIR}/uwac/include)
else()
find_package(uwac 0 REQUIRED)
include_directories(${UWAC_INCLUDE_DIR})
endif()
list (APPEND ${MODULE_PREFIX}_LIBS freerdp-client freerdp uwac) list (APPEND ${MODULE_PREFIX}_LIBS freerdp-client freerdp uwac)
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})

View File

@ -45,7 +45,7 @@ if (WIN32 AND BUILD_SHARED_LIBS)
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
if(WITH_CLIENT_INTERFACE) if(WITH_CLIENT_INTERFACE)
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${FREERDP_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
else() else()
set (RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}" ) set (RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}" )
endif() endif()
@ -60,6 +60,7 @@ endif()
if(WITH_CLIENT_INTERFACE) if(WITH_CLIENT_INTERFACE)
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
if(CLIENT_INTERFACE_SHARED) if(CLIENT_INTERFACE_SHARED)
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS}) add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
else() else()

View File

@ -221,8 +221,8 @@ endif()
if(WITH_XRANDR) if(WITH_XRANDR)
add_definitions(-DWITH_XRANDR) add_definitions(-DWITH_XRANDR)
include_directories(${XRANDR_INCLUDE_DIRS}) include_directories(${XRandR_INCLUDE_DIRS})
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XRANDR_LIBRARIES}) set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XRandR_LIBRARIES})
endif() endif()
if(WITH_XFIXES) if(WITH_XFIXES)
@ -245,10 +245,10 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client freerdp m)
if (NOT APPLE) if (NOT APPLE)
list(APPEND ${MODULE_PREFIX}_LIBS rt) list(APPEND ${MODULE_PREFIX}_LIBS rt)
endif() endif()
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${${MODULE_PREFIX}_LIBS})
if(WITH_IPP) if(WITH_IPP)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${IPP_LIBRARY_LIST}) target_link_libraries(${MODULE_NAME} PRIVATE ${IPP_LIBRARY_LIST})
endif() endif()
if(WITH_CLIENT_INTERFACE) if(WITH_CLIENT_INTERFACE)

View File

@ -46,7 +46,7 @@ if (WIN32 AND BUILD_SHARED_LIBS)
set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${FREERDP_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
@ -66,11 +66,11 @@ endif()
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winpr) set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winpr)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${FREERDP_CHANNELS_CLIENT_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${FREERDP_CHANNELS_CLIENT_LIBS})
if(OPENBSD) if(OPENBSD)
target_link_libraries(${MODULE_NAME} ${PUBLIC_KEYWORD} ${${MODULE_PREFIX}_LIBS} sndio) target_link_libraries(${MODULE_NAME} PUBLIC ${${MODULE_PREFIX}_LIBS} sndio)
else() else()
target_link_libraries(${MODULE_NAME} ${PUBLIC_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} PUBLIC ${${MODULE_PREFIX}_LIBS})
endif() endif()

View File

@ -24,19 +24,3 @@ endmacro()
# Compatibility includes - order does matter! # Compatibility includes - order does matter!
enable_cmake_compat(3.7.0) enable_cmake_compat(3.7.0)
enable_cmake_compat(2.8.11)
enable_cmake_compat(2.8.6)
enable_cmake_compat(2.8.3)
enable_cmake_compat(2.8.2)
# GetGitRevisionDescription requires FindGit which was added in version 2.8.2
# build won't fail but GIT_REVISION is set to n/a
if(${CMAKE_VERSION} VERSION_LESS 2.8.2)
message(WARNING "GetGitRevisionDescription reqires (FindGit) cmake >= 2.8.2 to work properly - GIT_REVISION will be set to n/a")
endif()
# Since cmake 2.8.9 modules/library names without lib/.so can be used
# for dependencies
if(IOS AND ${CMAKE_VERSION} VERSION_LESS 2.8.9)
message(FATAL_ERROR "CMAKE version >= 2.8.9 required to build the IOS client")
endif()

View File

@ -64,10 +64,6 @@ macro(add_complex_library)
endmacro(add_complex_library) endmacro(add_complex_library)
if(${CMAKE_VERSION} VERSION_GREATER 2.8.8)
set(CMAKE_OBJECT_TARGET_SUPPORT 1)
endif()
function(create_object_cotarget target) function(create_object_cotarget target)
set(cotarget "${target}-objects") set(cotarget "${target}-objects")

View File

@ -79,7 +79,7 @@ option(BUILTIN_CHANNELS "Combine all channels into their respective base library
option(WITH_CHANNELS "Build virtual channel plugins" ON) option(WITH_CHANNELS "Build virtual channel plugins" ON)
option(WITH_WINPR_TOOLS "Build WinPR helper binaries" ON) option(FREERDP_UNIFIED_BUILD "Build WinPR, uwac, RdTk and FreeRDP in one go" ON)
CMAKE_DEPENDENT_OPTION(WITH_CLIENT_CHANNELS "Build virtual channel plugins" ON CMAKE_DEPENDENT_OPTION(WITH_CLIENT_CHANNELS "Build virtual channel plugins" ON
"WITH_CLIENT_COMMON;WITH_CHANNELS" OFF) "WITH_CLIENT_COMMON;WITH_CHANNELS" OFF)

View File

@ -1,13 +1,13 @@
# - Find XRANDR # - Find XRandR
# Find the XRANDR libraries # Find the XRandR libraries
# #
# This module defines the following variables: # This module defines the following variables:
# XRANDR_FOUND - true if XRANDR_INCLUDE_DIR & XRANDR_LIBRARY are found # XRandR_FOUND - true if XRANDR_INCLUDE_DIR & XRANDR_LIBRARY are found
# XRANDR_LIBRARIES - Set when XRANDR_LIBRARY is found # XRandR_LIBRARIES - Set when XRANDR_LIBRARY is found
# XRANDR_INCLUDE_DIRS - Set when XRANDR_INCLUDE_DIR is found # XRandR_INCLUDE_DIRS - Set when XRANDR_INCLUDE_DIR is found
# #
# XRANDR_INCLUDE_DIR - where to find Xrandr.h, etc. # XRandR_INCLUDE_DIR - where to find Xrandr.h, etc.
# XRANDR_LIBRARY - the XRANDR library # XRandR_LIBRARY - the XRANDR library
# #
#============================================================================= #=============================================================================
@ -26,24 +26,24 @@
# limitations under the License. # limitations under the License.
#============================================================================= #=============================================================================
find_path(XRANDR_INCLUDE_DIR NAMES X11/extensions/Xrandr.h find_path(XRandR_INCLUDE_DIR NAMES X11/extensions/Xrandr.h
PATH_SUFFIXES X11/extensions PATH_SUFFIXES X11/extensions
PATHS /opt/X11/include PATHS /opt/X11/include
DOC "The XRANDR include directory" DOC "The XRandR include directory"
) )
find_library(XRANDR_LIBRARY NAMES Xrandr find_library(XRandR_LIBRARY NAMES Xrandr
PATHS /opt/X11/lib PATHS /opt/X11/lib
DOC "The XRANDR library" DOC "The XRandR library"
) )
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XRANDR DEFAULT_MSG XRANDR_LIBRARY XRANDR_INCLUDE_DIR) FIND_PACKAGE_HANDLE_STANDARD_ARGS(XRandR DEFAULT_MSG XRandR_LIBRARY XRandR_INCLUDE_DIR)
if(XRANDR_FOUND) if(XRandR_FOUND)
set( XRANDR_LIBRARIES ${XRANDR_LIBRARY} ) set( XRandR_LIBRARIES ${XRandR_LIBRARY} )
set( XRANDR_INCLUDE_DIRS ${XRANDR_INCLUDE_DIR} ) set( XRandR_INCLUDE_DIRS ${XRandR_INCLUDE_DIR} )
endif() endif()
mark_as_advanced(XRANDR_INCLUDE_DIR XRANDR_LIBRARY) mark_as_advanced(XRandR_INCLUDE_DIR XRandR_LIBRARY)

View File

@ -6,14 +6,6 @@ MACRO (TODAY RESULT)
if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32) if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d" EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d"
OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
elseif(CMAKE_VERSION VERSION_LESS "2.8.11")
if (WIN32)
message(FATAL_ERROR "Your CMake version is too old. Please update to a more recent version >= 2.8.11")
else()
EXECUTE_PROCESS(COMMAND "date" "-u" "+%Y-%m-%d"
OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
else()
STRING(TIMESTAMP ${RESULT} "%Y-%m-%d" UTC) STRING(TIMESTAMP ${RESULT} "%Y-%m-%d" UTC)
endif() endif()
ENDMACRO (TODAY) ENDMACRO (TODAY)

View File

@ -366,7 +366,7 @@ if (WIN32)
set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${FREERDP_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
@ -387,7 +387,7 @@ if (WITH_LIBRARY_VERSIONING)
endif() endif()
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${LIBFREERDP_LIBS} winpr) target_link_libraries(${MODULE_NAME} PRIVATE ${LIBFREERDP_LIBS} winpr)
install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT FreeRDPTargets install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT FreeRDPTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
@ -405,22 +405,18 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/freerdp.pc.in ${CMAKE_CURRENT_BINARY_
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
## cmake project ## cmake project
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10") export(PACKAGE freerdp)
export(PACKAGE freerdp) SetFreeRDPCMakeInstallDir(FREERDP_CMAKE_INSTALL_DIR "FreeRDP${FREERDP_VERSION_MAJOR}")
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)
configure_package_config_file(FreeRDPConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
INSTALL_DESTINATION ${FREERDP_CMAKE_INSTALL_DIR} VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion)
PATH_VARS FREERDP_INCLUDE_DIR)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion) DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
endif()

View File

@ -309,6 +309,7 @@ static BOOL autodetect_send_bandwidth_measure_results(rdpRdp* rdp, UINT16 respon
"sending Bandwidth Measure Results PDU -> timeDelta=%" PRIu64 ", byteCount=%" PRIu32 "sending Bandwidth Measure Results PDU -> timeDelta=%" PRIu64 ", byteCount=%" PRIu32
"", "",
timeDelta, rdp->autodetect->bandwidthMeasureByteCount); timeDelta, rdp->autodetect->bandwidthMeasureByteCount);
Stream_Write_UINT8(s, 0x0E); /* headerLength (1 byte) */ Stream_Write_UINT8(s, 0x0E); /* headerLength (1 byte) */
Stream_Write_UINT8(s, TYPE_ID_AUTODETECT_RESPONSE); /* headerTypeId (1 byte) */ Stream_Write_UINT8(s, TYPE_ID_AUTODETECT_RESPONSE); /* headerTypeId (1 byte) */
Stream_Write_UINT16(s, sequenceNumber); /* sequenceNumber (2 bytes) */ Stream_Write_UINT16(s, sequenceNumber); /* sequenceNumber (2 bytes) */

View File

@ -78,6 +78,7 @@ BOOL ntlm_client_init(rdpNtlm* ntlm, BOOL http, LPCSTR user, LPCSTR domain, LPCS
SecPkgContext_Bindings* Bindings) SecPkgContext_Bindings* Bindings)
{ {
SECURITY_STATUS status; SECURITY_STATUS status;
ntlm->http = http; ntlm->http = http;
ntlm->Bindings = Bindings; ntlm->Bindings = Bindings;
ntlm->table = InitSecurityInterfaceEx(0); ntlm->table = InitSecurityInterfaceEx(0);

View File

@ -15,11 +15,40 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
cmake_minimum_required(VERSION 2.8) # Soname versioning
set(RDTK_VERSION_MAJOR "0")
set(RDTK_VERSION_MINOR "2")
set(RDTK_VERSION_REVISION "0")
set(RDTK_VERSION "${RDTK_VERSION_MAJOR}.${RDTK_VERSION_MINOR}.${RDTK_VERSION_REVISION}")
set(RDTK_VERSION_FULL "${RDTK_VERSION}")
set(RDTK_API_VERSION "${RDTK_VERSION_MAJOR}")
project(RdTk C) if (NOT FREERDP_UNIFIED_BUILD)
cmake_minimum_required(VERSION 3.4)
project(RdTk VERSION ${RDTK_VERSION} LANGUAGES C)
set(CMAKE_COLOR_MAKEFILE ON) set(CMAKE_COLOR_MAKEFILE ON)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(EXPORT_ALL_SYMBOLS "Export all symbols form library" OFF)
option(BUILD_TESTING "Build library unit tests" ON)
option(WITH_LIBRARY_VERSIONING "Use library version triplet" ON)
# Default to release build type
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
if(CMAKE_COMPILER_IS_GNUCC)
if(NOT EXPORT_ALL_SYMBOLS)
message(STATUS "GCC default symbol visibility: hidden")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
endif()
endif()
endif()
# Include our extra modules
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
# Include cmake modules # Include cmake modules
include(CheckIncludeFiles) include(CheckIncludeFiles)
@ -28,25 +57,16 @@ include(CheckStructHasMember)
include(FindPkgConfig) include(FindPkgConfig)
include(TestBigEndian) include(TestBigEndian)
# Include our extra modules
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
# Check for cmake compatibility (enable/disable features) # Check for cmake compatibility (enable/disable features)
include(CheckCmakeCompat) include(CheckCmakeCompat)
include(FindFeature) include(FindFeature)
include(ConfigOptions)
include(CheckCCompilerFlag) include(CheckCCompilerFlag)
include(GNUInstallDirsWrapper) include(GNUInstallDirsWrapper)
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
include (SetFreeRDPCMakeInstallDir)
# Default to release build type if(BUILD_SHARED_LIBS)
if(NOT CMAKE_BUILD_TYPE) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DRDTK_EXPORTS")
set(CMAKE_BUILD_TYPE "Release")
endif()
# Default to build shared libs
if(NOT DEFINED BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS ON)
endif() endif()
if (NOT IOS) if (NOT IOS)
@ -58,15 +78,26 @@ else()
set(WINPR_HAVE_STDBOOL_H 1) set(WINPR_HAVE_STDBOOL_H 1)
endif() endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DRDTK_EXPORTS")
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
if (FREERDP_UNIFIED_BUILD)
include_directories(${CMAKE_SOURCE_DIR}/winpr/include)
include_directories(${CMAKE_BINARY_DIR}/winpr/include)
else()
find_package(WinPR 3 REQUIRED)
include_directories(${WinPR_INCLUDE_DIR})
endif()
SetFreeRDPCMakeInstallDir(RDTK_CMAKE_INSTALL_DIR "rdtk${RDTK_VERSION_MAJOR}")
add_subdirectory(include)
add_subdirectory(librdtk) add_subdirectory(librdtk)
add_subdirectory(templates)
install(EXPORT rdtk DESTINATION ${RDTK_CMAKE_INSTALL_DIR})
if(WITH_SAMPLE) if(WITH_SAMPLE)
if(WITH_X11) if(WITH_X11)
add_subdirectory(sample) add_subdirectory(sample)
endif() endif()
endif() endif()

View File

@ -0,0 +1,2 @@
file(GLOB RDTK_HEADERS "rdkt/*.h")
install(FILES ${RDTK_HEADERS} DESTINATION include/rdkt${RDTK_API_VERSION}/rdkt COMPONENT headers)

View File

@ -21,8 +21,6 @@
#include <winpr/spec.h> #include <winpr/spec.h>
/* Don't do any export */
#if 0
#if defined _WIN32 || defined __CYGWIN__ #if defined _WIN32 || defined __CYGWIN__
#ifdef RDTK_EXPORTS #ifdef RDTK_EXPORTS
#ifdef __GNUC__ #ifdef __GNUC__
@ -44,7 +42,5 @@
#define RDTK_EXPORT #define RDTK_EXPORT
#endif #endif
#endif #endif
#endif
#define RDTK_EXPORT
#endif /* RDTK_API_H */ #endif /* RDTK_API_H */

View File

@ -36,12 +36,33 @@ set(${MODULE_PREFIX}_SRCS
rdtk_engine.c rdtk_engine.c
rdtk_engine.h) rdtk_engine.h)
add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS}) # On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32)
set (RC_VERSION_MAJOR ${RDTK_VERSION_MAJOR})
set (RC_VERSION_MINOR ${RDTK_VERSION_MINOR})
set (RC_VERSION_BUILD ${RDTK_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${RDTK_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY)
list (APPEND ${MODULE_PREFIX}_SRCS ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif()
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
list(APPEND ${MODULE_PREFIX}_LIBS winpr) list(APPEND ${MODULE_PREFIX}_LIBS winpr)
list(APPEND ${MODULE_PREFIX}_LIBS freerdp)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${${MODULE_PREFIX}_LIBS})
set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C)
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${RDTK_API_VERSION})
if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${RDTK_VERSION} SOVERSION ${RDTK_API_VERSION})
endif()
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "RdTk") set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "RdTk")
@ -49,6 +70,12 @@ if(BUILD_TESTING)
add_subdirectory(test) add_subdirectory(test)
endif() endif()
if (NOT BUILD_SHARED_LIBS) install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT rdtk
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDP-ShadowTargets) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
if (WITH_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
get_target_property(OUTPUT_FILENAME ${MODULE_NAME} OUTPUT_NAME)
install(FILES ${CMAKE_PDB_BINARY_DIR}/${OUTPUT_FILENAME}.pdb DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT symbols)
endif() endif()

View File

@ -13,7 +13,7 @@ create_test_sourcelist(${MODULE_PREFIX}_SRCS
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
target_link_libraries(${MODULE_NAME} rdtk) target_link_libraries(${MODULE_NAME} winpr rdtk)
set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}") set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")

3
rdtk/templates/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.h
*.pc
*.cmake

View File

@ -0,0 +1,45 @@
include (SetFreeRDPCMakeInstallDir)
set(RDTK_INCLUDE_DIR "include/rdtk${RDTK_VERSION_MAJOR}")
# cmake package
export(PACKAGE rdtk)
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/rdtkConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/rdtkConfig.cmake
INSTALL_DESTINATION ${RDTK_CMAKE_INSTALL_DIR}
PATH_VARS RDTK_INCLUDE_DIR)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/rdtkConfigVersion.cmake
VERSION ${RDTK_VERSION}
COMPATIBILITY SameMajorVersion)
set(RDTK_BUILD_CONFIG_LIST "")
GET_CMAKE_PROPERTY(res VARIABLES)
FOREACH(var ${res})
IF (var MATCHES "^WITH_*|^BUILD_TESTING|^BUILTIN_CHANNELS|^HAVE_*")
LIST(APPEND RDTK_BUILD_CONFIG_LIST "${var}=${${var}}")
ENDIF()
ENDFOREACH()
string(REPLACE ";" " " RDTK_BUILD_CONFIG "${RDTK_BUILD_CONFIG_LIST}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/buildflags.h.in ${CMAKE_CURRENT_BINARY_DIR}/buildflags.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/build-config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rdtk.pc.in ${CMAKE_CURRENT_BINARY_DIR}/rdtk${RDTK_VERSION_MAJOR}.pc @ONLY)
set(RDTK_INSTALL_INCLUDE_DIR include/rdtk${RDTK_API_VERSION}/rdtk)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version.h DESTINATION ${RDTK_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h DESTINATION ${RDTK_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/build-config.h DESTINATION ${RDTK_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/buildflags.h DESTINATION ${RDTK_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rdtk${RDTK_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/rdtkConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/rdtkConfigVersion.cmake
DESTINATION ${RDTK_CMAKE_INSTALL_DIR})

View File

@ -0,0 +1,20 @@
#ifndef RDTK_BUILD_CONFIG_H
#define RDTK_BUILD_CONFIG_H
#define RDTK_DATA_PATH "${WINPR_DATA_PATH}"
#define RDTK_KEYMAP_PATH "${WINPR_KEYMAP_PATH}"
#define RDTK_PLUGIN_PATH "${WINPR_PLUGIN_PATH}"
#define RDTK_INSTALL_PREFIX "${WINPR_INSTALL_PREFIX}"
#define RDTK_LIBRARY_PATH "${WINPR_LIBRARY_PATH}"
#define RDTK_ADDIN_PATH "${WINPR_ADDIN_PATH}"
#define RDTK_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}"
#define RDTK_SHARED_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}"
#define RDTK_VENDOR_STRING "${VENDOR}"
#define RDTK_PRODUCT_STRING "${PRODUCT}"
#endif /* RDTK_BUILD_CONFIG_H */

View File

@ -0,0 +1,11 @@
#ifndef RDTK_BUILD_FLAGS_H
#define RDTK_BUILD_FLAGS_H
#define CFLAGS "${CMAKE_C_FLAGS}"
#define COMPILER_ID "${CMAKE_C_COMPILER_ID}"
#define COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}"
#define TARGET_ARCH "${TARGET_ARCH}"
#define BUILD_CONFIG "${RDTK_BUILD_CONFIG}"
#define BUILD_TYPE "${CMAKE_BUILD_TYPE}"
#endif /* RDTK_BUILD_FLAGS_H */

View File

@ -0,0 +1,4 @@
#ifndef RDTK_CONFIG_H
#define RDTK_CONFIG_H
#endif /* RDTK_CONFIG_H */

15
rdtk/templates/rdtk.pc.in Normal file
View File

@ -0,0 +1,15 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@RDTK_INCLUDE_DIR@
libs=-lrdtk@RDTK_VERSION_MAJOR@
Name: rdtk@RDTK_API_VERSION@
Description: rdtk:
URL: http://www.freerdp.com/
Version: @RDTK_VERSION@
Requires:
Requires.private: winpr@WINPR_VERSION_MAJOR@
Libs: -L${libdir} ${libs}
Libs.private:
Cflags: -I${includedir}

View File

@ -0,0 +1,9 @@
@PACKAGE_INIT@
set(RDTK_VERSION_MAJOR "@RDTK_VERSION_MAJOR@")
set(RDTK_VERSION_MINOR "@RDTK_VERSION_MINOR@")
set(RDTK_VERSION_REVISION "@RDTK_VERSION_REVISION@")
set_and_check(RDTK_INCLUDE_DIR "@PACKAGE_RDTK_INCLUDE_DIR@")
include("${CMAKE_CURRENT_LIST_DIR}/rdtk.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 RDTK_VERSION_H
#define RDTK_VERSION_H
#define RDTK_VERSION_MAJOR ${RDTK_VERSION_MAJOR}
#define RDTK_VERSION_MINOR ${RDTK_VERSION_MINOR}
#define RDTK_VERSION_REVISION ${RDTK_VERSION_REVISION}
#define RDTK_VERSION_SUFFIX "${RDTK_VERSION_SUFFIX}"
#define RDTK_API_VERSION "${RDTK_API_VERSION}"
#define RDTK_VERSION "${RDTK_VERSION}"
#define RDTK_VERSION_FULL "${RDTK_VERSION_FULL}"
#define RDTK_GIT_REVISION "${GIT_REVISION}"
#endif /* RDTK_VERSION_H */

View File

@ -76,22 +76,20 @@ endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/freerdp-server.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp-server${FREERDP_VERSION_MAJOR}.pc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/freerdp-server.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp-server${FREERDP_VERSION_MAJOR}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-server${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-server${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10") export(PACKAGE freerdp-server)
export(PACKAGE freerdp-server) SetFreeRDPCMakeInstallDir(FREERDP_SERVER_CMAKE_INSTALL_DIR "FreeRDP-Server${FREERDP_VERSION_MAJOR}")
SetFreeRDPCMakeInstallDir(FREERDP_SERVER_CMAKE_INSTALL_DIR "FreeRDP-Server${FREERDP_VERSION_MAJOR}") configure_package_config_file(FreeRDP-ServerConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfig.cmake
INSTALL_DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR}
PATH_VARS FREERDP_INCLUDE_DIR)
configure_package_config_file(FreeRDP-ServerConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfig.cmake write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfigVersion.cmake
INSTALL_DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR} VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion)
PATH_VARS FREERDP_INCLUDE_DIR)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfigVersion.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfigVersion.cmake
VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion) DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ServerConfigVersion.cmake
DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR})
if (NOT BUILTIN_CHANNELS)
install(EXPORT FreeRDP-ServerTargets DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR}) install(EXPORT FreeRDP-ServerTargets DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR})
endif() endif()

View File

@ -64,7 +64,7 @@ set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
if(WITH_SERVER_INTERFACE) if(WITH_SERVER_INTERFACE)
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${FREERDP_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
else() else()
set (RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}" ) set (RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}" )
endif() endif()

View File

@ -43,7 +43,7 @@ if (WIN32)
set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${FREERDP_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
@ -60,8 +60,8 @@ if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
endif() endif()
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${FREERDP_CHANNELS_SERVER_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${FREERDP_CHANNELS_SERVER_LIBS})
target_link_libraries(${MODULE_NAME} ${PUBLIC_KEYWORD} winpr freerdp) target_link_libraries(${MODULE_NAME} PUBLIC winpr freerdp)
install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT FreeRDP-ServerTargets install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT FreeRDP-ServerTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -54,6 +54,14 @@ set(${MODULE_PREFIX}_SRCS
shadow_server.c shadow_server.c
shadow.h) shadow.h)
if (NOT FREERDP_UNIFIED_BUILD)
find_package(rdtk 0 REQUIRED)
include_directories(${RDTK_INCLUDE_DIR})
else()
include_directories(${CMAKE_SOURCE_DIR}/rdtk/include)
include_directories(${CMAKE_BINARY_DIR}/rdtk/include)
endif()
# On windows create dll version information. # On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt # Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32) if (WIN32)
@ -61,7 +69,7 @@ if (WIN32)
set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR}) set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION}) set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
set (RC_VERSION_PATCH 0) set (RC_VERSION_PATCH 0)
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${FREERDP_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
@ -79,7 +87,7 @@ list(APPEND ${MODULE_PREFIX}_LIBS winpr)
list(APPEND ${MODULE_PREFIX}_LIBS winpr-tools) list(APPEND ${MODULE_PREFIX}_LIBS winpr-tools)
list(APPEND ${MODULE_PREFIX}_LIBS rdtk) list(APPEND ${MODULE_PREFIX}_LIBS rdtk)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${${MODULE_PREFIX}_LIBS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_VERSION_MAJOR}) set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_VERSION_MAJOR})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
@ -287,7 +295,7 @@ add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-shadow freerdp winpr) set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-shadow freerdp winpr)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${${MODULE_PREFIX}_LIBS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
@ -335,7 +343,7 @@ add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-shadow-subsystem freerdp-shadow winpr) set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-shadow-subsystem freerdp-shadow winpr)
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${${MODULE_PREFIX}_LIBS})
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT server) install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT server)
if (WITH_DEBUG_SYMBOLS AND MSVC) if (WITH_DEBUG_SYMBOLS AND MSVC)
@ -351,21 +359,20 @@ install_freerdp_man(${CMAKE_CURRENT_BINARY_DIR}/freerdp-shadow-cli.1 1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-shadow${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp-shadow${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10") export(PACKAGE freerdp-shadow)
export(PACKAGE freerdp-shadow) SetFreeRDPCMakeInstallDir(FREERDP_SERVER_CMAKE_INSTALL_DIR "FreeRDP-Shadow${FREERDP_VERSION_MAJOR}")
SetFreeRDPCMakeInstallDir(FREERDP_SERVER_CMAKE_INSTALL_DIR "FreeRDP-Shadow${FREERDP_VERSION_MAJOR}") configure_package_config_file(FreeRDP-ShadowConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfig.cmake
INSTALL_DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR}
PATH_VARS FREERDP_INCLUDE_DIR)
configure_package_config_file(FreeRDP-ShadowConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfig.cmake write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfigVersion.cmake
INSTALL_DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR} VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion)
PATH_VARS FREERDP_INCLUDE_DIR)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfigVersion.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfigVersion.cmake
VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion) DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDP-ShadowConfigVersion.cmake
DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR})
if (NOT BUILTIN_CHANNELS)
install(EXPORT FreeRDP-ShadowTargets DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR}) install(EXPORT FreeRDP-ShadowTargets DESTINATION ${FREERDP_SERVER_CMAKE_INSTALL_DIR})
endif() endif()

View File

@ -23,30 +23,75 @@ set(UWAC_VERSION "${UWAC_VERSION_MAJOR}.${UWAC_VERSION_MINOR}.${UWAC_VERSION_REV
set(UWAC_VERSION_FULL "${UWAC_VERSION}") set(UWAC_VERSION_FULL "${UWAC_VERSION}")
set(UWAC_API_VERSION "${UWAC_VERSION_MAJOR}") set(UWAC_API_VERSION "${UWAC_VERSION_MAJOR}")
add_subdirectory(include) if (NOT FREERDP_UNIFIED_BUILD)
add_subdirectory(libuwac) cmake_minimum_required(VERSION 3.4)
project(uwac VERSION ${UWAC_VERSION} LANGUAGES C)
set(UWAC_INCLUDE_DIR "include/uwac${UWAC_VERSION_MAJOR}") set(CMAKE_COLOR_MAKEFILE ON)
# cmake package
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10")
export(PACKAGE uwac) option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(EXPORT_ALL_SYMBOLS "Export all symbols form library" OFF)
option(BUILD_TESTING "Build library unit tests" ON)
option(WITH_LIBRARY_VERSIONING "Use library version triplet" ON)
SetFreeRDPCMakeInstallDir(UWAC_CMAKE_INSTALL_DIR "uwac${UWAC_VERSION_MAJOR}") if(CMAKE_COMPILER_IS_GNUCC)
if(NOT EXPORT_ALL_SYMBOLS)
message(STATUS "GCC default symbol visibility: hidden")
configure_package_config_file(uwacConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/uwacConfig.cmake set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
INSTALL_DESTINATION ${UWAC_CMAKE_INSTALL_DIR} endif()
PATH_VARS UWAC_INCLUDE_DIR) endif()
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() endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/uwac.pc.in ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc @ONLY) option(HAVE_PIXMAN_REGION "Use PIXMAN or FreeRDP for region calculations" "NOT FREERDP_UNIFIED_BUILD")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
# Include our extra modules
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
# Check for cmake compatibility (enable/disable features)
include(FindFeature)
include(SetFreeRDPCMakeInstallDir)
include(CMakePackageConfigHelpers)
include(GNUInstallDirsWrapper)
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
if (NOT IOS)
check_include_files(stdbool.h WINPR_HAVE_STDBOOL_H)
if (NOT WINPR_HAVE_STDBOOL_H)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../compat/stdbool)
endif()
else()
set(WINPR_HAVE_STDBOOL_H 1)
endif()
# Find required libraries
if (HAVE_PIXMAN_REGION)
include(FindPkgConfig)
pkg_check_modules(pixman REQUIRED pixman-1)
include_directories(${pixman_INCLUDE_DIRS})
add_definitions(-DHAVE_PIXMAN_REGION)
elseif (FREERDP_UNIFIED_BUILD)
include_directories(${CMAKE_SOURCE_DIR}/winpr/include)
include_directories(${CMAKE_BINARY_DIR}/winpr/include)
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_BINARY_DIR}/include)
else()
find_package(WinPR 3 REQUIRED)
find_package(FreeRDP 3 REQUIRED)
include_directories(${WinPR_INCLUDE_DIR})
include_directories(${FreeRDP_INCLUDE_DIR})
endif()
set(WAYLAND_FEATURE_PURPOSE "Wayland")
set(WAYLAND_FEATURE_DESCRIPTION "Wayland client")
set(WAYLAND_FEATURE_TYPE "REQUIRED")
find_feature(Wayland ${WAYLAND_FEATURE_TYPE} ${WAYLAND_FEATURE_PURPOSE} ${WAYLAND_FEATURE_DESCRIPTION})
include_directories(${CMAKE_CURRENT_BINARY_DIR}/templates)
add_subdirectory(libuwac)
add_subdirectory(include)
add_subdirectory(templates)

View File

@ -1,7 +1 @@
fullscreen-shell-client-protocol.h protocols/*
fullscreen-shell-protocol.c
ivi-application-client-protocol.h
ivi-application-protocol.c
xdg-shell-client-protocol.h
xdg-shell-protocol.c

View File

@ -17,23 +17,24 @@
set(MODULE_NAME "uwac") set(MODULE_NAME "uwac")
set(MODULE_PREFIX "UWAC") set(MODULE_PREFIX "UWAC")
set(GENERATED_SOURCES "") set(GENERATED_SOURCES "")
macro(generate_protocol_file PROTO) macro(generate_protocol_file PROTO)
add_custom_command( add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROTO}-protocol.c" OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/protocols/${PROTO}-protocol.c"
COMMAND ${WAYLAND_SCANNER} code < ${CMAKE_SOURCE_DIR}/uwac/protocols/${PROTO}.xml > ${CMAKE_CURRENT_BINARY_DIR}/${PROTO}-protocol.c COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/protocols
DEPENDS ${CMAKE_SOURCE_DIR}/uwac/protocols/${PROTO}.xml COMMAND ${WAYLAND_SCANNER} code < ${CMAKE_CURRENT_SOURCE_DIR}/../protocols/${PROTO}.xml > ${CMAKE_CURRENT_BINARY_DIR}/protocols/${PROTO}-protocol.c
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../protocols/${PROTO}.xml
) )
add_custom_command( add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROTO}-client-protocol.h" OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/protocols/${PROTO}-client-protocol.h"
COMMAND ${WAYLAND_SCANNER} client-header < ${CMAKE_SOURCE_DIR}/uwac/protocols/${PROTO}.xml > ${CMAKE_CURRENT_BINARY_DIR}/${PROTO}-client-protocol.h COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/protocols
DEPENDS ${CMAKE_SOURCE_DIR}/uwac/protocols/${PROTO}.xml COMMAND ${WAYLAND_SCANNER} client-header < ${CMAKE_CURRENT_SOURCE_DIR}/../protocols/${PROTO}.xml > ${CMAKE_CURRENT_BINARY_DIR}/protocols/${PROTO}-client-protocol.h
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../protocols/${PROTO}.xml
) )
list(APPEND GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${PROTO}-client-protocol.h) list(APPEND GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/protocols/${PROTO}-client-protocol.h)
list(APPEND GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${PROTO}-protocol.c) list(APPEND GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/protocols/${PROTO}-protocol.c)
endmacro() endmacro()
generate_protocol_file(xdg-shell) generate_protocol_file(xdg-shell)
@ -48,9 +49,9 @@ if(FREEBSD)
endif() endif()
include_directories(${WAYLAND_INCLUDE_DIR}) include_directories(${WAYLAND_INCLUDE_DIR})
include_directories(${XKBCOMMON_INCLUDE_DIR}) include_directories(${XKBCOMMON_INCLUDE_DIR})
include_directories("${CMAKE_SOURCE_DIR}/uwac/include") include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include")
include_directories("${CMAKE_BINARY_DIR}/uwac/include") include_directories("${CMAKE_CURRENT_BINARY_DIR}/../include")
include_directories("${CMAKE_BINARY_DIR}/uwac/libuwac") include_directories("${CMAKE_CURRENT_BINARY_DIR}/protocols")
add_definitions(-DBUILD_IVI -DBUILD_FULLSCREEN_SHELL -DENABLE_XKBCOMMON) add_definitions(-DBUILD_IVI -DBUILD_FULLSCREEN_SHELL -DENABLE_XKBCOMMON)
@ -70,16 +71,23 @@ set(${MODULE_PREFIX}_SRCS
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C)
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${UWAC_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${UWAC_API_VERSION})
if (WITH_LIBRARY_VERSIONING) if (WITH_LIBRARY_VERSIONING)
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${UWAC_VERSION} SOVERSION ${UWAC_API_VERSION}) set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${UWAC_VERSION} SOVERSION ${UWAC_API_VERSION})
endif() endif()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} ${PRIVATE_KEYWORD} ${WAYLAND_LIBS} ${XKBCOMMON_LIBS} ${EPOLLSHIM_LIBS} freerdp) target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} PRIVATE ${WAYLAND_LIBS} ${XKBCOMMON_LIBS} ${EPOLLSHIM_LIBS})
if (HAVE_PIXMAN_REGION)
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT uwac) target_link_libraries(${MODULE_NAME} PRIVATE ${pixman_LINK_LIBRARIES})
else()
target_link_libraries(${MODULE_NAME} PRIVATE freerdp)
endif()
install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT uwac
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "uwac") set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "uwac")

View File

@ -51,7 +51,7 @@
#include <string.h> #include <string.h>
#include <sys/epoll.h> #include <sys/epoll.h>
#include "../config.h" #include "config.h"
#include "uwac-os.h" #include "uwac-os.h"
#include "uwac-utils.h" #include "uwac-utils.h"

3
uwac/templates/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.h
*.pc
*.cmake

View File

@ -0,0 +1,44 @@
set(UWAC_INCLUDE_DIR "include/uwac${UWAC_VERSION_MAJOR}")
# 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})
set(UWAC_BUILD_CONFIG_LIST "")
GET_CMAKE_PROPERTY(res VARIABLES)
FOREACH(var ${res})
IF (var MATCHES "^WITH_*|^BUILD_TESTING|^BUILTIN_CHANNELS|^HAVE_*")
LIST(APPEND UWAC_BUILD_CONFIG_LIST "${var}=${${var}}")
ENDIF()
ENDFOREACH()
string(REPLACE ";" " " UWAC_BUILD_CONFIG "${UWAC_BUILD_CONFIG_LIST}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/buildflags.h.in ${CMAKE_CURRENT_BINARY_DIR}/buildflags.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/build-config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/uwac.pc.in ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc @ONLY)
set(UWAC_INSTALL_INCLUDE_DIR include/uwac${UWAC_API_VERSION}/uwac)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version.h DESTINATION ${UWAC_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h DESTINATION ${UWAC_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/build-config.h DESTINATION ${UWAC_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/buildflags.h DESTINATION ${UWAC_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/uwac${UWAC_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

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 CFLAGS "${CMAKE_C_FLAGS}"
#define COMPILER_ID "${CMAKE_C_COMPILER_ID}"
#define COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}"
#define TARGET_ARCH "${TARGET_ARCH}"
#define BUILD_CONFIG "${UWAC_BUILD_CONFIG}"
#define BUILD_TYPE "${CMAKE_BUILD_TYPE}"
#endif /* UWAC_BUILD_FLAGS_H */

View File

@ -0,0 +1,31 @@
#ifndef UWAC_CONFIG_H
#define UWAC_CONFIG_H
/* Include files */
#cmakedefine HAVE_FCNTL_H
#if defined(__APPLE__) && !defined(__IOS__)
#cmakedefine01 HAVE_UNISTD_H
#else
#cmakedefine HAVE_UNISTD_H
#endif
#cmakedefine HAVE_INTTYPES_H
#cmakedefine HAVE_SYS_MODEM_H
#cmakedefine HAVE_SYS_FILIO_H
#cmakedefine HAVE_SYS_SELECT_H
#cmakedefine HAVE_SYS_SOCKIO_H
#cmakedefine HAVE_SYS_STRTIO_H
#cmakedefine HAVE_SYS_EVENTFD_H
#cmakedefine HAVE_SYS_TIMERFD_H
#cmakedefine HAVE_TM_GMTOFF
#cmakedefine HAVE_AIO_H
#cmakedefine HAVE_POLL_H
#cmakedefine HAVE_SYSLOG_H
#cmakedefine HAVE_JOURNALD_H
#cmakedefine HAVE_PTHREAD_MUTEX_TIMEDLOCK
#cmakedefine HAVE_VALGRIND_MEMCHECK_H
#cmakedefine HAVE_EXECINFO_H
#cmakedefine HAVE_GETLOGIN_R
#cmakedefine HAVE_STRNDUP
#cmakedefine HAVE_PIXMAN_REGION
#endif /* UWAC_CONFIG_H */

View File

@ -4,7 +4,7 @@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=${prefix}/@UWAC_INCLUDE_DIR@ includedir=${prefix}/@UWAC_INCLUDE_DIR@
libs=-luwac@UWAC_VERSION_MAJOR@ libs=-luwac@UWAC_VERSION_MAJOR@
Name: uwac Name: uwac@UWAC_API_VERSION@
Description: uwac: using wayland as a client Description: uwac: using wayland as a client
URL: http://www.freerdp.com/ URL: http://www.freerdp.com/
Version: @UWAC_VERSION@ Version: @UWAC_VERSION@

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 */

View File

@ -1,46 +0,0 @@
# This is a basic version file for the Config-mode of find_package().
# It is used by write_basic_package_version_file() as input file for configure_file()
# to create a version-file which can be installed along a config.cmake file.
#
# The created file sets PACKAGE_VERSION_EXACT if the current version string and
# the requested version string are exactly the same and it sets
# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
# but only if the requested major version is the same as the current one.
# The variable CVF_VERSION must be set before calling configure_file().
set(PACKAGE_VERSION "0.0.1")
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("0.0.1" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
else()
set(CVF_VERSION_MAJOR "0.0.1")
endif()
if("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "${CVF_VERSION_MAJOR}")
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
return()
endif()
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
math(EXPR installedBits "8 * 8")
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()

1
winpr/.gitignore vendored
View File

@ -1 +1,2 @@
tools/reg/winpr-reg tools/reg/winpr-reg
include/winpr/build-config.h

View File

@ -15,21 +15,31 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
cmake_minimum_required(VERSION 3.4) if (NOT FREERDP_UNIFIED_BUILD)
cmake_minimum_required(VERSION 3.4)
project(WinPR LANGUAGES C)
project(WinPR C CXX) set(CMAKE_COLOR_MAKEFILE ON)
option(WITH_LIBRARY_VERSIONING "Use library version triplet" ON)
set(CMAKE_COLOR_MAKEFILE ON) # Default to build shared libs
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(EXPORT_ALL_SYMBOLS "Export all symbols form library" OFF)
if(CMAKE_COMPILER_IS_GNUCC)
if(NOT EXPORT_ALL_SYMBOLS)
message(STATUS "GCC default symbol visibility: hidden")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
endif()
endif()
endif()
option(WITH_VERBOSE_WINPR_ASSERT "Compile with verbose WINPR_ASSERT." ON) option(WITH_VERBOSE_WINPR_ASSERT "Compile with verbose WINPR_ASSERT." ON)
option(WITH_WINPR_TOOLS "Build WinPR helper binaries" ON)
if (WITH_VERBOSE_WINPR_ASSERT) if (WITH_VERBOSE_WINPR_ASSERT)
add_definitions(-DWITH_VERBOSE_WINPR_ASSERT) add_definitions(-DWITH_VERBOSE_WINPR_ASSERT)
endif() endif()
if(FREERDP_VERSION)
set(FREERDP_BUILD 1)
endif()
# Include cmake modules # Include cmake modules
include(CheckIncludeFiles) include(CheckIncludeFiles)
@ -45,11 +55,12 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/)
# Check for cmake compatibility (enable/disable features) # Check for cmake compatibility (enable/disable features)
include(CheckCmakeCompat) include(CheckCmakeCompat)
include(FindFeature) include(FindFeature)
include(ConfigOptions)
include(ComplexLibrary) include(ComplexLibrary)
include(FeatureSummary) include(FeatureSummary)
include(CheckCCompilerFlag) include(CheckCCompilerFlag)
include(GNUInstallDirsWrapper) include(GNUInstallDirsWrapper)
include(InstallFreeRDPMan)
include(SetFreeRDPCMakeInstallDir)
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
if (NOT WIN32) if (NOT WIN32)
@ -83,20 +94,22 @@ else()
endif() endif()
if(NOT IOS) if(NOT IOS)
check_include_files(stdbool.h WINPR_HAVE_STDBOOL_H)
check_include_files(stdint.h WINPR_HAVE_STDINT_H) check_include_files(stdint.h WINPR_HAVE_STDINT_H)
check_include_files(inttypes.h WINPR_HAVE_INTTYPES_H) check_include_files(inttypes.h WINPR_HAVE_INTTYPES_H)
else(NOT IOS) else(NOT IOS)
set(WINPR_HAVE_STDBOOL_H 1)
set(WINPR_HAVE_STDINT_H 1) set(WINPR_HAVE_STDINT_H 1)
set(WINPR_HAVE_INTTYPES_H 1) set(WINPR_HAVE_INTTYPES_H 1)
endif(NOT IOS) endif(NOT IOS)
if(FREERDP_BUILD) if (NOT IOS)
set(WINPR_VERSION_FULL ${WINPR_VERSION_FULL} PARENT_SCOPE) check_include_files(stdbool.h WINPR_HAVE_STDBOOL_H)
set(WINPR_VERSION ${WINPR_VERSION} PARENT_SCOPE) if (NOT WINPR_HAVE_STDBOOL_H)
set(WINPR_API_VERSION ${WINPR_API_VERSION} PARENT_SCOPE) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../compat/stdbool)
endif()
else() else()
set(WINPR_HAVE_STDBOOL_H 1)
endif()
set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
if(NOT IOS) if(NOT IOS)
@ -141,7 +154,7 @@ else()
endif (HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL OR HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB OR HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS) endif (HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL OR HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB OR HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS)
endif() endif()
set(OPENSSL_FEATURE_TYPE "OPTIONAL") set(OPENSSL_FEATURE_TYPE "RECOMMENDED")
set(OPENSSL_FEATURE_PURPOSE "cryptography") set(OPENSSL_FEATURE_PURPOSE "cryptography")
set(OPENSSL_FEATURE_DESCRIPTION "encryption, certificate validation, hashing functions") set(OPENSSL_FEATURE_DESCRIPTION "encryption, certificate validation, hashing functions")
@ -160,6 +173,10 @@ else()
add_definitions("-DWITH_MBEDTLS") add_definitions("-DWITH_MBEDTLS")
endif() endif()
if (NOT OPENSSL_FOUND AND NOT MBEDTLS_FOUND)
message(FATAL_ERROR "OpenSSL or MBedTLS are required, none enabled/found")
endif()
# Include directories # Include directories
include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR})
@ -173,7 +190,6 @@ else()
set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
else() else()
set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Testing") set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Testing")
endif()
endif() endif()
# Default to release build type # Default to release build type
@ -181,11 +197,6 @@ if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release") set(CMAKE_BUILD_TYPE "Release")
endif() endif()
# Default to build shared libs
if(NOT DEFINED BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS ON)
endif()
if(BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_DLL") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_DLL")
endif() endif()
@ -215,30 +226,24 @@ endif()
install_freerdp_man(wlog.7 7) install_freerdp_man(wlog.7 7)
# Exporting # Exporting
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10") export(PACKAGE winpr)
export(PACKAGE winpr) SetFreeRDPCMakeInstallDir(WINPR_CMAKE_INSTALL_DIR "WinPR${WINPR_VERSION_MAJOR}")
SetFreeRDPCMakeInstallDir(WINPR_CMAKE_INSTALL_DIR "WinPR${WINPR_VERSION_MAJOR}") set(WINPR_INCLUDE_DIR "include/winpr${WINPR_VERSION_MAJOR}")
set(WINPR_INCLUDE_DIR "include/winpr${WINPR_VERSION_MAJOR}") configure_package_config_file(WinPRConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/WinPRConfig.cmake
INSTALL_DESTINATION ${WINPR_CMAKE_INSTALL_DIR}
PATH_VARS WINPR_INCLUDE_DIR)
configure_package_config_file(WinPRConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/WinPRConfig.cmake write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/WinPRConfigVersion.cmake
INSTALL_DESTINATION ${WINPR_CMAKE_INSTALL_DIR} VERSION ${WINPR_VERSION} COMPATIBILITY SameMajorVersion)
PATH_VARS WINPR_INCLUDE_DIR)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/WinPRConfigVersion.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/WinPRConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/WinPRConfigVersion.cmake
VERSION ${WINPR_VERSION} COMPATIBILITY SameMajorVersion) DESTINATION ${WINPR_CMAKE_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/WinPRConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/WinPRConfigVersion.cmake install(EXPORT WinPRTargets DESTINATION ${WINPR_CMAKE_INSTALL_DIR})
DESTINATION ${WINPR_CMAKE_INSTALL_DIR})
install(EXPORT WinPRTargets DESTINATION ${WINPR_CMAKE_INSTALL_DIR})
endif()
if(FREERDP_BUILD)
set(WINPR_PKG_CONFIG_FILENAME winpr${WINPR_VERSION_MAJOR} PARENT_SCOPE)
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr.pc.in ${CMAKE_CURRENT_BINARY_DIR}/winpr${WINPR_VERSION_MAJOR}.pc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr.pc.in ${CMAKE_CURRENT_BINARY_DIR}/winpr${WINPR_VERSION_MAJOR}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr${WINPR_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr${WINPR_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/buildflags.h.in ${CMAKE_CURRENT_BINARY_DIR}/buildflags.h)

11
winpr/buildflags.h.in Normal file
View File

@ -0,0 +1,11 @@
#ifndef WINPR_BUILD_FLAGS_H
#define WINPR_BUILD_FLAGS_H
#define CFLAGS "${CMAKE_C_FLAGS}"
#define COMPILER_ID "${CMAKE_C_COMPILER_ID}"
#define COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}"
#define TARGET_ARCH "${TARGET_ARCH}"
#define BUILD_CONFIG "${WINPR_BUILD_CONFIG}"
#define BUILD_TYPE "${CMAKE_BUILD_TYPE}"
#endif /* WINPR_BUILD_FLAGS_H */

View File

@ -17,10 +17,12 @@
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/version.h) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/version.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/wtypes.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/wtypes.h) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/wtypes.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/wtypes.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/build-config.h)
set(WINPR_INSTALL_INCLUDE_DIR include/winpr${WINPR_VERSION_MAJOR}/winpr) set(WINPR_INSTALL_INCLUDE_DIR include/winpr${WINPR_VERSION_MAJOR}/winpr)
file(GLOB WINPR_HEADERS "winpr/*.h") file(GLOB WINPR_HEADERS "winpr/*.h")
install(FILES ${WINPR_HEADERS} DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers) install(FILES ${WINPR_HEADERS} DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr/version.h DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr/version.h DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr/wtypes.h DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr/wtypes.h DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpr/build-config.h DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers)
install(DIRECTORY winpr/tools DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers FILES_MATCHING PATTERN "*.h") install(DIRECTORY winpr/tools DESTINATION ${WINPR_INSTALL_INCLUDE_DIR} COMPONENT headers FILES_MATCHING PATTERN "*.h")

View File

@ -0,0 +1,22 @@
#ifndef WINPR_BUILD_CONFIG_H
#define WINPR_BUILD_CONFIG_H
#define WINPR_DATA_PATH "${WINPR_DATA_PATH}"
#define WINPR_KEYMAP_PATH "${WINPR_KEYMAP_PATH}"
#define WINPR_PLUGIN_PATH "${WINPR_PLUGIN_PATH}"
#define WINPR_INSTALL_PREFIX "${WINPR_INSTALL_PREFIX}"
#define WINPR_LIBRARY_PATH "${WINPR_LIBRARY_PATH}"
#define WINPR_ADDIN_PATH "${WINPR_ADDIN_PATH}"
#define WINPR_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}"
#define WINPR_SHARED_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}"
#define WINPR_VENDOR_STRING "${VENDOR}"
#define WINPR_PRODUCT_STRING "${PRODUCT}"
#define WINPR_PROXY_PLUGINDIR "${WINPR_PROXY_PLUGINDIR}"
#endif /* WINPR_BUILD_CONFIG_H */

View File

@ -125,7 +125,7 @@ if (WIN32)
set (RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR})
set (RC_VERSION_MINOR ${WINPR_VERSION_MINOR}) set (RC_VERSION_MINOR ${WINPR_VERSION_MINOR})
set (RC_VERSION_BUILD ${WINPR_VERSION_REVISION}) set (RC_VERSION_BUILD ${WINPR_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${WINPR_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
@ -144,7 +144,7 @@ if (WITH_LIBRARY_VERSIONING)
endif() endif()
add_definitions(${WINPR_DEFINITIONS}) add_definitions(${WINPR_DEFINITIONS})
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${WINPR_LIBS_PRIVATE} ${PUBLIC_KEYWORD} ${WINPR_LIBS_PUBLIC}) target_link_libraries(${MODULE_NAME} PRIVATE ${WINPR_LIBS_PRIVATE} PUBLIC ${WINPR_LIBS_PUBLIC})
install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT WinPRTargets install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT WinPRTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -29,7 +29,7 @@
#include <winpr/sysinfo.h> #include <winpr/sysinfo.h>
#include <winpr/registry.h> #include <winpr/registry.h>
#include <winpr/endian.h> #include <winpr/endian.h>
#include <freerdp/build-config.h> #include <winpr/build-config.h>
#include "ntlm.h" #include "ntlm.h"
#include "ntlm_export.h" #include "ntlm_export.h"
@ -40,7 +40,7 @@
#include "../../log.h" #include "../../log.h"
#define TAG WINPR_TAG("sspi.NTLM") #define TAG WINPR_TAG("sspi.NTLM")
#define WINPR_KEY "Software\\" FREERDP_VENDOR_STRING "\\" FREERDP_PRODUCT_STRING "\\WinPR\\NTLM" #define WINPR_KEY "Software\\" WINPR_VENDOR_STRING "\\" WINPR_PRODUCT_STRING "\\WinPR\\NTLM"
static char* NTLM_PACKAGE_NAME = "NTLM"; static char* NTLM_PACKAGE_NAME = "NTLM";

View File

@ -92,7 +92,7 @@ if (WIN32)
set (RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR}) set (RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR})
set (RC_VERSION_MINOR ${WINPR_VERSION_MINOR}) set (RC_VERSION_MINOR ${WINPR_VERSION_MINOR})
set (RC_VERSION_BUILD ${WINPR_VERSION_REVISION}) set (RC_VERSION_BUILD ${WINPR_VERSION_REVISION})
set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" ) set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${WINPR_TOOLS_API_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
@ -110,7 +110,7 @@ if (WITH_LIBRARY_VERSIONING)
endif() endif()
add_definitions(${WINPR_DEFINITIONS}) add_definitions(${WINPR_DEFINITIONS})
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${WINPR_TOOLS_LIBS}) target_link_libraries(${MODULE_NAME} PRIVATE ${WINPR_TOOLS_LIBS})
install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT WinPRTargets install(TARGETS ${MODULE_NAME} COMPONENT libraries EXPORT WinPRTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -1,4 +1,4 @@
.TH winpr-hash 1 2017-01-11 "@FREERDP_VERSION_FULL@" "FreeRDP" .TH winpr-hash 1 2017-01-11 "@WINPR_VERSION_FULL@" "FreeRDP"
.SH NAME .SH NAME
winpr-hash \- NTLM hashing tool winpr-hash \- NTLM hashing tool
.SH SYNOPSIS .SH SYNOPSIS

View File

@ -2,7 +2,7 @@
\\$2 \(laURL: \\$1 \(ra\\$3 \\$2 \(laURL: \\$1 \(ra\\$3
.. ..
.if \n[.g] .mso www.tmac .if \n[.g] .mso www.tmac
.TH winpr\-makecert 1 2017-01-11 "@FREERDP_VERSION_FULL@" "FreeRDP" .TH winpr\-makecert 1 2017-01-11 "@WINPR_VERSION_FULL@" "FreeRDP"
.SH NAME .SH NAME
winpr\-makecert \- A tool to create X.509 certificates. winpr\-makecert \- A tool to create X.509 certificates.
.SH SYNOPSIS .SH SYNOPSIS