mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
chore: allow fetching sso-mib as ExternalProject
This commit is contained in:
@@ -410,7 +410,6 @@ else()
|
||||
endif()
|
||||
|
||||
if(WITH_SSO_MIB)
|
||||
set(SSO_MIB_EXTERNAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sso-mib")
|
||||
find_package(SSO_MIB REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -55,16 +55,18 @@ endif()
|
||||
|
||||
include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
addtargetwithresourcefile(${MODULE_NAME} FALSE "${FREERDP_VERSION}" SRCS)
|
||||
|
||||
if(WITH_SSO_MIB)
|
||||
set(SSO_MIB_EXTERNAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../external/sso-mib")
|
||||
if(SSO_MIB_EXTERNAL_DIR)
|
||||
add_dependencies(${MODULE_NAME} sso-mib-external)
|
||||
endif()
|
||||
|
||||
include_directories(${SSO_MIB_INCLUDE_DIRS})
|
||||
add_compile_definitions(WITH_SSO_MIB)
|
||||
list(APPEND LIBS ${SSO_MIB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
addtargetwithresourcefile(${MODULE_NAME} FALSE "${FREERDP_VERSION}" SRCS)
|
||||
|
||||
list(APPEND LIBS freerdp winpr)
|
||||
|
||||
include(CheckLibraryExists)
|
||||
|
||||
@@ -5,16 +5,35 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Siemens
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(PC_SSO_MIB sso-mib>=0.4.0)
|
||||
pkg_check_modules(PC_SSO_MIB sso-mib>=0.5.0)
|
||||
|
||||
if(PC_SSO_MIB_FOUND)
|
||||
find_path(SSO_MIB_INCLUDE_DIR NAMES sso-mib/sso-mib.h HINTS ${PC_SSO_MIB_INCLUDEDIR})
|
||||
find_library(SSO_MIB_LIBRARY NAMES sso-mib HINTS ${PC_SSO_MIB_LIBRARYDIR})
|
||||
|
||||
find_package_handle_standard_args(SSO_MIB DEFAULT_MSG SSO_MIB_LIBRARY SSO_MIB_INCLUDE_DIR)
|
||||
|
||||
if(SSO_MIB_FOUND)
|
||||
set(SSO_MIB_LIBRARIES ${SSO_MIB_LIBRARY} ${PC_SSO_MIB_LIBRARIES})
|
||||
set(SSO_MIB_INCLUDE_DIRS ${SSO_MIB_INCLUDE_DIR} ${PC_SSO_MIB_INCLUDE_DIRS})
|
||||
endif()
|
||||
else()
|
||||
set(SSO_MIB_ROOT_DIR ${SSO_MIB_EXTERNAL_DIR})
|
||||
message(STATUS "SSO_MIB not found through PkgConfig, trying external ${SSO_MIB_ROOT_DIR}")
|
||||
find_path(SSO_MIB_INCLUDE_DIR NAMES sso-mib/sso-mib.h HINTS ${SSO_MIB_ROOT_DIR}/include)
|
||||
find_library(SSO_MIB_LIBRARY NAMES sso-mib HINTS ${SSO_MIB_ROOT_DIR}/lib)
|
||||
include(ExternalProject)
|
||||
set(SSO_MIB_EXTERNAL_DIR ${CMAKE_BINARY_DIR}/sso-mib-external)
|
||||
|
||||
set(SSO_MIB_URL https://github.com/siemens/sso-mib.git)
|
||||
set(SSO_MIB_VERSION v0.5.0)
|
||||
message(STATUS "Adding sso-mib as ExternalProject from ${SSO_MIB_URL}, version ${SSO_MIB_VERSION}")
|
||||
|
||||
ExternalProject_Add(
|
||||
sso-mib-external GIT_REPOSITORY ${SSO_MIB_URL} GIT_TAG ${SSO_MIB_VERSION} PREFIX ${SSO_MIB_EXTERNAL_DIR}
|
||||
SOURCE_DIR ${SSO_MIB_EXTERNAL_DIR}/src BINARY_DIR ${SSO_MIB_EXTERNAL_DIR}/build TMP_DIR _deps/tmp
|
||||
STAMP_DIR _deps/stamp CONFIGURE_COMMAND meson setup --prefix=${SSO_MIB_EXTERNAL_DIR}/install --libdir=lib/
|
||||
${SSO_MIB_EXTERNAL_DIR}/build ${SSO_MIB_EXTERNAL_DIR}/src
|
||||
BUILD_COMMAND meson compile -C ${SSO_MIB_EXTERNAL_DIR}/build INSTALL_COMMAND meson install -C
|
||||
${SSO_MIB_EXTERNAL_DIR}/build
|
||||
UPDATE_COMMAND "" BUILD_BYPRODUCTS ${SSO_MIB_EXTERNAL_DIR}/install/lib/libsso-mib.so
|
||||
)
|
||||
|
||||
# Dependencies
|
||||
pkg_check_modules(GLIB REQUIRED glib-2.0)
|
||||
@@ -25,13 +44,9 @@ else()
|
||||
set(PC_SSO_MIB_INCLUDE_DIRS ${GLIB_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ${JSON_GLIB_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS})
|
||||
set(PC_SSO_MIB_LIBRARIES ${GLIB_LIBRARIES} ${GIO_LIBRARIES} ${JSON_GLIB_LIBRARIES} ${UUID_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(SSO_MIB DEFAULT_MSG SSO_MIB_LIBRARY SSO_MIB_INCLUDE_DIR)
|
||||
|
||||
if(SSO_MIB_FOUND)
|
||||
set(SSO_MIB_LIBRARIES ${SSO_MIB_LIBRARY} ${PC_SSO_MIB_LIBRARIES})
|
||||
set(SSO_MIB_INCLUDE_DIRS ${SSO_MIB_INCLUDE_DIR} ${PC_SSO_MIB_INCLUDE_DIRS})
|
||||
set(SSO_MIB_INCLUDE_DIRS ${SSO_MIB_EXTERNAL_DIR}/install/include ${PC_SSO_MIB_INCLUDE_DIRS})
|
||||
set(SSO_MIB_LIBRARIES ${SSO_MIB_EXTERNAL_DIR}/install/lib/libsso-mib.so ${PC_SSO_MIB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(SSO_MIB_INCLUDE_DIR SSO_MIB_LIBRARY)
|
||||
|
||||
Reference in New Issue
Block a user