Milestone 5: deliver embedded RDP sessions and lifecycle hardening
This commit is contained in:
61
third_party/FreeRDP/cmake/ConfigureRPATH.cmake
vendored
Normal file
61
third_party/FreeRDP/cmake/ConfigureRPATH.cmake
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
# RPATH configuration
|
||||
option(CMAKE_SKIP_BUILD_RPATH "skip build RPATH" OFF)
|
||||
option(CMAKE_BUILD_WITH_INSTALL_RPATH "build with install RPATH" OFF)
|
||||
option(CMAKE_INSTALL_RPATH_USE_LINK_PATH "build with link RPATH" OFF)
|
||||
|
||||
if(APPLE)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
option(CMAKE_MACOSX_RPATH "MacOSX RPATH" ON)
|
||||
endif()
|
||||
|
||||
file(RELATIVE_PATH FRAMEWORK_PATH ${CMAKE_INSTALL_FULL_BINDIR} ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
set(CFG_INSTALL_RPATH "@loader_path/${FRAMEWORK_PATH}")
|
||||
elseif(NOT WIN32)
|
||||
if(NOT FREEBSD)
|
||||
option(WITH_ADD_PLUGIN_TO_RPATH "Add extension and plugin path to RPATH" OFF)
|
||||
if(WITH_ADD_PLUGIN_TO_RPATH)
|
||||
set(CFG_INSTALL_RPATH
|
||||
"\$ORIGIN/../${FREERDP_EXTENSION_REL_PATH}:\$ORIGIN/../${FREERDP_PLUGIN_PATH}:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/.."
|
||||
)
|
||||
else()
|
||||
set(CFG_INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/..")
|
||||
endif()
|
||||
endif()
|
||||
endif(APPLE)
|
||||
|
||||
set(CMAKE_INSTALL_RPATH ${CFG_INSTALL_RPATH} CACHE INTERNAL "ConfigureRPATH")
|
||||
message("Configured RPATH=${CMAKE_INSTALL_RPATH}")
|
||||
|
||||
function(installWithRPATH)
|
||||
if(NOT APPLE AND NOT FREEBSD AND NOT WIN32)
|
||||
list(FIND ARGN "TARGETS" _index)
|
||||
if(${_index} GREATER -1)
|
||||
math(EXPR _index "${_index}+1")
|
||||
list(GET ARGN ${_index} target)
|
||||
else()
|
||||
message(FATAL_ERROR "Missing TARGETS for install directive")
|
||||
endif()
|
||||
list(FIND ARGN "DESTINATION" _index)
|
||||
if(${_index} GREATER -1)
|
||||
math(EXPR _index "${_index}+1")
|
||||
list(GET ARGN ${_index} path)
|
||||
else()
|
||||
message(FATAL_ERROR "Missing DESTINATION for install directive")
|
||||
endif()
|
||||
|
||||
get_filename_component(ABS_PATH ${path} ABSOLUTE BASE_DIR ${CMAKE_INSTALL_PREFIX})
|
||||
file(RELATIVE_PATH REL_PATH ${ABS_PATH} ${CMAKE_INSTALL_PREFIX})
|
||||
if(WITH_ADD_PLUGIN_TO_RPATH)
|
||||
set_target_properties(
|
||||
${target}
|
||||
PROPERTIES
|
||||
INSTALL_RPATH
|
||||
"\$ORIGIN/${REL_PATH}${FREERDP_EXTENSION_REL_PATH}:\$ORIGIN/${REL_PATH}${FREERDP_PLUGIN_PATH}:\$ORIGIN/${REL_PATH}${CMAKE_INSTALL_LIBDIR}"
|
||||
)
|
||||
else()
|
||||
set_target_properties(${target} PROPERTIES INSTALL_RPATH "\$ORIGIN/${REL_PATH}${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(${ARGN})
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user