mirror of
https://github.com/savoirfairelinux/opendht.git
synced 2026-11-08 04:21:51 +00:00
39 lines
1.4 KiB
CMake
39 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
|
|
if(NOT EXISTS "${ADDON}" OR NOT DEFINED OUTPUT)
|
|
message(FATAL_ERROR "ADDON and OUTPUT are required")
|
|
endif()
|
|
|
|
set(pre_exclude)
|
|
set(post_exclude)
|
|
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
|
|
list(APPEND pre_exclude "^/usr/lib/" "^/System/Library/")
|
|
list(APPEND post_exclude "^/usr/lib/" "^/System/Library/")
|
|
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
|
|
list(APPEND pre_exclude "^ld-linux" "^lib(c|m|dl|rt|pthread|resolv|util|gcc_s|stdc\\+\\+)\\.so")
|
|
elseif(CMAKE_HOST_WIN32)
|
|
list(APPEND pre_exclude "[Nn][Oo][Dd][Ee]\\.exe" "[Aa][Pp][Ii]-[Mm][Ss]-.*" "[Ee][Xx][Tt]-[Mm][Ss]-.*")
|
|
list(APPEND post_exclude ".*[Ss][Yy][Ss][Tt][Ee][Mm]32[/\\\\].*")
|
|
endif()
|
|
|
|
file(GET_RUNTIME_DEPENDENCIES
|
|
MODULES "${ADDON}"
|
|
DIRECTORIES ${SEARCH_DIRECTORIES}
|
|
RESOLVED_DEPENDENCIES_VAR dependencies
|
|
UNRESOLVED_DEPENDENCIES_VAR unresolved
|
|
CONFLICTING_DEPENDENCIES_PREFIX conflicts
|
|
PRE_EXCLUDE_REGEXES ${pre_exclude}
|
|
POST_EXCLUDE_REGEXES ${post_exclude}
|
|
)
|
|
if(unresolved OR conflicts_FILENAMES)
|
|
message(FATAL_ERROR "Unresolved dependencies: ${unresolved}; conflicting dependencies: ${conflicts_FILENAMES}")
|
|
endif()
|
|
|
|
set(result "[]")
|
|
set(index 0)
|
|
foreach(dependency IN LISTS dependencies)
|
|
file(TO_CMAKE_PATH "${dependency}" dependency)
|
|
string(JSON result SET "${result}" ${index} "\"${dependency}\"")
|
|
math(EXPR index "${index} + 1")
|
|
endforeach()
|
|
file(WRITE "${OUTPUT}" "${result}\n") |