[llvm] [ocaml] Support linking against dylib

Support linking OCaml modules against LLVM dylib when requested,
rather than against static libs that might not be installed at all.

Differential Revision: https://reviews.llvm.org/D68452

llvm-svn: 374556
This commit is contained in:
Michal Gorny 2019-10-11 14:32:43 +00:00
parent 3b581ac80f
commit da2a29a17c
1 changed files with 18 additions and 14 deletions

View File

@ -66,21 +66,25 @@ function(add_ocaml_library name)
list(APPEND ocaml_flags "-custom")
endif()
explicit_map_components_to_libraries(llvm_libs ${ARG_LLVM})
foreach( llvm_lib ${llvm_libs} )
list(APPEND ocaml_flags "-l${llvm_lib}" )
endforeach()
if(LLVM_LINK_LLVM_DYLIB)
list(APPEND ocaml_flags "-lLLVM")
else()
explicit_map_components_to_libraries(llvm_libs ${ARG_LLVM})
foreach( llvm_lib ${llvm_libs} )
list(APPEND ocaml_flags "-l${llvm_lib}" )
endforeach()
get_property(system_libs TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS)
foreach(system_lib ${system_libs})
if (system_lib MATCHES "^-")
# If it's an option, pass it without changes.
list(APPEND ocaml_flags "${system_lib}" )
else()
# Otherwise assume it's a library name we need to link with.
list(APPEND ocaml_flags "-l${system_lib}" )
endif()
endforeach()
get_property(system_libs TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS)
foreach(system_lib ${system_libs})
if (system_lib MATCHES "^-")
# If it's an option, pass it without changes.
list(APPEND ocaml_flags "${system_lib}" )
else()
# Otherwise assume it's a library name we need to link with.
list(APPEND ocaml_flags "-l${system_lib}" )
endif()
endforeach()
endif()
string(REPLACE ";" " " ARG_CFLAGS "${ARG_CFLAGS}")
set(c_flags "${ARG_CFLAGS} ${LLVM_DEFINITIONS}")