cmake: Move syscall_macros.h generation into the build stage
This fixes https://github.com/zephyrproject-rtos/zephyr/issues/5186 The script that generates syscall_macros.h is moved from Configuration time to build time. This allows us to express to the build system that syscall_macros.h depends on the script that generates it. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
This commit is contained in:
parent
9116643290
commit
2ead15de8d
|
@ -291,6 +291,17 @@ add_subdirectory(arch)
|
||||||
add_subdirectory(drivers)
|
add_subdirectory(drivers)
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
||||||
|
set(syscall_macros_h ${ZEPHYR_BINARY_DIR}/include/generated/syscall_macros.h)
|
||||||
|
|
||||||
|
add_custom_target(syscall_macros_h_target DEPENDS ${syscall_macros_h})
|
||||||
|
add_custom_command( OUTPUT ${syscall_macros_h}
|
||||||
|
COMMAND
|
||||||
|
${PYTHON_EXECUTABLE}
|
||||||
|
${PROJECT_SOURCE_DIR}/scripts/gen_syscall_header.py
|
||||||
|
> ${syscall_macros_h}
|
||||||
|
DEPENDS ${PROJECT_SOURCE_DIR}/scripts/gen_syscall_header.py
|
||||||
|
)
|
||||||
|
|
||||||
# Generate offsets.c.obj from offsets.c
|
# Generate offsets.c.obj from offsets.c
|
||||||
# Generate offsets.h from offsets.c.obj
|
# Generate offsets.h from offsets.c.obj
|
||||||
|
|
||||||
|
@ -300,6 +311,7 @@ set(OFFSETS_H_PATH ${PROJECT_BINARY_DIR}/include/generated/offsets.h)
|
||||||
|
|
||||||
add_library(offsets STATIC ${OFFSETS_C_PATH})
|
add_library(offsets STATIC ${OFFSETS_C_PATH})
|
||||||
target_link_libraries(offsets zephyr_interface)
|
target_link_libraries(offsets zephyr_interface)
|
||||||
|
add_dependencies(offsets syscall_macros_h_target)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OFFSETS_H_PATH}
|
OUTPUT ${OFFSETS_H_PATH}
|
||||||
|
|
|
@ -66,16 +66,6 @@ include($ENV{ZEPHYR_BASE}/cmake/extensions.cmake)
|
||||||
|
|
||||||
find_package(PythonInterp 3.4)
|
find_package(PythonInterp 3.4)
|
||||||
|
|
||||||
# Generate syscall_macros.h at configure-time because it has virtually
|
|
||||||
# no dependencies
|
|
||||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/include/generated)
|
|
||||||
execute_process(
|
|
||||||
COMMAND
|
|
||||||
${PYTHON_EXECUTABLE}
|
|
||||||
$ENV{ZEPHYR_BASE}/scripts/gen_syscall_header.py
|
|
||||||
OUTPUT_FILE ${ZEPHYR_BINARY_DIR}/include/generated/syscall_macros.h
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT ZEPHYR_GCC_VARIANT)
|
if(NOT ZEPHYR_GCC_VARIANT)
|
||||||
set(ZEPHYR_GCC_VARIANT $ENV{ZEPHYR_GCC_VARIANT})
|
set(ZEPHYR_GCC_VARIANT $ENV{ZEPHYR_GCC_VARIANT})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# conf/mconf needs to be run from a different directory because of: ZEP-1963
|
# conf/mconf needs to be run from a different directory because of: ZEP-1963
|
||||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig/include/generated)
|
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig/include/generated)
|
||||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig/include/config)
|
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig/include/config)
|
||||||
|
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/include/generated)
|
||||||
|
|
||||||
set_ifndef(KCONFIG_ROOT ${PROJECT_SOURCE_DIR}/Kconfig)
|
set_ifndef(KCONFIG_ROOT ${PROJECT_SOURCE_DIR}/Kconfig)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue