# library is enabled by setting LLVM_BUILD_LLVM_DYLIB=yes on the CMake
# commandline. By default the shared library only exports the LLVM C API.
-if(LLVM_LINK_LLVM_DYLIB)
- if(DEFINED LLVM_DYLIB_COMPONENTS)
- # To avoid inscrutable link errors, just disallow setting
- # LLVM_DYLIB_COMPONENTS when we're intending to link tools
- # and shared libraries with the dylib.
- message(FATAL_ERROR "LLVM_DYLIB_COMPONENTS must not be set when LLVM_LINK_LLVM_DYLIB is ON")
- endif()
- if(NOT LLVM_DYLIB_EXPORT_ALL)
- message(FATAL_ERROR "LLVM_DYLIB_EXPORT_ALL must be ON when LLVM_LINK_LLVM_DYLIB is ON")
- endif()
- set(LLVM_DYLIB_COMPONENTS all)
-endif()
-
-# If LLVM_LINK_LLVM_DYLIB is not OFF, you can configure which libraries from
-# LLVM you want to include in the shared library by setting
-# LLVM_DYLIB_COMPONENTS to a semi-colon delimited list of LLVM components.
-# All component names handled by llvm-config are valid.
-if(NOT DEFINED LLVM_DYLIB_COMPONENTS)
- set(LLVM_DYLIB_COMPONENTS
- ${LLVM_TARGETS_TO_BUILD}
- Analysis
- BitReader
- BitWriter
- CodeGen
- Core
- DebugInfoDWARF
- DebugInfoPDB
- ExecutionEngine
- IPO
- IRReader
- InstCombine
- Instrumentation
- Interpreter
- Linker
- MCDisassembler
- MCJIT
- ObjCARCOpts
- Object
- ScalarOpts
- Support
- Target
- TransformUtils
- Vectorize
- native
- )
-endif()
-
add_definitions( -DLLVM_VERSION_INFO=\"${PACKAGE_VERSION}\" )
set(SOURCES
llvm_map_components_to_libnames(LIB_NAMES ${LLVM_DYLIB_COMPONENTS})
if(LLVM_LINK_LLVM_DYLIB)
+ if(NOT LLVM_DYLIB_EXPORT_ALL)
+ message(FATAL_ERROR "LLVM_DYLIB_EXPORT_ALL must be ON when LLVM_LINK_LLVM_DYLIB is ON")
+ endif()
+
# libLLVM.so should not have any dependencies on any other LLVM
# shared libraries. When using the "all" pseudo-component,
# LLVM_AVAILABLE_LIBS is added to the dependencies, which may