diff options
author | wsnipex <wsnipex@a1.net> | 2016-12-19 09:46:31 +0100 |
---|---|---|
committer | wsnipex <wsnipex@a1.net> | 2016-12-22 11:07:59 +0100 |
commit | 8e6eb8045a22418c22253996afd9167fe317cd94 (patch) | |
tree | c6edb800a628832ced135af6289047e272e1e760 /project | |
parent | 712d562cedfbe2625ce95df92983e72791a7c30e (diff) |
[cmake] fail when optional deps were manually enabled, but not found
Diffstat (limited to 'project')
-rw-r--r-- | project/cmake/scripts/common/Macros.cmake | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/project/cmake/scripts/common/Macros.cmake b/project/cmake/scripts/common/Macros.cmake index 71c39ef5f9..8fc1054895 100644 --- a/project/cmake/scripts/common/Macros.cmake +++ b/project/cmake/scripts/common/Macros.cmake @@ -350,6 +350,7 @@ function(core_optional_dep dep) find_package(${dep}) elseif(${${enable_switch}}) find_package(${dep} REQUIRED) + set(_required True) endif() if(${depup}_FOUND) @@ -358,6 +359,8 @@ function(core_optional_dep dep) list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS}) set(final_message ${final_message} "${depup} enabled: Yes" PARENT_SCOPE) export_dep() + elseif(_required) + message(FATAL_ERROR "${depup} enabled but not found") else() set(final_message ${final_message} "${depup} enabled: No" PARENT_SCOPE) endif() @@ -370,16 +373,24 @@ endfunction() # dependency optionally added to ${SYSTEM_INCLUDES}, ${DEP_DEFINES}, ${dep}_SONAME is set up function(core_optional_dyload_dep dep) setup_enable_switch() - if(${enable_switch}) + if(${enable_switch} STREQUAL AUTO) find_package(${dep}) - if(${depup}_FOUND) - list(APPEND SYSTEM_INCLUDES ${${depup}_INCLUDE_DIRS}) - find_soname(${depup} REQUIRED) - list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS}) - set(final_message ${final_message} "${depup} enabled: Yes" PARENT_SCOPE) - export_dep() - set(${depup}_SONAME ${${depup}_SONAME} PARENT_SCOPE) - endif() + elseif(${${enable_switch}}) + find_package(${dep} REQUIRED) + set(_required True) + endif() + + if(${depup}_FOUND) + list(APPEND SYSTEM_INCLUDES ${${depup}_INCLUDE_DIRS}) + find_soname(${depup} REQUIRED) + list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS}) + set(final_message ${final_message} "${depup} enabled: Yes" PARENT_SCOPE) + export_dep() + set(${depup}_SONAME ${${depup}_SONAME} PARENT_SCOPE) + elseif(_required) + message(FATAL_ERROR "${depup} enabled but not found") + else() + set(final_message ${final_message} "${depup} enabled: No" PARENT_SCOPE) endif() endfunction() |