aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authorwsnipex <wsnipex@a1.net>2016-12-19 09:46:31 +0100
committerwsnipex <wsnipex@a1.net>2016-12-22 11:07:59 +0100
commit8e6eb8045a22418c22253996afd9167fe317cd94 (patch)
treec6edb800a628832ced135af6289047e272e1e760 /project
parent712d562cedfbe2625ce95df92983e72791a7c30e (diff)
[cmake] fail when optional deps were manually enabled, but not found
Diffstat (limited to 'project')
-rw-r--r--project/cmake/scripts/common/Macros.cmake29
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()