CMake VFS: Enable us to provided vfs plugins from an external directory

This commit is contained in:
Hannah von Reth 2019-08-15 13:13:44 +02:00 committed by Hannah von Reth
parent 71348521b3
commit c4f83fe382

View File

@ -1,20 +1,25 @@
# Globbing for plugins has a problem with in-source builds
# that create directories for the build.
#file(GLOB vfsPlugins RELATIVE ${CMAKE_CURRENT_LIST_DIR} "*")
#file(GLOB VIRTUAL_FILE_SYSTEM_PLUGINS RELATIVE ${CMAKE_CURRENT_LIST_DIR} "*")
SET(vfsPlugins "suffix;win")
list(APPEND VIRTUAL_FILE_SYSTEM_PLUGINS "suffix" "win")
foreach(vfsPlugin ${vfsPlugins})
if(NOT IS_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/${vfsPlugin}")
foreach(vfsPlugin ${VIRTUAL_FILE_SYSTEM_PLUGINS})
set(vfsPluginPath ${vfsPlugin})
get_filename_component(vfsPluginName ${vfsPlugin} NAME)
if (NOT IS_ABSOLUTE ${vfsPlugin})
set(vfsPluginPath "${CMAKE_CURRENT_LIST_DIR}/${vfsPlugin}")
endif()
if(NOT IS_DIRECTORY ${vfsPluginPath})
continue()
endif()
add_subdirectory("${vfsPlugin}")
add_subdirectory(${vfsPluginPath} ${vfsPluginName})
if(UNIT_TESTING AND IS_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/${vfsPlugin}/test")
add_subdirectory("${vfsPlugin}/test" "${vfsPlugin}_test")
message(STATUS "Added vfsPlugin with tests: ${vfsPlugin}")
if(UNIT_TESTING AND IS_DIRECTORY "${vfsPluginPath}/test")
add_subdirectory("${vfsPluginPath}/test" "${vfsPluginName}_test")
message(STATUS "Added vfsPlugin with tests: ${vfsPluginName}")
else()
message(STATUS "Added vfsPlugin without tests: ${vfsPlugin}")
message(STATUS "Added vfsPlugin without tests: ${vfsPluginName}")
endif()
endforeach()