mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
ac85dbcf78
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.
188 lines
4.5 KiB
CMake
188 lines
4.5 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
|
|
)
|
|
|
|
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
|
|
)
|
|
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
|
|
)
|
|
|
|
# Don't include check-llvm into check-all without LLVM_BUILD_TOOLS.
|
|
if(NOT LLVM_BUILD_TOOLS)
|
|
set(EXCLUDE_FROM_ALL ON)
|
|
endif()
|
|
|
|
# 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-isel-fuzzer
|
|
llvm-ifs
|
|
llvm-install-name-tool
|
|
llvm-jitlink
|
|
llvm-lib
|
|
llvm-link
|
|
llvm-lipo
|
|
llvm-locstats
|
|
llvm-lto2
|
|
llvm-mc
|
|
llvm-mca
|
|
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
|
|
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
|
|
)
|
|
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")
|
|
|
|
add_lit_testsuite(check-llvm "Running the LLVM regression tests"
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
DEPENDS ${LLVM_TEST_DEPENDS}
|
|
)
|
|
set_target_properties(check-llvm PROPERTIES FOLDER "Tests")
|
|
|
|
add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
|
|
DEPENDS ${LLVM_TEST_DEPENDS}
|
|
)
|
|
|
|
# Setup a legacy alias for 'check-llvm'. This will likely change to be an
|
|
# alias for 'check-all' at some point in the future.
|
|
add_custom_target(check)
|
|
add_dependencies(check check-llvm)
|
|
set_target_properties(check PROPERTIES FOLDER "Tests")
|