xref: /aosp_15_r20/external/compiler-rt/cmake/Modules/CompilerRTLink.cmake (revision 7c3d14c8b49c529e04be81a3ce6f5cc23712e4c6)
1*7c3d14c8STreehugger Robot# Link a shared library with COMPILER_RT_TEST_COMPILER.
2*7c3d14c8STreehugger Robot# clang_link_shared(<output.so>
3*7c3d14c8STreehugger Robot#                   OBJECTS <list of input objects>
4*7c3d14c8STreehugger Robot#                   LINKFLAGS <list of link flags>
5*7c3d14c8STreehugger Robot#                   DEPS <list of dependencies>)
6*7c3d14c8STreehugger Robotmacro(clang_link_shared so_file)
7*7c3d14c8STreehugger Robot  cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINKFLAGS;DEPS" ${ARGN})
8*7c3d14c8STreehugger Robot  if(NOT COMPILER_RT_STANDALONE_BUILD)
9*7c3d14c8STreehugger Robot    list(APPEND SOURCE_DEPS clang)
10*7c3d14c8STreehugger Robot  endif()
11*7c3d14c8STreehugger Robot  add_custom_command(
12*7c3d14c8STreehugger Robot    OUTPUT ${so_file}
13*7c3d14c8STreehugger Robot    COMMAND ${COMPILER_RT_TEST_COMPILER} -o "${so_file}" -shared
14*7c3d14c8STreehugger Robot            ${SOURCE_LINKFLAGS} ${SOURCE_OBJECTS}
15*7c3d14c8STreehugger Robot    DEPENDS ${SOURCE_DEPS})
16*7c3d14c8STreehugger Robotendmacro()
17