diff --git a/llvm/cmake/modules/AddOCaml.cmake b/llvm/cmake/modules/AddOCaml.cmake --- a/llvm/cmake/modules/AddOCaml.cmake +++ b/llvm/cmake/modules/AddOCaml.cmake @@ -66,21 +66,25 @@ 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}")