cmake: ninja usage build target

Fixed usage build target.

Previously, `ninja usage` would print:
Build flags:

  ninja VERBOSE=1 [targets] verbose build

This is clearly wrong, as VERBOSE=1 is for make targets.

To support both ninja based builds and make based build systems, the
CMAKE_MAKE_PROGRAM is now exported from the calling CMake / build
instance, and the verbose flag is set depending on whether ninja or
make is used as build program.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
diff --git a/cmake/extensions.cmake b/cmake/extensions.cmake
index 9efc4cc..b890da8 100644
--- a/cmake/extensions.cmake
+++ b/cmake/extensions.cmake
@@ -1481,14 +1481,20 @@
 endmacro()
 
 function(print_usage)
+  if(NOT CMAKE_MAKE_PROGRAM)
+    # Create dummy project, in order to obtain make program for correct usage printing.
+    project(NONE)
+  endif()
   message("see usage:")
   string(REPLACE ";" " " BOARD_ROOT_SPACE_SEPARATED "${BOARD_ROOT}")
   string(REPLACE ";" " " SHIELD_LIST_SPACE_SEPARATED "${SHIELD_LIST}")
   execute_process(
     COMMAND
     ${CMAKE_COMMAND}
+    -DZEPHYR_BASE=${ZEPHYR_BASE}
     -DBOARD_ROOT_SPACE_SEPARATED=${BOARD_ROOT_SPACE_SEPARATED}
     -DSHIELD_LIST_SPACE_SEPARATED=${SHIELD_LIST_SPACE_SEPARATED}
+    -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
     -P ${ZEPHYR_BASE}/cmake/usage/usage.cmake
     )
 endfunction()
diff --git a/cmake/usage/CMakeLists.txt b/cmake/usage/CMakeLists.txt
index 5b042a4..b212723 100644
--- a/cmake/usage/CMakeLists.txt
+++ b/cmake/usage/CMakeLists.txt
@@ -6,8 +6,10 @@
 add_custom_target(
   usage
   ${CMAKE_COMMAND}
+  -DZEPHYR_BASE=${ZEPHYR_BASE}
   -DBOARD_ROOT_SPACE_SEPARATED=${BOARD_ROOT_SPACE_SEPARATED}
   -DSHIELD_LIST_SPACE_SEPARATED=${SHIELD_LIST_SPACE_SEPARATED}
+  -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
   -P ${CMAKE_CURRENT_SOURCE_DIR}/usage.cmake
   )
 
diff --git a/cmake/usage/usage.cmake b/cmake/usage/usage.cmake
index bbf8801..319e3e7 100644
--- a/cmake/usage/usage.cmake
+++ b/cmake/usage/usage.cmake
@@ -1,13 +1,16 @@
 # SPDX-License-Identifier: Apache-2.0
-if(NOT DEFINED ENV{ZEPHYR_BASE})
+if(NOT DEFINED ZEPHYR_BASE)
   message(FATAL_ERROR "ZEPHYR_BASE not set")
 endif()
 
-include ($ENV{ZEPHYR_BASE}/cmake/boards.cmake)
+include (${ZEPHYR_BASE}/cmake/boards.cmake)
 
-# TODO: Set to make when make is used as a generator
-set(CMAKE_MAKE_PROGRAM ninja)
 get_filename_component(generator ${CMAKE_MAKE_PROGRAM} NAME)
+if(${generator} STREQUAL ninja)
+  set(verbose "-v")
+else()
+  set(verbose "VERBOSE=1")
+endif()
 
 string(REPLACE " " ";" BOARD_ROOT "${BOARD_ROOT_SPACE_SEPARATED}")
 string(REPLACE " " ";" SHIELD_LIST "${SHIELD_LIST_SPACE_SEPARATED}")
@@ -52,7 +55,7 @@
 message("")
 message("Build flags:")
 message("")
-message("  ${generator} VERBOSE=1 [targets] verbose build")
+message("  ${generator} ${verbose} [targets] verbose build")
 message("  cmake -DW=n   Enable extra gcc checks, n=1,2,3 where")
 message("   1: warnings which may be relevant and do not occur too often")
 message("   2: warnings which occur quite often but may still be relevant")