Build: Enable ninja-based builds
This commit enables to use of `-GNinja` for builds, which
provides significantly faster TF-M builds, and enables
building TF-M as a cmake external project with Zephyr's
build system.
```
$ cmake -GNinja \
-DPROJ_CONFIG=`readlink -f ../configs/ConfigDefault.cmake` \
-DTARGET_PLATFORM=LPC55S69 -DBL2=False -DCOMPILER=GNUARM ..
$ ninja
```
Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>
Change-Id: I5deaaf9ffb3ec3329174881d70fe7033b531ec49
diff --git a/BuildMbedCrypto.cmake b/BuildMbedCrypto.cmake
index 4d5caee..e697111 100644
--- a/BuildMbedCrypto.cmake
+++ b/BuildMbedCrypto.cmake
@@ -109,6 +109,7 @@
#this target installation happens only when a clean mbed-crypto build is executed.
add_custom_target(${MBEDCRYPTO_TARGET_NAME}_install
COMMAND ${CMAKE_COMMAND} --build ${MBEDCRYPTO_BINARY_DIR} -- install
+ BYPRODUCTS ${MBEDCRYPTO_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX_C}mbedcrypto${CMAKE_STATIC_LIBRARY_SUFFIX_C}
WORKING_DIRECTORY ${MBEDCRYPTO_BINARY_DIR}
COMMENT "Installing Mbed Crypto to ${MBEDCRYPTO_INSTALL_DIR}"
VERBATIM)
diff --git a/cmake/Common/CompilerGNUARMCommon.cmake b/cmake/Common/CompilerGNUARMCommon.cmake
index d616a2d..6d427ec 100644
--- a/cmake/Common/CompilerGNUARMCommon.cmake
+++ b/cmake/Common/CompilerGNUARMCommon.cmake
@@ -146,6 +146,7 @@
set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--cmse-implib,--out-implib=${FILE_PATH}")
#Tell cmake cmse output is a generated object file.
SET_SOURCE_FILES_PROPERTIES("${FILE_PATH}" PROPERTIES EXTERNAL_OBJECT true GENERATED true)
+ add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo "" BYPRODUCTS ${FILE_PATH})
#Tell cmake cmse output shall be removed by clean target.
get_directory_property(_ADDITIONAL_MAKE_CLEAN_FILES DIRECTORY "./" ADDITIONAL_MAKE_CLEAN_FILES)
set_directory_properties(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${_ADDITIONAL_MAKE_CLEAN_FILES} ${FILE_PATH}")
diff --git a/cmake/Compiler/GNUARM.cmake b/cmake/Compiler/GNUARM.cmake
index aa197a5..ed05d92 100644
--- a/cmake/Compiler/GNUARM.cmake
+++ b/cmake/Compiler/GNUARM.cmake
@@ -51,6 +51,6 @@
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
- set(CMAKE_DEPFILE_FLAGS_${lang} "--depend=<DEPFILE> --depend_single_line --no_depend_system_headers")
+ set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
endif()
endmacro()