From 6c8ebab183f18bc2f04dda648ae371f5132d6276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B8e?= Date: Wed, 6 Dec 2017 13:56:05 +0100 Subject: [PATCH] cmake: Added assert that will show usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is a catch-22 in that you need to run CMake to get a build system that can show you usage, but you need to know the usage to be able to get a build system. This assert could be used to improve the usability somewhat. When invalid usage is detected it can be used to print the usage. Signed-off-by: Sebastian Bøe --- cmake/extensions.cmake | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cmake/extensions.cmake b/cmake/extensions.cmake index 82fff013efb..1793153c8a4 100644 --- a/cmake/extensions.cmake +++ b/cmake/extensions.cmake @@ -811,3 +811,21 @@ macro(assert_exists var) message(FATAL_ERROR "No such file or directory: ${var}: '${${var}}'") endif() endmacro() + +# Usage: +# assert_with_usage(BOARD_DIR "No board named '${BOARD}' found") +# +# will print an error message, show usage, and then end executioon +# with a FATAL_ERROR if the test fails. +macro(assert_with_usage test comment) + if(NOT ${test}) + message(${comment}) + message("see usage:") + execute_process( + COMMAND + ${CMAKE_COMMAND} -P $ENV{ZEPHYR_BASE}/cmake/usage/usage.cmake + ) + message(FATAL_ERROR "Invalid usage") + endif() +endmacro() +