Merge pull request #3367 from hug-dev/psa-constants-in-build-dir
Generate PSA constant names in CMake build dir
This commit is contained in:
commit
73b394290a
@ -5,11 +5,12 @@ add_executable(key_ladder_demo key_ladder_demo.c)
|
|||||||
target_link_libraries(key_ladder_demo mbedtls)
|
target_link_libraries(key_ladder_demo mbedtls)
|
||||||
|
|
||||||
add_executable(psa_constant_names psa_constant_names.c)
|
add_executable(psa_constant_names psa_constant_names.c)
|
||||||
|
target_include_directories(psa_constant_names PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
target_link_libraries(psa_constant_names mbedtls)
|
target_link_libraries(psa_constant_names mbedtls)
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
psa_constant_names_generated
|
psa_constant_names_generated
|
||||||
COMMAND ${PYTHON_EXECUTABLE} scripts/generate_psa_constants.py
|
COMMAND ${PYTHON_EXECUTABLE} scripts/generate_psa_constants.py ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../
|
||||||
)
|
)
|
||||||
add_dependencies(psa_constant_names psa_constant_names_generated)
|
add_dependencies(psa_constant_names psa_constant_names_generated)
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
"""Generate programs/psa/psa_constant_names_generated.c
|
"""Generate psa_constant_names_generated.c
|
||||||
which is included by programs/psa/psa_constant_names.c.
|
which is included by programs/psa/psa_constant_names.c.
|
||||||
The code generated by this module is only meant to be used in the context
|
The code generated by this module is only meant to be used in the context
|
||||||
of that program.
|
of that program.
|
||||||
|
|
||||||
|
An argument passed to this script will modify the output directory where the
|
||||||
|
file is written:
|
||||||
|
* by default (no arguments passed): writes to programs/psa/
|
||||||
|
* OUTPUT_FILE_DIR passed: writes to OUTPUT_FILE_DIR/
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
OUTPUT_TEMPLATE = '''\
|
OUTPUT_TEMPLATE = '''\
|
||||||
/* Automatically generated by generate_psa_constant.py. DO NOT EDIT. */
|
/* Automatically generated by generate_psa_constant.py. DO NOT EDIT. */
|
||||||
@ -395,6 +401,8 @@ def generate_psa_constants(header_file_names, output_file_name):
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
if not os.path.isdir('programs') and os.path.isdir('../programs'):
|
if not os.path.isdir('programs') and os.path.isdir('../programs'):
|
||||||
os.chdir('..')
|
os.chdir('..')
|
||||||
|
# Allow to change the directory where psa_constant_names_generated.c is written to.
|
||||||
|
OUTPUT_FILE_DIR = sys.argv[1] if len(sys.argv) == 2 else "programs/psa"
|
||||||
generate_psa_constants(['include/psa/crypto_values.h',
|
generate_psa_constants(['include/psa/crypto_values.h',
|
||||||
'include/psa/crypto_extra.h'],
|
'include/psa/crypto_extra.h'],
|
||||||
'programs/psa/psa_constant_names_generated.c')
|
OUTPUT_FILE_DIR + '/psa_constant_names_generated.c')
|
||||||
|
Loading…
Reference in New Issue
Block a user