diff options
author | Josh Blum <josh@joshknows.com> | 2011-10-19 11:16:25 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-10-19 11:16:25 -0700 |
commit | 7ed8b43e654ef613faf39c4298c15180b4114b1d (patch) | |
tree | 89abed6375c08a67b0529aef582cd0f53d99a6f9 /cmake | |
parent | 1cfa3791dab83b7bae1e4138f92e37364bd1c5ed (diff) |
cmake: fix that component depends on component hack
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/GrComponent.cmake | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/cmake/Modules/GrComponent.cmake b/cmake/Modules/GrComponent.cmake index 3891f6981d..d45b8003c5 100644 --- a/cmake/Modules/GrComponent.cmake +++ b/cmake/Modules/GrComponent.cmake @@ -54,9 +54,21 @@ function(GR_REGISTER_COMPONENT name var) set(var_force FALSE) endif() + #rewrite the dependency list so that deps that are also components use the cached version + unset(comp_deps) + foreach(dep ${ARGN}) + list(FIND _gr_enabled_components ${dep} dep_enb_index) + list(FIND _gr_disabled_components ${dep} dep_dis_index) + if (${dep_enb_index} EQUAL -1 AND ${dep_dis_index} EQUAL -1) + list(APPEND comp_deps ${dep}) + else() + list(APPEND comp_deps ${dep}_cached) #is a component, use cached version + endif() + endforeach(dep) + #setup the dependent option for this component - CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${ENABLE_DEFAULT} "${ARGN}" OFF) - set(${var}_ "${${var}}" CACHE INTERNAL "" FORCE) + CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${ENABLE_DEFAULT} "${comp_deps}" OFF) + set(${var}_cached "${${var}}" CACHE INTERNAL "" FORCE) #force was specified, but the dependencies were not met if(NOT ${var} AND var_force) |