15e334b51SLouis Dionne#===-- CMakeLists.txt ----------------------------------------------------===## 25e334b51SLouis Dionne# 357b08b09SChandler Carruth# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 457b08b09SChandler Carruth# See https://llvm.org/LICENSE.txt for license information. 557b08b09SChandler Carruth# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65e334b51SLouis Dionne# 75e334b51SLouis Dionne#===----------------------------------------------------------------------===## 85e334b51SLouis Dionne 95e334b51SLouis Dionne# TODO(ldionne): This CMake testing infrastructure should be replaced with a 105e334b51SLouis Dionne# llvm-lit test suite. 115e334b51SLouis Dionne 125e334b51SLouis Dionneadd_custom_target(pstl-build-tests 135e334b51SLouis Dionne COMMENT "Build all the pstl tests.") 145e334b51SLouis Dionne 155e334b51SLouis Dionneadd_custom_target(check-pstl 165e334b51SLouis Dionne COMMAND "${CMAKE_CTEST_COMMAND}" --output-on-failure 175e334b51SLouis Dionne USES_TERMINAL 185e334b51SLouis Dionne DEPENDS pstl-build-tests 195e334b51SLouis Dionne COMMENT "Build and run all the unit tests.") 205e334b51SLouis Dionne 214d88b17bSLouis Dionneadd_library(test_stdlib INTERFACE) 224d88b17bSLouis Dionnetarget_include_directories(test_stdlib INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/support/stdlib") 234d88b17bSLouis Dionnetarget_link_libraries(test_stdlib INTERFACE pstl::ParallelSTL) 24*5c4c4431SLouis Dionnetarget_compile_options(test_stdlib INTERFACE -Wno-gnu-include-next) 254d88b17bSLouis Dionne 263b62047bSLouis Dionnefile(GLOB_RECURSE UNIT_TESTS "*.pass.cpp") 275e334b51SLouis Dionneforeach(_file IN LISTS UNIT_TESTS) 285e334b51SLouis Dionne file(RELATIVE_PATH _target "${CMAKE_CURRENT_SOURCE_DIR}" "${_file}") 295e334b51SLouis Dionne string(REPLACE ".cpp" "" _target "${_target}") 303b62047bSLouis Dionne string(REPLACE "/" "-" _target "${_target}") 315e334b51SLouis Dionne set(_target "pstl-${_target}") 325e334b51SLouis Dionne 335e334b51SLouis Dionne add_executable(${_target} EXCLUDE_FROM_ALL "${_file}") 343b62047bSLouis Dionne target_include_directories(${_target} PRIVATE "${CMAKE_CURRENT_LIST_DIR}") 35*5c4c4431SLouis Dionne target_compile_options(${_target} PRIVATE -Wno-unused-local-typedef -Wno-unused-variable) 364d88b17bSLouis Dionne target_link_libraries(${_target} PRIVATE test_stdlib) 375e334b51SLouis Dionne set_target_properties(${_target} PROPERTIES CXX_EXTENSIONS NO 385e334b51SLouis Dionne RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 395e334b51SLouis Dionne add_test(${_target} "${CMAKE_CURRENT_BINARY_DIR}/${_target}") 405e334b51SLouis Dionne add_dependencies(pstl-build-tests ${_target}) 415e334b51SLouis Dionneendforeach() 42