set(TEST_SUITE_EXTERNALS_DIR "" CACHE PATH "Directory containing test-suite external benchmark sources") # Find path containing an external benchmark and set PATHVAR to it. # Specifically this: # - Adds a CACHE variable for PATHVAR # - If PATHVAR is unset set it to the first existing directory in this list: # - ${TEST_SUITE_EXTERNALS_DIR}/${NAME} # - ${CMAKE_SOURCE_DIR}/test-suite-externals/${NAME} function(llvm_externals_find PATHVAR NAME DESCRIPTION) set(${PATHVAR} "" CACHE PATH "Directory containing ${DESCRIPTION} sourcecode") if(NOT ${PATHVAR}) if(TEST_SUITE_EXTERNALS_DIR) if (IS_DIRECTORY "${TEST_SUITE_EXTERNALS_DIR}/${NAME}") set(${PATHVAR} "${TEST_SUITE_EXTERNALS_DIR}/${NAME}" PARENT_SCOPE) endif() else() if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/test-suite-externals/${NAME}") set(${PATHVAR} "${CMAKE_SOURCE_DIR}/test-suite-externals/${NAME}" PARENT_SCOPE) endif() endif() if(${PATHVAR}) message(STATUS "Found ${DESCRIPTION}: ${${PATHVAR}}") endif() endif() endfunction()