xref: /openbsd-src/gnu/llvm/compiler-rt/cmake/Modules/CompilerRTLink.cmake (revision 3cab2bb3f667058bece8e38b12449a63a9d73c4b)
1*3cab2bb3Spatrick# Link a shared library with COMPILER_RT_TEST_COMPILER.
2*3cab2bb3Spatrick# clang_link_shared(<output.so>
3*3cab2bb3Spatrick#                   OBJECTS <list of input objects>
4*3cab2bb3Spatrick#                   LINK_FLAGS <list of link flags>
5*3cab2bb3Spatrick#                   DEPS <list of dependencies>)
6*3cab2bb3Spatrickmacro(clang_link_shared so_file)
7*3cab2bb3Spatrick  cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINK_FLAGS;DEPS" ${ARGN})
8*3cab2bb3Spatrick  if(NOT COMPILER_RT_STANDALONE_BUILD)
9*3cab2bb3Spatrick    list(APPEND SOURCE_DEPS clang)
10*3cab2bb3Spatrick  endif()
11*3cab2bb3Spatrick  add_custom_command(
12*3cab2bb3Spatrick    OUTPUT ${so_file}
13*3cab2bb3Spatrick    COMMAND ${COMPILER_RT_TEST_COMPILER} -o "${so_file}" -shared
14*3cab2bb3Spatrick            ${SOURCE_LINK_FLAGS} ${SOURCE_OBJECTS}
15*3cab2bb3Spatrick    DEPENDS ${SOURCE_DEPS})
16*3cab2bb3Spatrickendmacro()
17