aboutsummaryrefslogtreecommitdiff
path: root/cmake/EmbeddedLLVM.cmake
blob: cb08edc3eac2debf1db9b42c809aa483a45100f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# LLVM packages can attach shared compression/terminal libraries even to
# LLVMSupport.a. Use their archives so these do not become deployment files.
get_target_property(cpsc_support_libs LLVMSupport INTERFACE_LINK_LIBRARIES)
set(cpsc_saved_library_suffixes ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
foreach(cpsc_dependency IN LISTS cpsc_support_libs)
    if(cpsc_dependency STREQUAL "ZLIB::ZLIB")
        set(cpsc_library_names z)
    elseif(cpsc_dependency MATCHES "^zstd::libzstd")
        set(cpsc_library_names zstd)
    elseif(cpsc_dependency STREQUAL "Terminfo::terminfo")
        set(cpsc_library_names terminfo tinfo curses ncurses ncursesw)
    else()
        continue()
    endif()
    list(GET cpsc_library_names 0 cpsc_library_name)
    cpsc_find_library(CPSC_STATIC_${cpsc_library_name} ${cpsc_library_names})
    if(NOT CPSC_STATIC_${cpsc_library_name})
        message(FATAL_ERROR
            "cpsc requires a static archive for ${cpsc_dependency}; download or install its development package")
    endif()
    string(REPLACE "${cpsc_dependency}" "${CPSC_STATIC_${cpsc_library_name}}"
        cpsc_support_libs "${cpsc_support_libs}")
endforeach()
set(CMAKE_FIND_LIBRARY_SUFFIXES ${cpsc_saved_library_suffixes})
set_property(TARGET LLVMSupport PROPERTY INTERFACE_LINK_LIBRARIES "${cpsc_support_libs}")