cmake: Replace recursive globbing with explicit globbing in folders

This commit is contained in:
Hennadii Stepanov
2025-06-19 10:29:59 +01:00
parent 88d9092571
commit 76dae5d691

View File

@@ -32,21 +32,65 @@ endfunction()
create_test_config()
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/data)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/mocks)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/test_framework)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/test_framework/crypto)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/util)
file(GLOB_RECURSE functional_tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} functional/*)
foreach(script ${functional_tests} fuzz/test_runner.py)
if(CMAKE_HOST_WIN32)
set(symlink)
else()
set(symlink SYMBOLIC)
endif()
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR ${symlink})
endforeach()
unset(functional_tests)
function(create_test_directory_links)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
file(GLOB functional
LIST_DIRECTORIES FALSE
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
functional/*.html
functional/*.py
)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/data)
file(GLOB functional_data
LIST_DIRECTORIES FALSE
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
functional/data/*.json
functional/data/*.py
)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/mocks)
file(GLOB functional_mocks
LIST_DIRECTORIES FALSE
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
functional/mocks/*.py
)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/test_framework)
file(GLOB functional_test_framework
LIST_DIRECTORIES FALSE
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
functional/test_framework/*.csv
functional/test_framework/*.py
)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/test_framework/crypto)
file(GLOB functional_test_framework_crypto
LIST_DIRECTORIES FALSE
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
functional/test_framework/crypto/*.csv
functional/test_framework/crypto/*.py
)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
set(files_to_link
${functional}
${functional_data}
${functional_mocks}
${functional_test_framework}
${functional_test_framework_crypto}
fuzz/test_runner.py
)
foreach(f IN LISTS files_to_link)
if(CMAKE_HOST_WIN32)
set(symlink)
else()
set(symlink SYMBOLIC)
endif()
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${f} ${CMAKE_CURRENT_BINARY_DIR}/${f} COPY_ON_ERROR ${symlink})
endforeach()
endfunction()
create_test_directory_links()