mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
6abbc429da
Rather than handling zlib handling manually, use find_package from CMake to find zlib properly. Use this to normalize the LLVM_ENABLE_ZLIB, HAVE_ZLIB, HAVE_ZLIB_H. Furthermore, require zlib if LLVM_ENABLE_ZLIB is set to YES, which requires the distributor to explicitly select whether zlib is enabled or not. This simplifies the CMake handling and usage in the rest of the tooling. This is a reland of abb0075 with all followup changes and fixes that should address issues that were reported in PR44780. Differential Revision: https://reviews.llvm.org/D79219
213 lines
4.9 KiB
CMake
213 lines
4.9 KiB
CMake
llvm_canonicalize_cmake_booleans(
|
|
BUILD_SHARED_LIBS
|
|
HAVE_LIBXAR
|
|
HAVE_OCAMLOPT
|
|
HAVE_OCAML_OUNIT
|
|
LLVM_ENABLE_DIA_SDK
|
|
LLVM_ENABLE_FFI
|
|
LLVM_ENABLE_THREADS
|
|
LLVM_ENABLE_ZLIB
|
|
LLVM_INCLUDE_GO_TESTS
|
|
LLVM_LIBXML2_ENABLED
|
|
LLVM_LINK_LLVM_DYLIB
|
|
LLVM_TOOL_LTO_BUILD
|
|
LLVM_USE_INTEL_JITEVENTS
|
|
LLVM_BUILD_EXAMPLES
|
|
LLVM_ENABLE_PLUGINS
|
|
LLVM_BYE_LINK_INTO_TOOLS
|
|
LLVM_HAVE_TF_AOT
|
|
LLVM_HAVE_TF_API
|
|
)
|
|
|
|
configure_lit_site_cfg(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
|
|
MAIN_CONFIG
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
|
|
PATHS
|
|
"LLVM_SOURCE_DIR"
|
|
"LLVM_BINARY_DIR"
|
|
"LLVM_TOOLS_DIR"
|
|
"LLVM_LIBRARY_DIR"
|
|
"SHLIBDIR"
|
|
)
|
|
configure_lit_site_cfg(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
|
|
MAIN_CONFIG
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
|
|
PATHS
|
|
"LLVM_SOURCE_DIR"
|
|
"LLVM_BINARY_DIR"
|
|
"LLVM_TOOLS_DIR"
|
|
"SHLIBDIR"
|
|
)
|
|
|
|
# Set the depends list as a variable so that it can grow conditionally.
|
|
# NOTE: Sync the substitutions in test/lit.cfg when adding to this list.
|
|
set(LLVM_TEST_DEPENDS
|
|
BugpointPasses
|
|
FileCheck
|
|
LLVMHello
|
|
UnitTests
|
|
bugpoint
|
|
count
|
|
llc
|
|
lli
|
|
lli-child-target
|
|
llvm-addr2line
|
|
llvm-ar
|
|
llvm-as
|
|
llvm-bcanalyzer
|
|
llvm-c-test
|
|
llvm-cat
|
|
llvm-cfi-verify
|
|
llvm-config
|
|
llvm-cov
|
|
llvm-cvtres
|
|
llvm-cxxdump
|
|
llvm-cxxfilt
|
|
llvm-cxxmap
|
|
llvm-diff
|
|
llvm-dis
|
|
llvm-dlltool
|
|
dsymutil
|
|
llvm-dwarfdump
|
|
llvm-dwp
|
|
llvm-elfabi
|
|
llvm-exegesis
|
|
llvm-extract
|
|
llvm-gsymutil
|
|
llvm-isel-fuzzer
|
|
llvm-ifs
|
|
llvm-install-name-tool
|
|
llvm-jitlink
|
|
llvm-lib
|
|
llvm-libtool-darwin
|
|
llvm-link
|
|
llvm-lipo
|
|
llvm-locstats
|
|
llvm-lto2
|
|
llvm-mc
|
|
llvm-mca
|
|
llvm-ml
|
|
llvm-modextract
|
|
llvm-mt
|
|
llvm-nm
|
|
llvm-objcopy
|
|
llvm-objdump
|
|
llvm-opt-fuzzer
|
|
llvm-opt-report
|
|
llvm-pdbutil
|
|
llvm-profdata
|
|
llvm-ranlib
|
|
llvm-rc
|
|
llvm-readobj
|
|
llvm-readelf
|
|
llvm-reduce
|
|
llvm-rtdyld
|
|
llvm-size
|
|
llvm-split
|
|
llvm-strings
|
|
llvm-strip
|
|
llvm-symbolizer
|
|
llvm-tblgen
|
|
llvm-undname
|
|
llvm-xray
|
|
not
|
|
obj2yaml
|
|
opt
|
|
sancov
|
|
sanstats
|
|
split-file
|
|
verify-uselistorder
|
|
yaml-bench
|
|
yaml2obj
|
|
)
|
|
|
|
if(TARGET llvm-lto)
|
|
set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-lto)
|
|
endif()
|
|
|
|
# If Intel JIT events are supported, depend on a tool that tests the listener.
|
|
if( LLVM_USE_INTEL_JITEVENTS )
|
|
set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-jitlistener)
|
|
endif( LLVM_USE_INTEL_JITEVENTS )
|
|
|
|
if(TARGET LLVMgold)
|
|
set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LLVMgold)
|
|
endif()
|
|
|
|
if(TARGET llvm-go)
|
|
set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-go)
|
|
endif()
|
|
|
|
if(TARGET LTO)
|
|
set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LTO)
|
|
endif()
|
|
|
|
if(LLVM_BUILD_EXAMPLES)
|
|
list(APPEND LLVM_TEST_DEPENDS
|
|
Kaleidoscope-Ch3
|
|
Kaleidoscope-Ch4
|
|
Kaleidoscope-Ch5
|
|
Kaleidoscope-Ch6
|
|
Kaleidoscope-Ch7
|
|
)
|
|
if (NOT WIN32)
|
|
list(APPEND LLVM_TEST_DEPENDS
|
|
Bye
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
if(TARGET ocaml_llvm)
|
|
# Clear all non-OCaml cross-target dependencies when building out-of-tree.
|
|
if(LLVM_OCAML_OUT_OF_TREE)
|
|
set(LLVM_TEST_DEPENDS)
|
|
endif()
|
|
|
|
set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS}
|
|
ocaml_llvm
|
|
ocaml_llvm_all_backends
|
|
ocaml_llvm_analysis
|
|
ocaml_llvm_bitreader
|
|
ocaml_llvm_bitwriter
|
|
ocaml_llvm_executionengine
|
|
ocaml_llvm_irreader
|
|
ocaml_llvm_linker
|
|
ocaml_llvm_target
|
|
ocaml_llvm_ipo
|
|
ocaml_llvm_passmgr_builder
|
|
ocaml_llvm_scalar_opts
|
|
ocaml_llvm_transform_utils
|
|
ocaml_llvm_vectorize
|
|
)
|
|
endif()
|
|
|
|
add_custom_target(llvm-test-depends DEPENDS ${LLVM_TEST_DEPENDS})
|
|
set_target_properties(llvm-test-depends PROPERTIES FOLDER "Tests")
|
|
|
|
if(LLVM_BUILD_TOOLS)
|
|
set(exclude_from_check_all "")
|
|
else()
|
|
set(exclude_from_check_all "EXCLUDE_FROM_CHECK_ALL")
|
|
endif()
|
|
|
|
add_lit_testsuite(check-llvm "Running the LLVM regression tests"
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
${exclude_from_check_all}
|
|
DEPENDS ${LLVM_TEST_DEPENDS}
|
|
)
|
|
set_target_properties(check-llvm PROPERTIES FOLDER "Tests")
|
|
|
|
add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
|
|
${exclude_from_check_all}
|
|
DEPENDS ${LLVM_TEST_DEPENDS}
|
|
)
|
|
|
|
# Setup an alias for 'check-all'.
|
|
add_custom_target(check)
|
|
add_dependencies(check check-all)
|
|
set_target_properties(check PROPERTIES FOLDER "Tests")
|