diff options
Diffstat (limited to 'CMakeModules/implementations.cmake')
| -rw-r--r-- | CMakeModules/implementations.cmake | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/CMakeModules/implementations.cmake b/CMakeModules/implementations.cmake index aa6a8bf..cfab7e2 100644 --- a/CMakeModules/implementations.cmake +++ b/CMakeModules/implementations.cmake @@ -5,7 +5,7 @@ function(DefineImplementations prefix) set(implementations "") foreach(child ${children}) IF(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${prefix}/${child}) - LIST(APPEND implementations ${child}) + LIST(APPEND implementations ${child}) ENDIF() ENDFOREACH() @@ -15,9 +15,21 @@ function(DefineImplementations prefix) message(FATAL_ERROR "Cannot call DefineImplementations with an empty implementations list.") endif() + get_filename_component(lib ${CMAKE_CURRENT_SOURCE_DIR} NAME) + string(REGEX REPLACE "-" "_" lib ${lib}) + list(GET implementations 0 default) - set(${prefix}_implementations ${implementations} PARENT_SCOPE) - set(${prefix}_implementation "${default}" CACHE STRING "${prefix} implementation chosen at configure time") - set_property(CACHE ${prefix}_implementation PROPERTY STRINGS ${implementations}) + + if ("${prefix}" STREQUAL "") + set(prefix "") + else() + set(prefix "${prefix}_") + string(REGEX REPLACE "/" "_" prefix ${prefix}) + endif() + + + set(${lib}_${prefix}implementations ${implementations} PARENT_SCOPE) + set(${lib}_${prefix}implementation "${default}" CACHE STRING "${lib} implementation chosen at configure time") + set_property(CACHE ${lib}_${prefix}implementation PROPERTY STRINGS ${implementations}) endfunction(DefineImplementations) |
