mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-15 09:56:02 +00:00

Summary: When building out-of-tree tools, there are several macros available to automate linking against llvm. An examples is `add_llvm_executable`, or the clang variant of this. These macros use the LLVM_LINK_LLVM_DYLIB option to decide whether to link against libraries defined by setting LLVM_LINK_COMPONENTS or to link against libLLVM instead. Currently this is problematic in out-of-tree targets, because they cannot identify whether this option is required or even available. If the option was enabled in LLVM's own build, the clang libraries are built against libLLVM, so a client linking against those must link against it too. On the other hand the client can't just always link against it, because it might not be available. This is related to D44391, but that change assumed the client knew whether they wanted the dylib or not. Reviewers: mgorny, beanz, labath Reviewed By: mgorny Subscribers: bollu, llvm-commits Differential Revision: https://reviews.llvm.org/D49193 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337366 91177308-0d34-0410-b5e6-96231b3b80d8
97 lines
2.8 KiB
CMake
97 lines
2.8 KiB
CMake
# This file provides information and services to the final user.
|
|
|
|
@LLVM_CONFIG_CODE@
|
|
|
|
set(LLVM_VERSION_MAJOR @LLVM_VERSION_MAJOR@)
|
|
set(LLVM_VERSION_MINOR @LLVM_VERSION_MINOR@)
|
|
set(LLVM_VERSION_PATCH @LLVM_VERSION_PATCH@)
|
|
set(LLVM_PACKAGE_VERSION @PACKAGE_VERSION@)
|
|
|
|
set(LLVM_BUILD_TYPE @CMAKE_BUILD_TYPE@)
|
|
|
|
set(LLVM_COMMON_DEPENDS @LLVM_COMMON_DEPENDS@)
|
|
|
|
set(LLVM_AVAILABLE_LIBS @LLVM_AVAILABLE_LIBS@)
|
|
|
|
set(LLVM_LINK_LLVM_DYLIB @LLVM_LINK_LLVM_DYLIB@)
|
|
|
|
set(LLVM_DYLIB_COMPONENTS @LLVM_DYLIB_COMPONENTS@)
|
|
|
|
set(LLVM_ALL_TARGETS @LLVM_ALL_TARGETS@)
|
|
|
|
set(LLVM_TARGETS_TO_BUILD @LLVM_TARGETS_TO_BUILD@)
|
|
|
|
set(LLVM_TARGETS_WITH_JIT @LLVM_TARGETS_WITH_JIT@)
|
|
|
|
@all_llvm_lib_deps@
|
|
|
|
set(TARGET_TRIPLE "@TARGET_TRIPLE@")
|
|
|
|
set(LLVM_ABI_BREAKING_CHECKS @LLVM_ABI_BREAKING_CHECKS@)
|
|
|
|
set(LLVM_ENABLE_ASSERTIONS @LLVM_ENABLE_ASSERTIONS@)
|
|
|
|
set(LLVM_ENABLE_EH @LLVM_ENABLE_EH@)
|
|
|
|
set(LLVM_ENABLE_RTTI @LLVM_ENABLE_RTTI@)
|
|
|
|
set(LLVM_ENABLE_TERMINFO @LLVM_ENABLE_TERMINFO@)
|
|
|
|
set(LLVM_ENABLE_THREADS @LLVM_ENABLE_THREADS@)
|
|
|
|
set(LLVM_ENABLE_ZLIB @LLVM_ENABLE_ZLIB@)
|
|
|
|
set(LLVM_LIBXML2_ENABLED @LLVM_LIBXML2_ENABLED@)
|
|
|
|
set(LLVM_ENABLE_DIA_SDK @LLVM_ENABLE_DIA_SDK@)
|
|
|
|
set(LLVM_NATIVE_ARCH @LLVM_NATIVE_ARCH@)
|
|
|
|
set(LLVM_ENABLE_PIC @LLVM_ENABLE_PIC@)
|
|
|
|
set(LLVM_BUILD_32_BITS @LLVM_BUILD_32_BITS@)
|
|
|
|
if (NOT "@LLVM_PTHREAD_LIB@" STREQUAL "")
|
|
set(LLVM_PTHREAD_LIB "@LLVM_PTHREAD_LIB@")
|
|
endif()
|
|
|
|
set(LLVM_ENABLE_PLUGINS @LLVM_ENABLE_PLUGINS@)
|
|
set(LLVM_EXPORT_SYMBOLS_FOR_PLUGINS @LLVM_EXPORT_SYMBOLS_FOR_PLUGINS@)
|
|
set(LLVM_PLUGIN_EXT @LLVM_PLUGIN_EXT@)
|
|
|
|
set(LLVM_ON_UNIX @LLVM_ON_UNIX@)
|
|
|
|
set(LLVM_LIBDIR_SUFFIX @LLVM_LIBDIR_SUFFIX@)
|
|
|
|
set(LLVM_INCLUDE_DIRS "@LLVM_CONFIG_INCLUDE_DIRS@")
|
|
set(LLVM_LIBRARY_DIRS "@LLVM_CONFIG_LIBRARY_DIRS@")
|
|
|
|
# These variables are duplicated, but they must match the LLVM variables of the
|
|
# same name. The variables ending in "S" could some day become lists, and are
|
|
# preserved for convention and compatibility.
|
|
set(LLVM_INCLUDE_DIR "@LLVM_CONFIG_INCLUDE_DIRS@")
|
|
set(LLVM_LIBRARY_DIR "@LLVM_CONFIG_LIBRARY_DIRS@")
|
|
|
|
set(LLVM_DEFINITIONS "@LLVM_DEFINITIONS@")
|
|
set(LLVM_CMAKE_DIR "@LLVM_CONFIG_CMAKE_DIR@")
|
|
set(LLVM_BINARY_DIR "@LLVM_CONFIG_BINARY_DIR@")
|
|
set(LLVM_TOOLS_BINARY_DIR "@LLVM_CONFIG_TOOLS_BINARY_DIR@")
|
|
set(LLVM_TOOLS_INSTALL_DIR "@LLVM_TOOLS_INSTALL_DIR@")
|
|
set(LLVM_HAVE_OPT_VIEWER_MODULES @LLVM_HAVE_OPT_VIEWER_MODULES@)
|
|
|
|
if(NOT TARGET LLVMSupport)
|
|
set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")
|
|
include("@LLVM_CONFIG_EXPORTS_FILE@")
|
|
@llvm_config_include_buildtree_only_exports@
|
|
endif()
|
|
|
|
# By creating intrinsics_gen here, subprojects that depend on LLVM's
|
|
# tablegen-generated headers can always depend on this target whether building
|
|
# in-tree with LLVM or not.
|
|
if(NOT TARGET intrinsics_gen)
|
|
add_custom_target(intrinsics_gen)
|
|
endif()
|
|
|
|
set_property(GLOBAL PROPERTY LLVM_TARGETS_CONFIGURED On)
|
|
include(${LLVM_CMAKE_DIR}/LLVM-Config.cmake)
|