diff options
author | Kevin Townsend <kevin.townsend@linaro.org> | 2020-06-02 12:50:12 +0200 |
---|---|---|
committer | Ken Liu <ken.liu@arm.com> | 2020-06-04 09:45:14 +0000 |
commit | 99c0a9626df6ed0d62d37e0493c7067254d99e7e (patch) | |
tree | caf4835ec4682faec35e89100cd8b303f8ead3b6 | |
parent | 1f345b0d3f51b547c6422febc5f5a5956a1f81bb (diff) | |
download | trusted-firmware-m-99c0a9626df6ed0d62d37e0493c7067254d99e7e.tar.gz |
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
-rw-r--r-- | BuildMbedCrypto.cmake | 1 | ||||
-rw-r--r-- | cmake/Common/CompilerGNUARMCommon.cmake | 1 | ||||
-rw-r--r-- | cmake/Compiler/GNUARM.cmake | 2 |
3 files changed, 3 insertions, 1 deletions
diff --git a/BuildMbedCrypto.cmake b/BuildMbedCrypto.cmake index 4d5caee008..e697111eea 100644 --- a/BuildMbedCrypto.cmake +++ b/BuildMbedCrypto.cmake @@ -109,6 +109,7 @@ externalproject_add(${MBEDCRYPTO_TARGET_NAME} #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 d616a2df1f..6d427ecbfc 100644 --- a/cmake/Common/CompilerGNUARMCommon.cmake +++ b/cmake/Common/CompilerGNUARMCommon.cmake @@ -146,6 +146,7 @@ function(compiler_set_cmse_output TARGET FILE_PATH) 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 aa197a5e5d..ed05d92426 100644 --- a/cmake/Compiler/GNUARM.cmake +++ b/cmake/Compiler/GNUARM.cmake @@ -51,6 +51,6 @@ macro(__compiler_gnuarm lang) 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() |