llvm-project/bolt/test/CMakeLists.txt

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

71 lines
1.6 KiB
CMake
Raw Normal View History

llvm_canonicalize_cmake_booleans(
BOLT_ENABLE_RUNTIME
)
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
)
set(BOLT_TEST_PARAMS
bolt_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
)
[BOLT][CMAKE] Accept BOLT_CLANG_EXE and BOLT_LLD_EXE Add CMake options to supply clang and lld binaries for use in check-bolt instead of requiring the build of clang and lld projects. Suggested by Mehdi Amini in https://lists.llvm.org/pipermail/llvm-dev/2021-December/154426.html Test Plan: ``` cmake -G Ninja ~/local/llvm-project/llvm \ -DLLVM_TARGETS_TO_BUILD="X86" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DLLVM_ENABLE_PROJECTS="bolt" \ -DBOLT_CLANG_EXE=~/local/bin/clang \ -DBOLT_LLD_EXE=~/local/bin/lld ninja check-bolt ... llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using clang: /home/aaupov/local/bin/clang llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using ld.lld: /home/aaupov/local/bin/ld.lld llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using lld-link: /home/aaupov/local/bin/lld-link llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using ld64.lld: /home/aaupov/local/bin/ld64.lld llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using wasm-ld: /home/aaupov/local/bin/wasm-ld ... ``` Tested all configurations: - LLVM_ENABLE_PROJECTS="bolt;clang;lld" + no BOLT_*_EXE - LLVM_ENABLE_PROJECTS="bolt;clang" + BOLT_LLD_EXE - LLVM_ENABLE_PROJECTS="bolt;lld" + BOLT_CLANG_EXE - LLVM_ENABLE_PROJECTS="bolt" + BOLT_CLANG_EXE + BOLT_LLD_EXE - LLVM_ENABLE_PROJECTS="bolt;clang;lld" + BOLT_CLANG_EXE + BOLT_LLD_EXE Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D117061
2022-01-15 06:18:43 +08:00
if (BOLT_CLANG_EXE AND NOT "clang" IN_LIST LLVM_ENABLE_PROJECTS)
add_executable(clang IMPORTED GLOBAL)
set_property(TARGET clang PROPERTY IMPORTED_LOCATION "${BOLT_CLANG_EXE}")
endif()
if (BOLT_LLD_EXE AND NOT "lld" IN_LIST LLVM_ENABLE_PROJECTS)
add_executable(lld IMPORTED GLOBAL)
set_property(TARGET lld PROPERTY IMPORTED_LOCATION "${BOLT_LLD_EXE}")
endif()
list(APPEND BOLT_TEST_DEPS
clang
count
FileCheck
llc
lld
llvm-config
llvm-bolt
llvm-boltdiff
llvm-bolt-heatmap
llvm-dwarfdump
llvm-mc
llvm-nm
llvm-objdump
llvm-readelf
llvm-readobj
llvm-strip
llvm-objcopy
merge-fdata
not
perf2bolt
yaml2obj
)
add_custom_target(bolt-test-depends DEPENDS ${BOLT_TEST_DEPS})
set_target_properties(bolt-test-depends PROPERTIES FOLDER "BOLT")
add_lit_testsuite(check-bolt "Running the BOLT regression tests"
${CMAKE_CURRENT_BINARY_DIR}
PARAMS ${BOLT_TEST_PARAMS}
DEPENDS ${BOLT_TEST_DEPS}
ARGS ${BOLT_TEST_EXTRA_ARGS}
)
set_target_properties(check-bolt PROPERTIES FOLDER "BOLT")
add_lit_testsuites(BOLT ${CMAKE_CURRENT_SOURCE_DIR}
PARAMS ${BOLT_TEST_PARAMS}
DEPENDS ${BOLT_TEST_DEPS}
)