mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-24 04:56:51 +00:00
71926e73ba
Summary: This patch adds a new CMake build setting LLVM_BUILD_LLVM_DYLIB, which defaults to OFF. When set to ON, this will generate a shared library containing most of LLVM. The contents of the shared library can be overriden by specifying LLVM_DYLIB_COMPONENTS. LLVM_DYLIB_COMPONENTS can be set to a semi-colon delimited list of any LLVM components that you llvm-config can resolve. On Windows, unless you are using Cygwin, you must specify an explicit symbol export file using LLVM_EXPORTED_SYMBOL_FILE. On Cygwin and all unix-like platforms if you do not specify LLVM_EXPORTED_SYMBOL_FILE, an export file containing only the LLVM C API will be auto-generated from the list of LLVM components specified in LLVM_DYLIB_COMPONENTS. Reviewers: rnk Reviewed By: rnk Subscribers: rnk, llvm-commits Differential Revision: http://reviews.llvm.org/D5890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220490 91177308-0d34-0410-b5e6-96231b3b80d8
95 lines
2.6 KiB
CMake
95 lines
2.6 KiB
CMake
add_llvm_tool_subdirectory(llvm-config)
|
|
|
|
# Build polly before the tools: the tools link against polly when
|
|
# LINK_POLLY_INTO_TOOLS is set.
|
|
if(WITH_POLLY)
|
|
add_llvm_external_project(polly)
|
|
else(WITH_POLLY)
|
|
list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${LLVM_MAIN_SRC_DIR}/tools/polly")
|
|
endif(WITH_POLLY)
|
|
|
|
add_llvm_tool_subdirectory(opt)
|
|
add_llvm_tool_subdirectory(llvm-as)
|
|
add_llvm_tool_subdirectory(llvm-dis)
|
|
add_llvm_tool_subdirectory(llvm-mc)
|
|
|
|
add_llvm_tool_subdirectory(llc)
|
|
add_llvm_tool_subdirectory(llvm-ar)
|
|
add_llvm_tool_subdirectory(llvm-nm)
|
|
add_llvm_tool_subdirectory(llvm-size)
|
|
|
|
add_llvm_tool_subdirectory(llvm-cov)
|
|
add_llvm_tool_subdirectory(llvm-profdata)
|
|
add_llvm_tool_subdirectory(llvm-link)
|
|
add_llvm_tool_subdirectory(lli)
|
|
|
|
add_llvm_tool_subdirectory(llvm-extract)
|
|
add_llvm_tool_subdirectory(llvm-diff)
|
|
add_llvm_tool_subdirectory(macho-dump)
|
|
add_llvm_tool_subdirectory(llvm-objdump)
|
|
add_llvm_tool_subdirectory(llvm-readobj)
|
|
add_llvm_tool_subdirectory(llvm-rtdyld)
|
|
add_llvm_tool_subdirectory(llvm-dwarfdump)
|
|
add_llvm_tool_subdirectory(llvm-vtabledump)
|
|
if( LLVM_USE_INTEL_JITEVENTS )
|
|
add_llvm_tool_subdirectory(llvm-jitlistener)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(llvm-jitlistener)
|
|
endif( LLVM_USE_INTEL_JITEVENTS )
|
|
|
|
add_llvm_tool_subdirectory(bugpoint)
|
|
add_llvm_tool_subdirectory(bugpoint-passes)
|
|
add_llvm_tool_subdirectory(llvm-bcanalyzer)
|
|
add_llvm_tool_subdirectory(llvm-stress)
|
|
add_llvm_tool_subdirectory(llvm-mcmarkup)
|
|
|
|
add_llvm_tool_subdirectory(verify-uselistorder)
|
|
|
|
add_llvm_tool_subdirectory(llvm-symbolizer)
|
|
|
|
add_llvm_tool_subdirectory(llvm-c-test)
|
|
|
|
add_llvm_tool_subdirectory(obj2yaml)
|
|
add_llvm_tool_subdirectory(yaml2obj)
|
|
|
|
add_llvm_tool_subdirectory(llvm-go)
|
|
|
|
if(NOT CYGWIN AND LLVM_ENABLE_PIC)
|
|
add_llvm_tool_subdirectory(lto)
|
|
add_llvm_tool_subdirectory(llvm-lto)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(lto)
|
|
ignore_llvm_tool_subdirectory(llvm-lto)
|
|
endif()
|
|
|
|
if( LLVM_ENABLE_PIC )
|
|
# TODO: support other systems:
|
|
if( (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") )
|
|
add_llvm_tool_subdirectory(gold)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(gold)
|
|
endif()
|
|
else()
|
|
ignore_llvm_tool_subdirectory(gold)
|
|
endif()
|
|
|
|
if( LLVM_BUILD_LLVM_DYLIB )
|
|
add_llvm_tool_subdirectory(llvm-shlib)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(llvm-shlib)
|
|
endif()
|
|
|
|
add_llvm_external_project(clang)
|
|
|
|
if( NOT LLVM_INCLUDE_TOOLS STREQUAL "bootstrap-only" )
|
|
add_llvm_external_project(lld)
|
|
add_llvm_external_project(lldb)
|
|
|
|
# Automatically add remaining sub-directories containing a 'CMakeLists.txt'
|
|
# file as external projects.
|
|
add_llvm_implicit_external_projects()
|
|
endif()
|
|
|
|
set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
|