mirror of
https://github.com/apache/nuttx.git
synced 2026-08-17 01:23:01 +08:00
cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR)
This change fixes NuttX’s CMake support when NuttX is embedded in another project via add_subdirectory(). CMake’s CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR refer to the outermost project, causing NuttX to access its .config, generated files, host tools, and build artifacts in the parent project’s directories. The fix introduces NUTTX_DIR and NUTTX_BINARY_DIR, based on CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR, and consistently uses them for NuttX self-references while preserving existing standalone builds. It fixes the Kconfig initialization failure reported in #19697 and allows an embedded sim:nsh build to configure, build, and boot successfully. The change affects only the CMake build system (not Make or Kconfig defaults), requires the corresponding nuttx-apps change, and does not extend add_subdirectory() support to cross-compiled non-sim boards due to CMake’s toolchain-file limitation. Fixes #19697. Assisted-by: Claude:claude-sonnet-5 Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
This commit is contained in:
committed by
Alan C. Assis
parent
b8e26b127e
commit
87260499e1
+47
-47
@@ -89,6 +89,7 @@ set(CMAKE_USER_MAKE_RULES_OVERRIDE
|
||||
# Process board config & directory locations #################################
|
||||
|
||||
set(NUTTX_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(NUTTX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
# uncleaned previous make build can cause various types of cmake error
|
||||
if(EXISTS "${NUTTX_DIR}/.config")
|
||||
@@ -211,7 +212,7 @@ endif()
|
||||
|
||||
get_filename_component(NUTTX_APPS_DIR ${NUTTX_APPS_DIR} ABSOLUTE)
|
||||
get_filename_component(apps_dir ${NUTTX_APPS_DIR} NAME)
|
||||
set(NUTTX_APPS_BINDIR "${CMAKE_BINARY_DIR}/${apps_dir}")
|
||||
set(NUTTX_APPS_BINDIR "${NUTTX_BINARY_DIR}/${apps_dir}")
|
||||
|
||||
# Support not having application directory
|
||||
|
||||
@@ -220,10 +221,10 @@ if("${apps_dir}" STREQUAL "dummy")
|
||||
file(TOUCH ${NUTTX_APPS_BINDIR}/Kconfig)
|
||||
endif()
|
||||
|
||||
set(ENV{PYTHONPYCACHEPREFIX} ${CMAKE_BINARY_DIR})
|
||||
set(ENV{PYTHONPYCACHEPREFIX} ${NUTTX_BINARY_DIR})
|
||||
set(ENV{APPSDIR} ${NUTTX_APPS_DIR}) # TODO: support not having apps/
|
||||
set(ENV{APPSBINDIR} ${NUTTX_APPS_BINDIR}) # TODO: support not having apps/
|
||||
set(ENV{BINDIR} ${CMAKE_BINARY_DIR}) # TODO: support not having apps/
|
||||
set(ENV{BINDIR} ${NUTTX_BINARY_DIR}) # TODO: support not having apps/
|
||||
set(ENV{EXTERNALDIR} dummy) # TODO
|
||||
set(ENV{DRIVERS_PLATFORM_DIR} dummy) # TODO
|
||||
|
||||
@@ -273,7 +274,7 @@ endif()
|
||||
|
||||
# Custom board ###################################################
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/boards/dummy)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/boards/dummy)
|
||||
if(CONFIG_ARCH_BOARD_CUSTOM)
|
||||
get_filename_component(NUTTX_BOARD_ABS_DIR ${CONFIG_ARCH_BOARD_CUSTOM_DIR}
|
||||
ABSOLUTE BASE_DIR ${NUTTX_DIR})
|
||||
@@ -291,22 +292,22 @@ if(CONFIG_ARCH_BOARD_CUSTOM
|
||||
AND EXISTS ${NUTTX_BOARD_ABS_DIR}/Kconfig
|
||||
AND NOT (IS_NUTTX_BOARD EQUAL 0))
|
||||
nuttx_create_symlink(${NUTTX_BOARD_ABS_DIR}/Kconfig
|
||||
${CMAKE_BINARY_DIR}/boards/dummy/Kconfig)
|
||||
${NUTTX_BINARY_DIR}/boards/dummy/Kconfig)
|
||||
else()
|
||||
file(TOUCH ${CMAKE_BINARY_DIR}/boards/dummy/Kconfig)
|
||||
file(TOUCH ${NUTTX_BINARY_DIR}/boards/dummy/Kconfig)
|
||||
endif()
|
||||
|
||||
# board platform driver
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/drivers)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/drivers)
|
||||
|
||||
if(EXISTS ${NUTTX_BOARD_ABS_DIR}/../drivers
|
||||
AND EXISTS ${NUTTX_BOARD_ABS_DIR}/../drivers/Kconfig)
|
||||
nuttx_create_symlink(${NUTTX_BOARD_ABS_DIR}/../drivers
|
||||
${CMAKE_BINARY_DIR}/drivers/platform)
|
||||
${NUTTX_BINARY_DIR}/drivers/platform)
|
||||
else()
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/drivers/platform)
|
||||
file(TOUCH ${CMAKE_BINARY_DIR}/drivers/platform/Kconfig)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/drivers/platform)
|
||||
file(TOUCH ${NUTTX_BINARY_DIR}/drivers/platform/Kconfig)
|
||||
endif()
|
||||
|
||||
# Custom chip ###################################################
|
||||
@@ -320,25 +321,25 @@ else()
|
||||
"${NUTTX_DIR}/arch/${CONFIG_ARCH}/src/${CONFIG_ARCH_CHIP}")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${CMAKE_BINARY_DIR}/arch/dummy)
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/arch/dummy)
|
||||
if(NOT EXISTS ${NUTTX_BINARY_DIR}/arch/dummy)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/arch/dummy)
|
||||
endif()
|
||||
|
||||
if(CONFIG_ARCH_CHIP_CUSTOM AND EXISTS ${NUTTX_CHIP_ABS_DIR}/Kconfig)
|
||||
nuttx_create_symlink(${NUTTX_CHIP_ABS_DIR}/Kconfig
|
||||
${CMAKE_BINARY_DIR}/arch/dummy/Kconfig)
|
||||
${NUTTX_BINARY_DIR}/arch/dummy/Kconfig)
|
||||
else()
|
||||
file(TOUCH ${CMAKE_BINARY_DIR}/arch/dummy/Kconfig)
|
||||
file(TOUCH ${NUTTX_BINARY_DIR}/arch/dummy/Kconfig)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH})
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH})
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src)
|
||||
if(NOT EXISTS ${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH})
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH})
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src/chip)
|
||||
if(NOT EXISTS ${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src/chip)
|
||||
nuttx_create_symlink(${NUTTX_CHIP_ABS_DIR}
|
||||
${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src/chip)
|
||||
${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src/chip)
|
||||
endif()
|
||||
|
||||
# Unsupported custom board/chips yet, workaround
|
||||
@@ -351,28 +352,28 @@ endif()
|
||||
# Copy board defconfig into main directory and expand TODO: do also for changes
|
||||
# in board/config (by comparing stored defconfig to specified one)
|
||||
|
||||
if(NOT EXISTS ${CMAKE_BINARY_DIR}/.config OR NOT "${NUTTX_DEFCONFIG}" STREQUAL
|
||||
if(NOT EXISTS ${NUTTX_BINARY_DIR}/.config OR NOT "${NUTTX_DEFCONFIG}" STREQUAL
|
||||
"${NUTTX_DEFCONFIG_SAVED}")
|
||||
|
||||
message(STATUS "Initializing NuttX")
|
||||
configure_file(${NUTTX_DEFCONFIG} defconfig COPYONLY)
|
||||
configure_file(${NUTTX_DEFCONFIG} .config.compressed COPYONLY)
|
||||
|
||||
set(ENV{KCONFIG_CONFIG} ${CMAKE_BINARY_DIR}/.config.compressed)
|
||||
set(ENV{KCONFIG_CONFIG} ${NUTTX_BINARY_DIR}/.config.compressed)
|
||||
|
||||
# Define host before the first olddefconfig so host-dependent defaults, such
|
||||
# as the sim toolchain choice on macOS, resolve the same way as configure.sh.
|
||||
nuttx_sethost(CONFIG_FILE ${CMAKE_BINARY_DIR}/.config.compressed)
|
||||
nuttx_sethost(CONFIG_FILE ${NUTTX_BINARY_DIR}/.config.compressed)
|
||||
|
||||
# Do olddefconfig step to expand the abbreviated defconfig into normal config
|
||||
nuttx_olddefconfig()
|
||||
|
||||
file(RENAME ${CMAKE_BINARY_DIR}/.config.compressed
|
||||
${CMAKE_BINARY_DIR}/.config)
|
||||
set(ENV{KCONFIG_CONFIG} ${CMAKE_BINARY_DIR}/.config)
|
||||
file(RENAME ${NUTTX_BINARY_DIR}/.config.compressed
|
||||
${NUTTX_BINARY_DIR}/.config)
|
||||
set(ENV{KCONFIG_CONFIG} ${NUTTX_BINARY_DIR}/.config)
|
||||
|
||||
# Set CONFIG_BASE_DEFCONFIG so .config matches Make behavior (configure.sh)
|
||||
file(READ ${CMAKE_BINARY_DIR}/.config _config_init_content)
|
||||
file(READ ${NUTTX_BINARY_DIR}/.config _config_init_content)
|
||||
string(
|
||||
REGEX
|
||||
REPLACE "CONFIG_BASE_DEFCONFIG=\"[^\"]*\""
|
||||
@@ -382,10 +383,10 @@ if(NOT EXISTS ${CMAKE_BINARY_DIR}/.config OR NOT "${NUTTX_DEFCONFIG}" STREQUAL
|
||||
string(APPEND _config_init_content
|
||||
"\nCONFIG_BASE_DEFCONFIG=\"${NUTTX_BOARD}/${NUTTX_CONFIG}\"\n")
|
||||
endif()
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/.config "${_config_init_content}")
|
||||
file(WRITE ${NUTTX_BINARY_DIR}/.config "${_config_init_content}")
|
||||
|
||||
# store original expanded .config
|
||||
configure_file(${CMAKE_BINARY_DIR}/.config ${CMAKE_BINARY_DIR}/.config.orig
|
||||
configure_file(${NUTTX_BINARY_DIR}/.config ${NUTTX_BINARY_DIR}/.config.orig
|
||||
COPYONLY)
|
||||
|
||||
set(NUTTX_DEFCONFIG_SAVED
|
||||
@@ -422,7 +423,7 @@ add_custom_target(nuttx_global)
|
||||
|
||||
# this exposes all Kconfig vars to CMake
|
||||
|
||||
nuttx_export_kconfig(${CMAKE_BINARY_DIR}/.config)
|
||||
nuttx_export_kconfig(${NUTTX_BINARY_DIR}/.config)
|
||||
|
||||
include(nuttx_generate_headers)
|
||||
include(nuttx_generate_outputs)
|
||||
@@ -471,9 +472,9 @@ endif()
|
||||
|
||||
# This needs to happen before project() when binaries are searched for
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/arch/${CONFIG_ARCH}/src/cmake)
|
||||
list(APPEND CMAKE_MODULE_PATH ${NUTTX_DIR}/arch/${CONFIG_ARCH}/src/cmake)
|
||||
set(CMAKE_TOOLCHAIN_FILE
|
||||
"${CMAKE_SOURCE_DIR}/arch/${CONFIG_ARCH}/src/cmake/Toolchain.cmake")
|
||||
"${NUTTX_DIR}/arch/${CONFIG_ARCH}/src/cmake/Toolchain.cmake")
|
||||
|
||||
# Compiler detection must not try to link a full executable. CMake validates a
|
||||
# compiler by building and linking a test program, but a bare metal cross
|
||||
@@ -511,8 +512,8 @@ if(EXISTS ${NUTTX_BOARD_ABS_DIR}/cmake
|
||||
endif()
|
||||
|
||||
# Support loadable and kernel options by specific arch
|
||||
if(EXISTS ${CMAKE_SOURCE_DIR}/arch/${CONFIG_ARCH}/src/cmake/elf.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/arch/${CONFIG_ARCH}/src/cmake/elf.cmake)
|
||||
if(EXISTS ${NUTTX_DIR}/arch/${CONFIG_ARCH}/src/cmake/elf.cmake)
|
||||
include(${NUTTX_DIR}/arch/${CONFIG_ARCH}/src/cmake/elf.cmake)
|
||||
endif()
|
||||
|
||||
include(platform)
|
||||
@@ -598,7 +599,7 @@ if(CONFIG_ARCH_SIM)
|
||||
# linked against final nuttx binary
|
||||
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(nuttx PRIVATE ${CMAKE_BINARY_DIR}/nuttx.rel)
|
||||
target_link_libraries(nuttx PRIVATE ${NUTTX_BINARY_DIR}/nuttx.rel)
|
||||
endif()
|
||||
else()
|
||||
# These flags apply to source files not part of the library. In sim build this
|
||||
@@ -620,7 +621,7 @@ set_property(
|
||||
# Each subdirectory will generate a static library
|
||||
|
||||
if(CONFIG_OPENAMP)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/openamp/open-amp/lib/include)
|
||||
include_directories(${NUTTX_DIR}/openamp/open-amp/lib/include)
|
||||
endif()
|
||||
|
||||
add_subdirectory(openamp)
|
||||
@@ -678,7 +679,7 @@ if(NOT CONFIG_ARCH_SIM)
|
||||
set(ldscript_tmp_list)
|
||||
foreach(ld ${ldscript})
|
||||
get_filename_component(LD_SCRIPT_NAME ${ld} NAME)
|
||||
set(LD_SCRIPT_TMP "${CMAKE_BINARY_DIR}/${LD_SCRIPT_NAME}.tmp")
|
||||
set(LD_SCRIPT_TMP "${NUTTX_BINARY_DIR}/${LD_SCRIPT_NAME}.tmp")
|
||||
|
||||
nuttx_generate_preprocess_target(SOURCE_FILE ${ld} TARGET_FILE
|
||||
${LD_SCRIPT_TMP})
|
||||
@@ -705,7 +706,7 @@ else()
|
||||
endif()
|
||||
|
||||
# initialize manifest to hold all generated files
|
||||
file(TOUCH ${CMAKE_BINARY_DIR}/nuttx.manifest)
|
||||
file(TOUCH ${NUTTX_BINARY_DIR}/nuttx.manifest)
|
||||
|
||||
get_property(nuttx_kernel_libs GLOBAL PROPERTY NUTTX_KERNEL_LIBRARIES)
|
||||
get_property(nuttx_extra_libs GLOBAL PROPERTY NUTTX_EXTRA_LIBRARIES)
|
||||
@@ -749,7 +750,7 @@ if(NOT CONFIG_ARCH_SIM)
|
||||
|
||||
# TODO: install? $(Q) if [ -w /tftpboot ] ; then \ cp -f uImage
|
||||
# /tftpboot/uImage; \ fi
|
||||
file(APPEND ${CMAKE_BINARY_DIR}/nuttx.manifest uImage)
|
||||
file(APPEND ${NUTTX_BINARY_DIR}/nuttx.manifest uImage)
|
||||
endif()
|
||||
elseif(WIN32)
|
||||
target_link_options(nuttx PUBLIC /SAFESEH:NO)
|
||||
@@ -766,15 +767,15 @@ elseif(WIN32)
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/nuttx_all.lib
|
||||
COMMAND ${CMAKE_AR} /OUT:${CMAKE_BINARY_DIR}/nuttx_all.lib
|
||||
OUTPUT ${NUTTX_BINARY_DIR}/nuttx_all.lib
|
||||
COMMAND ${CMAKE_AR} /OUT:${NUTTX_BINARY_DIR}/nuttx_all.lib
|
||||
${nuttx_libs_paths}
|
||||
DEPENDS ${nuttx_libs}
|
||||
VERBATIM)
|
||||
add_custom_target(nuttx_all-lib DEPENDS ${CMAKE_BINARY_DIR}/nuttx_all.lib)
|
||||
add_custom_target(nuttx_all-lib DEPENDS ${NUTTX_BINARY_DIR}/nuttx_all.lib)
|
||||
add_dependencies(nuttx nuttx_all-lib)
|
||||
target_link_libraries(nuttx PRIVATE $<TARGET_OBJECTS:sim_head>
|
||||
${CMAKE_BINARY_DIR}/nuttx_all.lib)
|
||||
${NUTTX_BINARY_DIR}/nuttx_all.lib)
|
||||
else()
|
||||
|
||||
if(NOT APPLE)
|
||||
@@ -828,7 +829,7 @@ endif()
|
||||
|
||||
# TODO: if we use an install target a manifest may not be needed
|
||||
if(CONFIG_ARCH_SIM)
|
||||
file(APPEND ${CMAKE_BINARY_DIR}/nuttx.manifest "nuttx\n")
|
||||
file(APPEND ${NUTTX_BINARY_DIR}/nuttx.manifest "nuttx\n")
|
||||
endif()
|
||||
|
||||
# Generate system map using the compiler toolchain. Conventionally, the tool
|
||||
@@ -862,7 +863,7 @@ if(CONFIG_BUILD_PROTECTED)
|
||||
set(user_ldscript_tmp_list)
|
||||
foreach(ldscript ${user_ldscript})
|
||||
get_filename_component(LD_SCRIPT_USER_NAME ${ldscript} NAME)
|
||||
set(LD_SCRIPT_USER_TMP "${CMAKE_BINARY_DIR}/${LD_SCRIPT_USER_NAME}.tmp")
|
||||
set(LD_SCRIPT_USER_TMP "${NUTTX_BINARY_DIR}/${LD_SCRIPT_USER_NAME}.tmp")
|
||||
nuttx_generate_preprocess_target(SOURCE_FILE ${ldscript} TARGET_FILE
|
||||
${LD_SCRIPT_USER_TMP})
|
||||
add_custom_target(user_ldscript_tmp_${LD_SCRIPT_USER_NAME}
|
||||
@@ -909,9 +910,8 @@ if(CONFIG_BUILD_PROTECTED)
|
||||
$<$<NOT:$<BOOL:${DISABLE_LINK_GROUP}>>:-Wl,--end-group>)
|
||||
|
||||
target_include_directories(
|
||||
nuttx_user SYSTEM
|
||||
PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include
|
||||
${CMAKE_BINARY_DIR}/include_arch)
|
||||
nuttx_user SYSTEM PRIVATE ${NUTTX_DIR}/include ${NUTTX_BINARY_DIR}/include
|
||||
${NUTTX_BINARY_DIR}/include_arch)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT User.map
|
||||
|
||||
+2
-2
@@ -25,13 +25,13 @@
|
||||
# the "user" portion is named "arch_interface".
|
||||
|
||||
nuttx_add_kernel_library(arch)
|
||||
target_include_directories(arch PRIVATE ${CMAKE_SOURCE_DIR}/sched)
|
||||
target_include_directories(arch PRIVATE ${NUTTX_DIR}/sched)
|
||||
|
||||
if(CONFIG_BUILD_PROTECTED)
|
||||
nuttx_add_system_library(arch_interface)
|
||||
file(TOUCH "${CMAKE_CURRENT_BINARY_DIR}/empty.c")
|
||||
target_sources(arch_interface PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/empty.c")
|
||||
target_include_directories(arch_interface PRIVATE ${CMAKE_SOURCE_DIR}/sched)
|
||||
target_include_directories(arch_interface PRIVATE ${NUTTX_DIR}/sched)
|
||||
endif()
|
||||
|
||||
# TODO: move this higher up ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
|
||||
|
||||
@@ -278,7 +278,7 @@ function(nuttx_generate_preprocess_target)
|
||||
COMMAND
|
||||
${PREPROCESS}
|
||||
$<GENEX_EVAL:$<TARGET_PROPERTY:nuttx_global,NUTTX_CPP_COMPILE_OPTIONS>>
|
||||
-I${CMAKE_BINARY_DIR}/include -filetype.cpp ${SOURCE_FILE} -o
|
||||
-I${NUTTX_BINARY_DIR}/include -filetype.cpp ${SOURCE_FILE} -o
|
||||
${EXPECT_TARGET_FILE_NAME}
|
||||
DEPENDS ${SOURCE_FILE} ${DEPENDS})
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ else()
|
||||
message(FATAL_ERROR "CMAKE_SYSTEM_PROCESSOR not set")
|
||||
endif()
|
||||
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${NUTTX_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
set(NUTTX_EXTRA_FLAGS "")
|
||||
|
||||
@@ -247,7 +247,7 @@ target_link_options(
|
||||
-Wl,--defsym=_sdata=__sram_image2_start__
|
||||
-Wl,--defsym=_edata=__sram_image2_start__
|
||||
-Wl,--defsym=_eronly=__sram_image2_start__
|
||||
-Wl,-Map=${CMAKE_BINARY_DIR}/nuttx.map
|
||||
-Wl,-Map=${NUTTX_BINARY_DIR}/nuttx.map
|
||||
${AMEBA_EXTRA_LINK_OPTIONS})
|
||||
|
||||
# Append to NUTTX_EXTRA_LIBRARIES (not target_link_libraries): the top-level
|
||||
@@ -267,19 +267,19 @@ if(EXISTS ${AMEBA_TOOLS_DIR}/ameba_package.sh)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "PACK nuttx.bin (Ameba AP + NP image2)")
|
||||
add_custom_command(
|
||||
TARGET nuttx_post_build
|
||||
POST_BUILD
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E env
|
||||
"AMEBA_FLASH_HINT=AMEBA_PORT=/dev/ttyUSB0 cmake --build ${CMAKE_BINARY_DIR} --target flash"
|
||||
"AMEBA_FLASH_HINT=AMEBA_PORT=/dev/ttyUSB0 cmake --build ${NUTTX_BINARY_DIR} --target flash"
|
||||
sh ${AMEBA_TOOLS_DIR}/ameba_package.sh ${AMEBA_SDK} ${AMEBA_PY_SOC}
|
||||
${AMEBA_SOC_NAME} ${AMEBA_PREBUILT} ${AMEBA_AP_PROJECT} ${AMEBA_KM_PROJ}
|
||||
${AMEBA_NP_TARGET} ${AMEBA_TOOLCHAIN_DIR} ${CMAKE_BINARY_DIR}/nuttx
|
||||
${CMAKE_BINARY_DIR}/nuttx.bin
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${AMEBA_NP_TARGET} ${AMEBA_TOOLCHAIN_DIR} ${NUTTX_BINARY_DIR}/nuttx
|
||||
${NUTTX_BINARY_DIR}/nuttx.bin
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
# USES_TERMINAL -> Ninja "console" pool: stream the (long) SDK NP-build +
|
||||
# packaging output live instead of buffering it until the step finishes.
|
||||
USES_TERMINAL COMMAND_EXPAND_LISTS)
|
||||
@@ -306,8 +306,8 @@ if(AMEBA_FLASH_PROFILE AND NOT TARGET flash)
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E env sh ${AMEBA_TOOLS_DIR}/ameba_flash.sh ${AMEBA_SDK}
|
||||
${AMEBA_FLASH_PROFILE} ${AMEBA_AUTOCONF} ${AMEBA_PREBUILT}
|
||||
${CMAKE_BINARY_DIR}/nuttx.bin
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.bin
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
USES_TERMINAL VERBATIM
|
||||
COMMENT "Flashing Ameba ${AMEBA_PY_SOC} over ${AMEBA_PORT} (AMEBA_PORT env)"
|
||||
)
|
||||
|
||||
@@ -162,7 +162,7 @@ if(CONFIG_NRF52_SOFTDEVICE_CONTROLLER)
|
||||
SOURCE_DIR
|
||||
${CMAKE_CURRENT_LIST_DIR}/sdk-nrfxlib
|
||||
BINARY_DIR
|
||||
${CMAKE_BINARY_DIR}/arch/sdk-nrfxlib
|
||||
${NUTTX_BINARY_DIR}/arch/sdk-nrfxlib
|
||||
CONFIGURE_COMMAND
|
||||
""
|
||||
BUILD_COMMAND
|
||||
|
||||
@@ -129,7 +129,7 @@ if(CONFIG_NRF53_SOFTDEVICE_CONTROLLER)
|
||||
SOURCE_DIR
|
||||
${CMAKE_CURRENT_LIST_DIR}/sdk-nrfxlib
|
||||
BINARY_DIR
|
||||
${CMAKE_BINARY_DIR}/arch/sdk-nrfxlib
|
||||
${NUTTX_BINARY_DIR}/arch/sdk-nrfxlib
|
||||
CONFIGURE_COMMAND
|
||||
""
|
||||
BUILD_COMMAND
|
||||
|
||||
@@ -102,7 +102,7 @@ if(CONFIG_NRF91_MODEM)
|
||||
SOURCE_DIR
|
||||
${CMAKE_CURRENT_LIST_DIR}/sdk-nrfxlib
|
||||
BINARY_DIR
|
||||
${CMAKE_BINARY_DIR}/arch/sdk-nrfxlib
|
||||
${NUTTX_BINARY_DIR}/arch/sdk-nrfxlib
|
||||
CONFIGURE_COMMAND
|
||||
""
|
||||
BUILD_COMMAND
|
||||
|
||||
@@ -107,7 +107,7 @@ if(CONFIG_RP2040_FLASH_BOOT)
|
||||
set(PICO_SDK_PATH $ENV{PICO_SDK_PATH})
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/boot2/rp2040_boot_stage2.cmake)
|
||||
|
||||
set(PATH_CHIP_RP2040 ${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src/chip)
|
||||
set(PATH_CHIP_RP2040 ${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src/chip)
|
||||
pico_define_boot_stage2(rp2040_boot_stage2 ${PATH_CHIP_RP2040})
|
||||
|
||||
if(EXISTS ${PATH_CHIP_RP2040}/rp2040_boot_stage2.S)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
# ##############################################################################
|
||||
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${NUTTX_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
set(CMAKE_C_FLAG_ARGS)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
# ##############################################################################
|
||||
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${NUTTX_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
set(NUTTX_EXTRA_FLAGS "")
|
||||
|
||||
@@ -312,7 +312,7 @@ ExternalProject_Add(
|
||||
|
||||
# Add bootloader files to clean list
|
||||
set_property(
|
||||
DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
DIRECTORY ${NUTTX_DIR}
|
||||
APPEND
|
||||
PROPERTY ADDITIONAL_CLEAN_FILES ${HALDIR} ${BOOTLOADER_SRCDIR}
|
||||
${BOOTLOADER_BIN})
|
||||
|
||||
@@ -254,7 +254,7 @@ option(
|
||||
|
||||
get_filename_component(
|
||||
ESP_HAL_3RDPARTY_CHIP_DIR
|
||||
"${CMAKE_BINARY_DIR}/arch/risc-v/src/common/espressif/${ESP_HAL_3RDPARTY_REPO_NAME}"
|
||||
"${NUTTX_BINARY_DIR}/arch/risc-v/src/common/espressif/${ESP_HAL_3RDPARTY_REPO_NAME}"
|
||||
REALPATH)
|
||||
|
||||
set(EXECUTE_CLONE_ESP_HAL_3RDPARTY_REPO TRUE)
|
||||
@@ -321,10 +321,10 @@ if(NOT IS_DIRECTORY "${ESP_HAL_3RDPARTY_REPO}")
|
||||
|
||||
# Copy gpio_sig_map.h and irq.h from the esp-hal-3rdparty repository to the NuttX directory
|
||||
file(COPY ${ESP_HAL_3RDPARTY_REPO}/components/soc/${CHIP_SERIES}/include/soc/gpio_sig_map.h
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/include/arch/chip/)
|
||||
DESTINATION ${NUTTX_BINARY_DIR}/include/arch/chip/)
|
||||
|
||||
file(COPY ${ESP_HAL_3RDPARTY_REPO}/nuttx/${CHIP_SERIES}/include/irq.h
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/include/arch/chip/)
|
||||
DESTINATION ${NUTTX_BINARY_DIR}/include/arch/chip/)
|
||||
|
||||
if(CONFIG_ESPRESSIF_WIRELESS)
|
||||
message(
|
||||
@@ -350,8 +350,8 @@ endif()
|
||||
|
||||
# This is done previously on configure time but must be done again if a 'clean'
|
||||
# is executed.
|
||||
set(_gpio_sig_map ${CMAKE_BINARY_DIR}/include/arch/chip/gpio_sig_map.h)
|
||||
set(_irq ${CMAKE_BINARY_DIR}/include/arch/chip/irq.h)
|
||||
set(_gpio_sig_map ${NUTTX_BINARY_DIR}/include/arch/chip/gpio_sig_map.h)
|
||||
set(_irq ${NUTTX_BINARY_DIR}/include/arch/chip/irq.h)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${_gpio_sig_map} ${_irq}
|
||||
@@ -446,10 +446,9 @@ add_custom_command(
|
||||
TARGET nuttx_post_build
|
||||
POST_BUILD
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -DBINARY_DIR=${CMAKE_BINARY_DIR}
|
||||
-DSOURCE_DIR=${CMAKE_SOURCE_DIR} -P
|
||||
${NUTTX_DIR}/tools/espressif/espressif_mkimage.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${CMAKE_COMMAND} -DBINARY_DIR=${NUTTX_BINARY_DIR} -DSOURCE_DIR=${NUTTX_DIR}
|
||||
-P ${NUTTX_DIR}/tools/espressif/espressif_mkimage.cmake
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Generating ESP-compatible binary"
|
||||
VERBATIM)
|
||||
|
||||
@@ -471,10 +470,10 @@ add_custom_target(
|
||||
flash
|
||||
DEPENDS nuttx_post_build
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -DBINARY_DIR=${CMAKE_BINARY_DIR}
|
||||
-DSOURCE_DIR=${CMAKE_SOURCE_DIR} -DNUTTX_DIR=${NUTTX_DIR} -P
|
||||
${CMAKE_COMMAND} -DBINARY_DIR=${NUTTX_BINARY_DIR} -DSOURCE_DIR=${NUTTX_DIR}
|
||||
-DNUTTX_DIR=${NUTTX_DIR} -P
|
||||
${NUTTX_DIR}/tools/espressif/espressif_flash.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Flashing firmware via esptool to $ENV{ESPTOOL_PORT}"
|
||||
VERBATIM)
|
||||
|
||||
@@ -497,6 +496,6 @@ if(CONFIG_ESPRESSIF_USE_LP_CORE)
|
||||
endif()
|
||||
|
||||
set_property(
|
||||
DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
DIRECTORY ${NUTTX_DIR}
|
||||
APPEND
|
||||
PROPERTY ADDITIONAL_CLEAN_FILES ${ESP_CLEAN_FILES})
|
||||
|
||||
@@ -66,7 +66,7 @@ if(CONFIG_ESPRESSIF_USE_LP_CORE)
|
||||
if(NOT ESP_HAL_3RDPARTY_REPO)
|
||||
get_filename_component(
|
||||
ESP_HAL_3RDPARTY_REPO
|
||||
"${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src/common/espressif/esp-hal-3rdparty"
|
||||
"${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src/common/espressif/esp-hal-3rdparty"
|
||||
REALPATH)
|
||||
endif()
|
||||
|
||||
@@ -367,7 +367,7 @@ if(CONFIG_ESPRESSIF_USE_LP_CORE)
|
||||
OUTPUT ${ULP_NUTTX_CONFIG_COPY}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ULP_FOLDER}/nuttx
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/include/nuttx/config.h
|
||||
${CMAKE_COMMAND} -E copy ${NUTTX_BINARY_DIR}/include/nuttx/config.h
|
||||
${ULP_NUTTX_CONFIG_COPY}
|
||||
DEPENDS nuttx_context ${ULP_VAR_MAP_HEADER}
|
||||
COMMENT "Copying nuttx/config.h for ULP build"
|
||||
@@ -512,7 +512,7 @@ if(CONFIG_ESPRESSIF_USE_LP_CORE)
|
||||
get_property(_esp_ulp_defer GLOBAL PROPERTY ESP_ULP_LINK_DEFER_REGISTERED)
|
||||
if(NOT _esp_ulp_defer)
|
||||
set_property(GLOBAL PROPERTY ESP_ULP_LINK_DEFER_REGISTERED TRUE)
|
||||
cmake_language(DEFER DIRECTORY ${CMAKE_SOURCE_DIR} CALL
|
||||
cmake_language(DEFER DIRECTORY ${NUTTX_DIR} CALL
|
||||
_esp_ulp_add_nuttx_link_deps)
|
||||
endif()
|
||||
|
||||
@@ -521,7 +521,7 @@ if(CONFIG_ESPRESSIF_USE_LP_CORE)
|
||||
# ############################################################################
|
||||
|
||||
set_property(
|
||||
DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
DIRECTORY ${NUTTX_DIR}
|
||||
APPEND
|
||||
PROPERTY ADDITIONAL_CLEAN_FILES ${ULP_FOLDER} ${ULP_ARCH_FOLDER}
|
||||
${ULP_ALIASES_LD} ${ULP_ARCH_FOLDER}/.ulp_shared_stubs_stamp)
|
||||
|
||||
@@ -591,7 +591,7 @@ function(nuttx_generate_preprocess_target)
|
||||
add_custom_command(
|
||||
OUTPUT ${TARGET_FILE}
|
||||
COMMAND
|
||||
${PREPROCESS} -I${CMAKE_BINARY_DIR}/include -I${NUTTX_DIR}/include
|
||||
${PREPROCESS} -I${NUTTX_BINARY_DIR}/include -I${NUTTX_DIR}/include
|
||||
-I${NUTTX_CHIP_ABS_DIR} ${LD_SCRIPT_HAL_INCLUDE}
|
||||
${LD_SCRIPT_ADDITIONAL_INCLUDE} -D__NuttX__ ${SOURCE_FILE} >
|
||||
${TARGET_FILE}
|
||||
|
||||
@@ -595,7 +595,7 @@ function(nuttx_generate_preprocess_target)
|
||||
add_custom_command(
|
||||
OUTPUT ${TARGET_FILE}
|
||||
COMMAND
|
||||
${PREPROCESS} -I${CMAKE_BINARY_DIR}/include -I${NUTTX_DIR}/include
|
||||
${PREPROCESS} -I${NUTTX_BINARY_DIR}/include -I${NUTTX_DIR}/include
|
||||
-I${NUTTX_CHIP_ABS_DIR} ${LD_SCRIPT_HAL_INCLUDE}
|
||||
${LD_SCRIPT_ADDITIONAL_INCLUDE} -D__NuttX__ ${SOURCE_FILE} >
|
||||
${TARGET_FILE}
|
||||
|
||||
@@ -312,7 +312,7 @@ list(APPEND HOSTSRCS sim_errno.c)
|
||||
|
||||
configure_file(${NUTTX_DIR}/include/nuttx/fs/hostfs.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/hostfs.h COPYONLY)
|
||||
configure_file(${CMAKE_BINARY_DIR}/include/nuttx/config.h
|
||||
configure_file(${NUTTX_BINARY_DIR}/include/nuttx/config.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY)
|
||||
target_include_directories(nuttx PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
# ##############################################################################
|
||||
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${NUTTX_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
set(NUTTX_EXTRA_FLAGS "")
|
||||
|
||||
@@ -76,5 +76,5 @@ target_sources(nuttx PRIVATE tricore_doirq.c)
|
||||
target_compile_options(arch PRIVATE ${IFXFLAGS})
|
||||
target_compile_options(nuttx PRIVATE ${IFXFLAGS})
|
||||
target_include_directories(
|
||||
nuttx SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include
|
||||
${CMAKE_BINARY_DIR}/include_arch)
|
||||
nuttx SYSTEM PRIVATE ${NUTTX_DIR}/include ${NUTTX_BINARY_DIR}/include
|
||||
${NUTTX_BINARY_DIR}/include_arch)
|
||||
|
||||
@@ -29,7 +29,7 @@ if(CONFIG_TRICORE_TOOLCHAIN_TASKING)
|
||||
target_sources(c_fpu PRIVATE tc3xx_libc.c)
|
||||
target_link_options(
|
||||
nuttx PRIVATE
|
||||
--library-directory=${CMAKE_BINARY_DIR}/arch/tricore/src/exclude_chip)
|
||||
--library-directory=${NUTTX_BINARY_DIR}/arch/tricore/src/exclude_chip)
|
||||
endif()
|
||||
|
||||
set(ILLD_UNPACK "${CMAKE_CURRENT_SOURCE_DIR}/../illd/tc3xx")
|
||||
@@ -75,8 +75,8 @@ file(GLOB PATCH_FILES "${PATCHES_DIR}/*.patch")
|
||||
foreach(PATCH ${PATCH_FILES})
|
||||
execute_process(
|
||||
COMMAND git apply --reverse --check ${PATCH}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
WORKING_DIRECTORY ${NUTTX_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
RESULT_VARIABLE PATCH_NEEDED
|
||||
OUTPUT_QUIET ERROR_QUIET)
|
||||
|
||||
@@ -85,8 +85,8 @@ foreach(PATCH ${PATCH_FILES})
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND git apply --whitespace=nowarn ${PATCH}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
WORKING_DIRECTORY ${NUTTX_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
RESULT_VARIABLE APPLY_RESULT)
|
||||
if(NOT APPLY_RESULT EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to apply patch ${PATCH}!")
|
||||
|
||||
@@ -29,7 +29,7 @@ if(CONFIG_TRICORE_TOOLCHAIN_TASKING)
|
||||
target_sources(c_fpu PRIVATE tc4xx_libc.c)
|
||||
target_link_options(
|
||||
nuttx PRIVATE
|
||||
--library-directory=${CMAKE_BINARY_DIR}/arch/tricore/src/exclude_chip)
|
||||
--library-directory=${NUTTX_BINARY_DIR}/arch/tricore/src/exclude_chip)
|
||||
endif()
|
||||
|
||||
set(ILLD_UNPACK "${CMAKE_CURRENT_SOURCE_DIR}/../illd/tc4xx")
|
||||
@@ -75,8 +75,8 @@ file(GLOB PATCH_FILES "${PATCHES_DIR}/*.patch")
|
||||
foreach(PATCH ${PATCH_FILES})
|
||||
execute_process(
|
||||
COMMAND git apply --reverse --check ${PATCH}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
WORKING_DIRECTORY ${NUTTX_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
RESULT_VARIABLE PATCH_NEEDED
|
||||
OUTPUT_QUIET ERROR_QUIET)
|
||||
|
||||
@@ -85,8 +85,8 @@ foreach(PATCH ${PATCH_FILES})
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND git apply --whitespace=nowarn ${PATCH}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
WORKING_DIRECTORY ${NUTTX_DIR} # Patches are applied from the repo
|
||||
# root
|
||||
RESULT_VARIABLE APPLY_RESULT)
|
||||
if(NOT APPLY_RESULT EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to apply patch ${PATCH}!")
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
# ##############################################################################
|
||||
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${NUTTX_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
set(NUTTX_EXTRA_FLAGS "")
|
||||
@@ -68,11 +68,11 @@ set(PREPROCESS ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} -E -P -x c)
|
||||
if(CONFIG_ARCH_MULTIBOOT1)
|
||||
message(STATUS "Generating: nuttx.mb1 in ELF32/multiboot1")
|
||||
if(CONFIG_ALLSYMS)
|
||||
set(FINAL_NUTTX_ELF "${CMAKE_BINARY_DIR}/final_nuttx")
|
||||
set(FINAL_NUTTX_ELF "${NUTTX_BINARY_DIR}/final_nuttx")
|
||||
else()
|
||||
set(FINAL_NUTTX_ELF "${CMAKE_BINARY_DIR}/nuttx")
|
||||
set(FINAL_NUTTX_ELF "${NUTTX_BINARY_DIR}/nuttx")
|
||||
endif()
|
||||
set(NUTTX_ELF "${CMAKE_BINARY_DIR}/nuttx")
|
||||
set(NUTTX_ELF "${NUTTX_BINARY_DIR}/nuttx")
|
||||
set(NUTTX_BIN "${NUTTX_ELF}.bin")
|
||||
set(NUTTX_REALMODE_BIN "${NUTTX_ELF}_realmode.bin")
|
||||
set(NUTTX_MB1 "${NUTTX_ELF}.mb1")
|
||||
@@ -89,8 +89,8 @@ if(CONFIG_ARCH_MULTIBOOT1)
|
||||
COMMAND
|
||||
${CMAKE_C_COMPILER} -m32 -no-pie -nostdlib -DNUTTX_BIN='"${NUTTX_BIN}"'
|
||||
-DNUTTX_REALMODE_BIN='"${NUTTX_REALMODE_BIN}"'
|
||||
${CMAKE_SOURCE_DIR}/arch/x86_64/src/common/multiboot1.S -T
|
||||
${CMAKE_SOURCE_DIR}/arch/x86_64/src/common/multiboot1.ld -o ${NUTTX_MB1}
|
||||
${NUTTX_DIR}/arch/x86_64/src/common/multiboot1.S -T
|
||||
${NUTTX_DIR}/arch/x86_64/src/common/multiboot1.ld -o ${NUTTX_MB1}
|
||||
DEPENDS ${NUTTX_BIN} ${NUTTX_REALMODE_BIN}
|
||||
COMMENT "Building nuttx.mb1 multiboot1 image")
|
||||
add_custom_target(multiboot1 ALL DEPENDS ${NUTTX_MB1})
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
# the License.
|
||||
#
|
||||
# ##############################################################################
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${NUTTX_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
set(NUTTX_EXTRA_FLAGS "")
|
||||
|
||||
@@ -69,4 +69,4 @@ endif()
|
||||
|
||||
target_sources(binfmt PRIVATE ${SRCS})
|
||||
target_include_directories(binfmt PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_include_directories(binfmt PRIVATE ${CMAKE_SOURCE_DIR}/sched)
|
||||
target_include_directories(binfmt PRIVATE ${NUTTX_DIR}/sched)
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
# ifeq ($(CUSTOM_KCONFIG),y) BOARD_KCONFIG = $(CUSTOM_KPATH) else BOARD_KCONFIG
|
||||
# = $(TOPDIR)$(DELIM)configs$(DELIM)dummy$(DELIM)dummy_kconfig endif
|
||||
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/dummy.c "")
|
||||
nuttx_add_kernel_library(board ${CMAKE_BINARY_DIR}/dummy.c)
|
||||
file(WRITE ${NUTTX_BINARY_DIR}/dummy.c "")
|
||||
nuttx_add_kernel_library(board ${NUTTX_BINARY_DIR}/dummy.c)
|
||||
|
||||
# boardctl support
|
||||
|
||||
@@ -54,9 +54,9 @@ if(EXISTS ${NUTTX_BOARD_ABS_DIR}/../common/CMakeLists.txt)
|
||||
|
||||
# Create link ARCH_SRC_BOARD_BOARD_SYMLINK
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src/board)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src/board)
|
||||
nuttx_create_symlink(${NUTTX_BOARD_ABS_DIR}/src
|
||||
${CMAKE_BINARY_DIR}/arch/${CONFIG_ARCH}/src/board/board)
|
||||
${NUTTX_BINARY_DIR}/arch/${CONFIG_ARCH}/src/board/board)
|
||||
endif()
|
||||
|
||||
if(EXISTS ${NUTTX_BOARD_ABS_DIR}/../drivers/CMakeLists.txt)
|
||||
|
||||
@@ -31,9 +31,9 @@ endif()
|
||||
|
||||
ExternalProject_Add(
|
||||
nuttx_post_build
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/tools/cxd56
|
||||
INSTALL_DIR ${CMAKE_BINARY_DIR}/tools/cxd56
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
|
||||
SOURCE_DIR ${NUTTX_DIR}/tools/cxd56
|
||||
INSTALL_DIR ${NUTTX_BINARY_DIR}/tools/cxd56
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${NUTTX_BINARY_DIR}
|
||||
USES_TERMINAL_CONFIGURE true
|
||||
USES_TERMINAL_BUILD true
|
||||
USES_TERMINAL_INSTALL true
|
||||
@@ -43,5 +43,5 @@ add_custom_command(
|
||||
TARGET nuttx_post_build
|
||||
POST_BUILD
|
||||
BYPRODUCTS nuttx.spk
|
||||
COMMAND ${CMAKE_BINARY_DIR}/bin/mkspk -c2 nuttx nuttx nuttx.spk
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
COMMAND ${NUTTX_BINARY_DIR}/bin/mkspk -c2 nuttx nuttx nuttx.spk
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR})
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
set(SRCS canmv_init.c)
|
||||
|
||||
if(CONFIG_BUILD_KERNEL)
|
||||
if(EXISTS ${CMAKE_BINARY_DIR}/romfs_boot.c)
|
||||
list(APPEND SRCS ${CMAKE_BINARY_DIR}/romfs_boot.c)
|
||||
if(EXISTS ${NUTTX_BINARY_DIR}/romfs_boot.c)
|
||||
list(APPEND SRCS ${NUTTX_BINARY_DIR}/romfs_boot.c)
|
||||
else()
|
||||
list(APPEND SRCS romfs_stub.c)
|
||||
endif()
|
||||
|
||||
@@ -25,7 +25,7 @@ add_subdirectory(src)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
# The uf2 command to convert ELF/BIN to UF2
|
||||
@@ -35,6 +35,6 @@ add_custom_command(
|
||||
COMMAND picotool ARGS uf2 convert --quiet -t elf nuttx nuttx.uf2
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "nuttx.uf2" >>
|
||||
${CMAKE_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
${NUTTX_BINARY_DIR}/nuttx.manifest
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMENT "Regenerate nuttx.uf2")
|
||||
|
||||
@@ -26,7 +26,7 @@ if(CONFIG_HOST_LINUX)
|
||||
add_custom_target(
|
||||
nuttx_post_build
|
||||
DEPENDS nuttx
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${NUTTX_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory sim-pac
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory sim-pac/libs
|
||||
COMMAND ${CMAKE_COMMAND} -E copy nuttx sim-pac/nuttx
|
||||
@@ -34,8 +34,7 @@ if(CONFIG_HOST_LINUX)
|
||||
'{}' cp -v '{}' sim-pac/libs
|
||||
COMMAND readelf -l nuttx | grep "program interpreter" | awk -F':' '{print
|
||||
$$2}' | cut -d"]" -f1 | xargs -I '{}' cp -v '{}' sim-pac
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tools/simlaunch.sh
|
||||
sim-pac
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_DIR}/tools/simlaunch.sh sim-pac
|
||||
COMMAND tar -czf nuttx.tgz sim-pac
|
||||
COMMENT "Pac SIM with dynamic libs in nuttx.tgz")
|
||||
endif()
|
||||
|
||||
@@ -35,7 +35,7 @@ if(CONFIG_BUILD_KERNEL)
|
||||
# depend on (cycle).
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/romfs_boot.c
|
||||
COMMAND genromfs -f romfs.img -d ${CMAKE_BINARY_DIR}/bin -V NuttXBootVol
|
||||
COMMAND genromfs -f romfs.img -d ${NUTTX_BINARY_DIR}/bin -V NuttXBootVol
|
||||
COMMAND xxd -i romfs.img romfs_boot.c
|
||||
DEPENDS $<TARGET_PROPERTY:nuttx,NUTTX_LOADABLE_APPS>
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
+27
-28
@@ -24,9 +24,9 @@
|
||||
# changes)
|
||||
|
||||
set(KCONFIG_ENV
|
||||
"KCONFIG_CONFIG=${CMAKE_BINARY_DIR}/.config" "EXTERNALDIR=dummy"
|
||||
"KCONFIG_CONFIG=${NUTTX_BINARY_DIR}/.config" "EXTERNALDIR=dummy"
|
||||
"APPSDIR=${NUTTX_APPS_DIR}" "DRIVERS_PLATFORM_DIR=dummy"
|
||||
"APPSBINDIR=${NUTTX_APPS_BINDIR}" "BINDIR=${CMAKE_BINARY_DIR}")
|
||||
"APPSBINDIR=${NUTTX_APPS_BINDIR}" "BINDIR=${NUTTX_BINARY_DIR}")
|
||||
|
||||
# Use qconfig instead of menuconfig since PowerShell not support curses
|
||||
# redirection
|
||||
@@ -41,7 +41,7 @@ add_custom_target(
|
||||
menuconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} ${MENUCONFIG}
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f
|
||||
${CMAKE_BINARY_DIR}/include/nuttx/config.h # invalidate existing
|
||||
${NUTTX_BINARY_DIR}/include/nuttx/config.h # invalidate existing
|
||||
# config
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_PARENT_LIST_FILE}
|
||||
WORKING_DIRECTORY ${NUTTX_DIR}
|
||||
@@ -53,20 +53,20 @@ add_custom_target(
|
||||
qconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} guiconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f
|
||||
${CMAKE_BINARY_DIR}/include/nuttx/config.h # invalidate existing
|
||||
${NUTTX_BINARY_DIR}/include/nuttx/config.h # invalidate existing
|
||||
# config
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_PARENT_LIST_FILE}
|
||||
WORKING_DIRECTORY ${NUTTX_DIR}
|
||||
USES_TERMINAL)
|
||||
|
||||
# Refresh ${CMAKE_BINARY_DIR}/.config in place (set defaults, satisfy deps),
|
||||
# Refresh ${NUTTX_BINARY_DIR}/.config in place (set defaults, satisfy deps),
|
||||
# like "make olddefconfig". Use after hand-editing .config; does not copy from
|
||||
# board defconfig (see resetconfig for that).
|
||||
add_custom_target(
|
||||
olddefconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} olddefconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f
|
||||
${CMAKE_BINARY_DIR}/include/nuttx/config.h
|
||||
${NUTTX_BINARY_DIR}/include/nuttx/config.h
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_PARENT_LIST_FILE}
|
||||
WORKING_DIRECTORY ${NUTTX_DIR})
|
||||
|
||||
@@ -74,10 +74,10 @@ add_custom_target(
|
||||
add_custom_target(
|
||||
resetconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_DEFCONFIG}
|
||||
${CMAKE_BINARY_DIR}/.config
|
||||
${NUTTX_BINARY_DIR}/.config
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} olddefconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/.config
|
||||
${CMAKE_BINARY_DIR}/.config.orig
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_BINARY_DIR}/.config
|
||||
${NUTTX_BINARY_DIR}/.config.orig
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_PARENT_LIST_FILE}
|
||||
WORKING_DIRECTORY ${NUTTX_DIR})
|
||||
|
||||
@@ -88,26 +88,26 @@ add_custom_target(
|
||||
add_custom_target(
|
||||
distcleanconfig
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E remove -f ${CMAKE_BINARY_DIR}/.config
|
||||
${CMAKE_BINARY_DIR}/.config.orig ${CMAKE_BINARY_DIR}/.config.prev
|
||||
${CMAKE_BINARY_DIR}/include/nuttx/config.h
|
||||
${CMAKE_COMMAND} -E remove -f ${NUTTX_BINARY_DIR}/.config
|
||||
${NUTTX_BINARY_DIR}/.config.orig ${NUTTX_BINARY_DIR}/.config.prev
|
||||
${NUTTX_BINARY_DIR}/include/nuttx/config.h
|
||||
WORKING_DIRECTORY ${NUTTX_DIR})
|
||||
|
||||
# utility target to refresh .config from board's defconfig for GITHUB
|
||||
add_custom_target(
|
||||
refreshsilent
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_BINARY_DIR}/SAVEconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/.config
|
||||
${CMAKE_BINARY_DIR}/SAVEconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_BINARY_DIR}/.config
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f ${NUTTX_BINARY_DIR}/SAVEconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_BINARY_DIR}/.config
|
||||
${NUTTX_BINARY_DIR}/SAVEconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f ${NUTTX_BINARY_DIR}/.config
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_DEFCONFIG}
|
||||
${CMAKE_BINARY_DIR}/.config
|
||||
${NUTTX_BINARY_DIR}/.config
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} olddefconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} savedefconfig --out
|
||||
${CMAKE_BINARY_DIR}/defconfig.tmp
|
||||
${NUTTX_BINARY_DIR}/defconfig.tmp
|
||||
COMMAND ${CMAKE_COMMAND} -P ${NUTTX_DIR}/cmake/savedefconfig.cmake
|
||||
${CMAKE_BINARY_DIR}/.config ${CMAKE_BINARY_DIR}/defconfig.tmp
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/defconfig
|
||||
${NUTTX_BINARY_DIR}/.config ${NUTTX_BINARY_DIR}/defconfig.tmp
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${NUTTX_BINARY_DIR}/defconfig
|
||||
${NUTTX_DEFCONFIG}
|
||||
WORKING_DIRECTORY ${NUTTX_DIR})
|
||||
|
||||
@@ -115,16 +115,15 @@ add_custom_target(
|
||||
add_custom_target(
|
||||
savedefconfig
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${KCONFIG_ENV} savedefconfig --out
|
||||
${CMAKE_BINARY_DIR}/defconfig.tmp
|
||||
${NUTTX_BINARY_DIR}/defconfig.tmp
|
||||
COMMAND ${CMAKE_COMMAND} -P ${NUTTX_DIR}/cmake/savedefconfig.cmake
|
||||
${CMAKE_BINARY_DIR}/.config ${CMAKE_BINARY_DIR}/defconfig.tmp
|
||||
${NUTTX_BINARY_DIR}/.config ${NUTTX_BINARY_DIR}/defconfig.tmp
|
||||
COMMAND
|
||||
${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/process_config.py
|
||||
postprocess ${CMAKE_BINARY_DIR}/config_tree.json
|
||||
${CMAKE_BINARY_DIR}/defconfig.orig ${CMAKE_BINARY_DIR}/defconfig
|
||||
${CMAKE_BINARY_DIR}/defconfig.post
|
||||
${Python3_EXECUTABLE} ${NUTTX_DIR}/tools/process_config.py postprocess
|
||||
${NUTTX_BINARY_DIR}/config_tree.json ${NUTTX_BINARY_DIR}/defconfig.orig
|
||||
${NUTTX_BINARY_DIR}/defconfig ${NUTTX_BINARY_DIR}/defconfig.post
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
${CMAKE_BINARY_DIR}/defconfig.post ${NUTTX_DEFCONFIG}
|
||||
${NUTTX_BINARY_DIR}/defconfig.post ${NUTTX_DEFCONFIG}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
${CMAKE_BINARY_DIR}/defconfig.post ${NUTTX_ORIG_DEFCONFIG}
|
||||
${NUTTX_BINARY_DIR}/defconfig.post ${NUTTX_ORIG_DEFCONFIG}
|
||||
WORKING_DIRECTORY ${NUTTX_DIR})
|
||||
|
||||
@@ -30,12 +30,12 @@ define_property(
|
||||
|
||||
# Create a directories for the application binaries `bin` for stripped binaries
|
||||
# `bin_debug` for debug binaries
|
||||
if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin)
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
if(NOT EXISTS ${NUTTX_BINARY_DIR}/bin)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/bin)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin_debug)
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin_debug)
|
||||
if(NOT EXISTS ${NUTTX_BINARY_DIR}/bin_debug)
|
||||
file(MAKE_DIRECTORY ${NUTTX_BINARY_DIR}/bin_debug)
|
||||
endif()
|
||||
|
||||
# ~~~
|
||||
@@ -176,7 +176,7 @@ function(nuttx_add_application)
|
||||
POST_BUILD
|
||||
COMMAND
|
||||
# add default link option
|
||||
${CMAKE_LD} -T ${CMAKE_BINARY_DIR}/gnu-elf.ld
|
||||
${CMAKE_LD} -T ${NUTTX_BINARY_DIR}/gnu-elf.ld
|
||||
# add global MOD link option if dynlib link
|
||||
$<$<BOOL:${DYNLIB_ELF_MODE}>:$<TARGET_PROPERTY:nuttx_global,NUTTX_MOD_APP_LINK_OPTIONS>>
|
||||
# add global ELF link option if m&kernel link
|
||||
@@ -195,19 +195,19 @@ function(nuttx_add_application)
|
||||
$<TARGET_FILE:${TARGET}>
|
||||
$<$<NOT:$<BOOL:${USE_LINKER}>>:-Wl,>--no-whole-archive
|
||||
$<$<NOT:$<BOOL:${USE_LINKER}>>:-Wl,>--end-group -o
|
||||
${CMAKE_BINARY_DIR}/bin_debug/${ELF_NAME}
|
||||
${NUTTX_BINARY_DIR}/bin_debug/${ELF_NAME}
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/bin_debug/${ELF_NAME}
|
||||
${CMAKE_BINARY_DIR}/bin/${ELF_NAME}
|
||||
${CMAKE_COMMAND} -E copy ${NUTTX_BINARY_DIR}/bin_debug/${ELF_NAME}
|
||||
${NUTTX_BINARY_DIR}/bin/${ELF_NAME}
|
||||
# keep the application attribute symbols through strip so the binary
|
||||
# loader can still read them, see NX_KEEP in Application.mk
|
||||
COMMAND
|
||||
${CMAKE_STRIP} -K nx_stacksize -K nx_priority -K nx_uid -K nx_gid -K
|
||||
nx_mode ${CMAKE_BINARY_DIR}/bin/${ELF_NAME}
|
||||
nx_mode ${NUTTX_BINARY_DIR}/bin/${ELF_NAME}
|
||||
# match the Application.mk install rule: ld -r output is not marked
|
||||
# executable, but filesystem images built from bin/ must carry the
|
||||
# execute permission
|
||||
COMMAND chmod +x ${CMAKE_BINARY_DIR}/bin/${ELF_NAME}
|
||||
COMMAND chmod +x ${NUTTX_BINARY_DIR}/bin/${ELF_NAME}
|
||||
COMMENT "Building ELF:${ELF_NAME}"
|
||||
COMMAND_EXPAND_LISTS)
|
||||
else()
|
||||
|
||||
@@ -37,8 +37,7 @@ function(nuttx_add_library_internal target)
|
||||
|
||||
# add main include directories
|
||||
target_include_directories(
|
||||
${target} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/include
|
||||
${CMAKE_BINARY_DIR}/include)
|
||||
${target} SYSTEM PRIVATE ${NUTTX_DIR}/include ${NUTTX_BINARY_DIR}/include)
|
||||
|
||||
# Set global compile options & definitions We use the "nuttx" target to hold
|
||||
# these properties so that libraries added after this property is set can read
|
||||
|
||||
@@ -235,7 +235,7 @@ function(nuttx_add_cromfs)
|
||||
copy_directory ${PATH} cromfs_${NAME} \; fi
|
||||
COMMAND if \[ \"${FILES}\" != \"\" \]; then ${CMAKE_COMMAND} -E copy
|
||||
${FILES} cromfs_${NAME} \; fi
|
||||
COMMAND ${CMAKE_BINARY_DIR}/bin_host/gencromfs cromfs_${NAME}
|
||||
COMMAND ${NUTTX_BINARY_DIR}/bin_host/gencromfs cromfs_${NAME}
|
||||
cromfs_${NAME}.c
|
||||
DEPENDS ${DEPENDS})
|
||||
|
||||
@@ -353,12 +353,12 @@ function(process_all_directory_romfs)
|
||||
# Build mkpasswd.c as a host binary in the CMake build directory and keep
|
||||
# the source tree clean.
|
||||
set(MKPASSWD_SRC ${NUTTX_DIR}/tools/mkpasswd.c)
|
||||
set(MKPASSWD_BIN ${CMAKE_BINARY_DIR}/tools/mkpasswd${HOST_EXE_SUFFIX})
|
||||
set(MKPASSWD_BIN ${NUTTX_BINARY_DIR}/tools/mkpasswd${HOST_EXE_SUFFIX})
|
||||
|
||||
if(NOT TARGET build_host_mkpasswd)
|
||||
add_custom_command(
|
||||
OUTPUT ${MKPASSWD_BIN}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/tools
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${NUTTX_BINARY_DIR}/tools
|
||||
COMMAND ${HOST_CC} -o ${MKPASSWD_BIN} ${MKPASSWD_SRC}
|
||||
DEPENDS ${MKPASSWD_SRC}
|
||||
COMMENT "Building host tool: mkpasswd")
|
||||
|
||||
@@ -87,7 +87,7 @@ function(nuttx_add_symtab)
|
||||
DEPENDS symtab_${NAME}_dat)
|
||||
|
||||
# generate code which instantiates the symbol table
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/symtab.c.in symtab_${NAME}.c @ONLY)
|
||||
configure_file(${NUTTX_DIR}/cmake/symtab.c.in symtab_${NAME}.c @ONLY)
|
||||
|
||||
# define an internal library to build the symtab file on its own
|
||||
add_library(symtab_${NAME} OBJECT
|
||||
|
||||
@@ -111,7 +111,7 @@ function(nuttx_export_header)
|
||||
${ARGN})
|
||||
|
||||
# destination directory to be exported by install
|
||||
set(EXPORT_PATH_PREFIX ${CMAKE_BINARY_DIR}/staging/include/${TARGET})
|
||||
set(EXPORT_PATH_PREFIX ${NUTTX_BINARY_DIR}/staging/include/${TARGET})
|
||||
# destination directory origin compile
|
||||
set(INCLUDE_PATH_PREFIX ${NUTTX_APPS_BINDIR}/include/${TARGET})
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user