forked from Archive/PX4-Autopilot
Merge branch 'cmake-2' of github.com:PX4/Firmware into cmake-2-pthread
This commit is contained in:
commit
78f698a642
|
@ -277,10 +277,12 @@ foreach(module ${config_module_list})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
add_subdirectory(src/firmware/${OS})
|
add_subdirectory(src/firmware/${OS})
|
||||||
|
|
||||||
if (config_io_board)
|
if (config_io_board)
|
||||||
add_subdirectory(src/modules/px4iofirmware)
|
add_subdirectory(src/modules/px4iofirmware)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# generate git version
|
# generate git version
|
||||||
#
|
#
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -110,7 +110,7 @@ clean:
|
||||||
rm -rf build_*/
|
rm -rf build_*/
|
||||||
|
|
||||||
# targets handled by cmake
|
# targets handled by cmake
|
||||||
cmake_targets = test upload package package_source debug check_weak
|
cmake_targets = test upload package package_source debug debug_io check_weak
|
||||||
$(foreach targ,$(cmake_targets),$(eval $(call cmake-targ,$(targ))))
|
$(foreach targ,$(cmake_targets),$(eval $(call cmake-targ,$(targ))))
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
|
@ -551,7 +551,7 @@ function(px4_add_common_flags)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(c_compile_flags
|
set(c_compile_flags
|
||||||
-g3
|
-g
|
||||||
-std=gnu99
|
-std=gnu99
|
||||||
-fno-common
|
-fno-common
|
||||||
)
|
)
|
||||||
|
@ -560,7 +560,7 @@ function(px4_add_common_flags)
|
||||||
-Wno-missing-field-initializers
|
-Wno-missing-field-initializers
|
||||||
)
|
)
|
||||||
set(cxx_compile_flags
|
set(cxx_compile_flags
|
||||||
-g3
|
-g
|
||||||
-fno-exceptions
|
-fno-exceptions
|
||||||
-fno-rtti
|
-fno-rtti
|
||||||
-std=gnu++0x
|
-std=gnu++0x
|
||||||
|
@ -735,4 +735,54 @@ function(px4_generate_parameters)
|
||||||
set(${OUT} ${generated_files} PARENT_SCOPE)
|
set(${OUT} ${generated_files} PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
#
|
||||||
|
# px4_copy_tracked
|
||||||
|
#
|
||||||
|
# Copy files to a directory and keep track of dependencies.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# px4_copy_tracked(OUT <dest-files> FILES <in-files> DIR <dir-name>)
|
||||||
|
#
|
||||||
|
# Input:
|
||||||
|
# FILES : the source files
|
||||||
|
# DEST : the directory to copy files to
|
||||||
|
# RELATIVE : relative directory for source files
|
||||||
|
#
|
||||||
|
# Output:
|
||||||
|
# OUT : the copied files
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# px4_copy_tracked(OUT copied_files FILES src_files DEST path RELATIVE path_rel)
|
||||||
|
#
|
||||||
|
function(px4_copy_tracked)
|
||||||
|
px4_parse_function_args(
|
||||||
|
NAME px4_copy_tracked
|
||||||
|
ONE_VALUE DEST OUT RELATIVE
|
||||||
|
MULTI_VALUE FILES
|
||||||
|
REQUIRED DEST OUT FILES
|
||||||
|
ARGN ${ARGN})
|
||||||
|
set(files)
|
||||||
|
# before build, make sure dest directory exists
|
||||||
|
execute_process(
|
||||||
|
COMMAND cmake -E make_directory ${DEST})
|
||||||
|
# create rule to copy each file and set dependency as source file
|
||||||
|
set(_files_out)
|
||||||
|
foreach(_file ${FILES})
|
||||||
|
if (RELATIVE)
|
||||||
|
file(RELATIVE_PATH _file_path ${RELATIVE} ${_file})
|
||||||
|
else()
|
||||||
|
set(_file_path ${_file})
|
||||||
|
endif()
|
||||||
|
set(_dest_file ${DEST}/${_file_path})
|
||||||
|
#message(STATUS "copy ${_file} -> ${_dest_file}")
|
||||||
|
add_custom_command(OUTPUT ${_dest_file}
|
||||||
|
COMMAND cmake -E copy ${_file} ${_dest_file}
|
||||||
|
DEPENDS ${_file})
|
||||||
|
list(APPEND _files_out ${_dest_file})
|
||||||
|
endforeach()
|
||||||
|
set(${OUT} ${_files_out} PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# vim: set noet fenc=utf-8 ff=unix nowrap:
|
# vim: set noet fenc=utf-8 ff=unix nowrap:
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
# * px4_nuttx_add_firmware
|
# * px4_nuttx_add_firmware
|
||||||
# * px4_nuttx_generate_builtin_commands
|
# * px4_nuttx_generate_builtin_commands
|
||||||
# * px4_nuttx_add_export
|
# * px4_nuttx_add_export
|
||||||
# * px4_nuttx_generate_romfs
|
# * px4_nuttx_add_romfs
|
||||||
#
|
#
|
||||||
# Required OS Inteface Functions
|
# Required OS Inteface Functions
|
||||||
#
|
#
|
||||||
|
@ -260,61 +260,106 @@ endfunction()
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
#
|
#
|
||||||
# px4_nuttx_generate_romfs
|
# px4_nuttx_create_bin
|
||||||
#
|
#
|
||||||
# The functions generates the ROMFS filesystem for nuttx.
|
# The functions generates a bin image for nuttx.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# px4_nuttx_generate_romfs(OUT <out-target> ROOT <in-directory>)
|
# px4_nuttx_create_bin(BIN <out-file> EXE <in-file>)
|
||||||
|
#
|
||||||
|
# Input:
|
||||||
|
# EXE : the exe file
|
||||||
|
#
|
||||||
|
# Output:
|
||||||
|
# OUT : the binary output file
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# px4_nuttx_create_bin(OUT my_exe.bin EXE my_exe)
|
||||||
|
#
|
||||||
|
function(px4_nuttx_create_bin)
|
||||||
|
|
||||||
|
px4_parse_function_args(
|
||||||
|
NAME px4_nuttx_create_bin
|
||||||
|
ONE_VALUE EXE OUT
|
||||||
|
REQUIRED EXE OUT
|
||||||
|
ARGN ${ARGN})
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${OUT}
|
||||||
|
COMMAND ${OBJCOPY} -O binary ${EXE} ${EXE}.bin
|
||||||
|
DEPENDS ${EXE})
|
||||||
|
|
||||||
|
set(${OUT} ${${OUT}} PARENT_SCOPE)
|
||||||
|
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
#
|
||||||
|
# px4_nuttx_add_romfs
|
||||||
|
#
|
||||||
|
# The functions creates a ROMFS filesystem for nuttx.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# px4_nuttx_add_romfs(
|
||||||
|
# OUT <out-target>
|
||||||
|
# ROOT <in-directory>
|
||||||
|
# EXTRAS <in-list>)
|
||||||
#
|
#
|
||||||
# Input:
|
# Input:
|
||||||
# ROOT : the root of the ROMFS
|
# ROOT : the root of the ROMFS
|
||||||
|
# EXTRAS : list of extra files
|
||||||
#
|
#
|
||||||
# Output:
|
# Output:
|
||||||
# OUT : the generated ROMFS
|
# OUT : the ROMFS library target
|
||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
# px4_nuttx_generate_romfs(OUT my_romfs ROOT "ROMFS/my_board")
|
# px4_nuttx_add_romfs(OUT my_romfs ROOT "ROMFS/my_board")
|
||||||
#
|
#
|
||||||
function(px4_nuttx_generate_romfs)
|
function(px4_nuttx_add_romfs)
|
||||||
|
|
||||||
px4_parse_function_args(
|
px4_parse_function_args(
|
||||||
NAME px4_nuttx_generate_romfs
|
NAME px4_nuttx_add_romfs
|
||||||
ONE_VALUE OUT ROOT
|
ONE_VALUE OUT ROOT
|
||||||
|
MULTI_VALUE EXTRAS
|
||||||
REQUIRED OUT ROOT
|
REQUIRED OUT ROOT
|
||||||
ARGN ${ARGN})
|
ARGN ${ARGN})
|
||||||
|
|
||||||
file(GLOB_RECURSE romfs_files ${ROOT}/*)
|
set(romfs_temp_dir ${CMAKE_BINARY_DIR}/tmp/${ROOT})
|
||||||
set(romfs_temp_dir ${CMAKE_BINARY_DIR}/${ROOT})
|
|
||||||
set(romfs_src_dir ${CMAKE_SOURCE_DIR}/${ROOT})
|
set(romfs_src_dir ${CMAKE_SOURCE_DIR}/${ROOT})
|
||||||
|
|
||||||
set(romfs_autostart ${CMAKE_SOURCE_DIR}/Tools/px_process_airframes.py)
|
set(romfs_autostart ${CMAKE_SOURCE_DIR}/Tools/px_process_airframes.py)
|
||||||
set(romfs_pruner ${CMAKE_SOURCE_DIR}/Tools/px_romfs_pruner.py)
|
set(romfs_pruner ${CMAKE_SOURCE_DIR}/Tools/px_romfs_pruner.py)
|
||||||
set(bin_to_obj ${CMAKE_SOURCE_DIR}/cmake/nuttx/bin_to_obj.py)
|
set(bin_to_obj ${CMAKE_SOURCE_DIR}/cmake/nuttx/bin_to_obj.py)
|
||||||
|
set(extras_dir ${CMAKE_CURRENT_BINARY_DIR}/extras)
|
||||||
|
|
||||||
#message(STATUS "temp_dir: ${romfs_temp_dir}")
|
file(GLOB_RECURSE romfs_src_files ${romfs_src_dir} ${romfs_src_dir}/*)
|
||||||
#message(STATUS "src_dir: ${romfs_src_dir}")
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT rc.autostart
|
set(cmake_test ${CMAKE_SOURCE_DIR}/cmake/test/cmake_tester.py)
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${romfs_autostart}
|
|
||||||
-a ${romfs_src_dir}/init.d
|
|
||||||
-s rc.autostart
|
set(extras)
|
||||||
|
foreach(extra ${EXTRAS})
|
||||||
|
get_filename_component(file_name ${extra} NAME)
|
||||||
|
set(file_dest ${extras_dir}/${file_name})
|
||||||
|
add_custom_command(OUTPUT ${file_dest}
|
||||||
|
COMMAND cmake -E copy ${extra} ${file_dest}
|
||||||
|
DEPENDS ${extra}
|
||||||
)
|
)
|
||||||
|
list(APPEND extras ${file_dest})
|
||||||
|
endforeach()
|
||||||
|
add_custom_target(collect_extras DEPENDS ${extras})
|
||||||
|
|
||||||
add_custom_command(OUTPUT romfs.bin
|
add_custom_command(OUTPUT romfs.o
|
||||||
COMMAND cmake -E remove_directory ${romfs_temp_dir}
|
COMMAND cmake -E remove_directory ${romfs_temp_dir}
|
||||||
COMMAND cmake -E copy_directory ${romfs_src_dir} ${romfs_temp_dir}
|
COMMAND cmake -E copy_directory ${romfs_src_dir} ${romfs_temp_dir}
|
||||||
COMMAND cmake -E copy rc.autostart ${romfs_temp_dir}/init.d
|
COMMAND cmake -E copy_directory ${extras_dir} ${romfs_temp_dir}/extras
|
||||||
#TODO add romfs cleanup of temp file .~, .swp etc
|
COMMAND ${PYTHON_EXECUTABLE} ${romfs_autostart}
|
||||||
|
-a ${romfs_temp_dir}/init.d
|
||||||
|
-s ${romfs_temp_dir}/init.d/rc.autostart
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${romfs_pruner}
|
COMMAND ${PYTHON_EXECUTABLE} ${romfs_pruner}
|
||||||
--folder ${romfs_temp_dir}
|
--folder ${romfs_temp_dir}
|
||||||
COMMAND ${GENROMFS} -f ${CMAKE_CURRENT_BINARY_DIR}/romfs.bin
|
COMMAND ${GENROMFS} -f ${CMAKE_CURRENT_BINARY_DIR}/romfs.bin
|
||||||
-d ${romfs_temp_dir} -V "NSHInitVol"
|
-d ${romfs_temp_dir} -V "NSHInitVol"
|
||||||
DEPENDS ${romfs_files} rc.autostart
|
#COMMAND cmake -E remove_directory ${romfs_temp_dir}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT romfs.o
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${bin_to_obj}
|
COMMAND ${PYTHON_EXECUTABLE} ${bin_to_obj}
|
||||||
--ld ${LD} --c_flags ${CMAKE_C_FLAGS}
|
--ld ${LD} --c_flags ${CMAKE_C_FLAGS}
|
||||||
--c_compiler ${CMAKE_C_COMPILER}
|
--c_compiler ${CMAKE_C_COMPILER}
|
||||||
|
@ -322,11 +367,12 @@ function(px4_nuttx_generate_romfs)
|
||||||
--obj romfs.o
|
--obj romfs.o
|
||||||
--var romfs_img
|
--var romfs_img
|
||||||
--bin romfs.bin
|
--bin romfs.bin
|
||||||
DEPENDS romfs.bin
|
DEPENDS ${romfs_src_files} ${extras}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
)
|
)
|
||||||
|
add_library(${OUT} STATIC romfs.o)
|
||||||
set(${OUT} romfs.o PARENT_SCOPE)
|
set_target_properties(${OUT} PROPERTIES LINKER_LANGUAGE C)
|
||||||
|
set(${OUT} ${${OUT}} PARENT_SCOPE)
|
||||||
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
"""
|
||||||
|
The module facilitates testing in cmake.
|
||||||
|
It takes a command and a regex for failure ok passing.
|
||||||
|
It passes if:
|
||||||
|
* No stderr output.
|
||||||
|
* Stdout doesn't match failure regex.
|
||||||
|
* Stdout matches ok regex if given.
|
||||||
|
"""
|
||||||
|
from __future__ import print_function
|
||||||
|
import argparse
|
||||||
|
import subprocess
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
#pylint: disable=invalid-name
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
|
parser.add_argument('cmd')
|
||||||
|
parser.add_argument('--re-fail')
|
||||||
|
parser.add_argument('--re-ok')
|
||||||
|
parser.add_argument('--verbose', '-v', dest='verbose', action='store_true')
|
||||||
|
|
||||||
|
parser.set_defaults(verbose=False)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
proc = subprocess.Popen(args.cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
stdout, stderr = proc.communicate()
|
||||||
|
|
||||||
|
if stderr != "":
|
||||||
|
print(stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if args.re_fail is not None:
|
||||||
|
fail_match = re.search(args.re_fail, stdout)
|
||||||
|
if fail_match is not None:
|
||||||
|
print(stdout)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if args.re_ok is not None:
|
||||||
|
ok_match = re.search(args.re_ok, stdout)
|
||||||
|
if re.match(args.re_ok, stdout) is None:
|
||||||
|
print(stdout)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if args.verbose:
|
||||||
|
print(stdout)
|
||||||
|
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
# vim: set et ft=python fenc=utf-8 ff=unix sts=4 sw=4 ts=4 :
|
|
@ -37,7 +37,7 @@ endif()
|
||||||
cmake_force_cxx_compiler(${CXX_COMPILER} GNU)
|
cmake_force_cxx_compiler(${CXX_COMPILER} GNU)
|
||||||
|
|
||||||
# compiler tools
|
# compiler tools
|
||||||
foreach(tool objcopy nm ld gdb)
|
foreach(tool objcopy nm ld)
|
||||||
string(TOUPPER ${tool} TOOL)
|
string(TOUPPER ${tool} TOOL)
|
||||||
find_program(${TOOL} arm-none-eabi-${tool})
|
find_program(${TOOL} arm-none-eabi-${tool})
|
||||||
if(NOT ${TOOL})
|
if(NOT ${TOOL})
|
||||||
|
@ -45,6 +45,12 @@ foreach(tool objcopy nm ld gdb)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
# optional compiler tools
|
||||||
|
foreach(tool gdb gdbtui)
|
||||||
|
string(TOUPPER ${tool} TOOL)
|
||||||
|
find_program(${TOOL} arm-none-eabi-${tool})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
# os tools
|
# os tools
|
||||||
foreach(tool echo patch grep rm mkdir nm genromfs cp touch make unzip)
|
foreach(tool echo patch grep rm mkdir nm genromfs cp touch make unzip)
|
||||||
string(TOUPPER ${tool} TOOL)
|
string(TOUPPER ${tool} TOOL)
|
||||||
|
|
|
@ -5,17 +5,22 @@ px4_nuttx_generate_builtin_commands(
|
||||||
${config_extra_builtin_cmds}
|
${config_extra_builtin_cmds}
|
||||||
)
|
)
|
||||||
|
|
||||||
px4_nuttx_generate_romfs(OUT romfs.o
|
px4_nuttx_add_romfs(OUT romfs
|
||||||
ROOT ROMFS/px4fmu_common)
|
ROOT ROMFS/px4fmu_common
|
||||||
|
EXTRAS ${CMAKE_BINARY_DIR}/src/modules/px4iofirmware/${config_io_board}_${LABEL}.bin
|
||||||
|
)
|
||||||
|
|
||||||
|
add_dependencies(romfs fw_io)
|
||||||
|
|
||||||
# add executable
|
# add executable
|
||||||
add_executable(firmware_nuttx
|
add_executable(firmware_nuttx
|
||||||
builtin_commands.c
|
builtin_commands.c)
|
||||||
romfs.o)
|
|
||||||
|
|
||||||
set(nuttx_export_dir ${CMAKE_BINARY_DIR}/${BOARD}/NuttX/nuttx-export)
|
set(nuttx_export_dir ${CMAKE_BINARY_DIR}/${BOARD}/NuttX/nuttx-export)
|
||||||
|
|
||||||
set(link_libs
|
set(link_libs
|
||||||
apps nuttx m gcc
|
romfs apps nuttx m gcc
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT ${BOARD} STREQUAL "sim")
|
if(NOT ${BOARD} STREQUAL "sim")
|
||||||
|
@ -56,7 +61,14 @@ if(NOT ${BOARD} STREQUAL "sim")
|
||||||
configure_file(gdbinit.in .gdbinit)
|
configure_file(gdbinit.in .gdbinit)
|
||||||
|
|
||||||
add_custom_target(debug
|
add_custom_target(debug
|
||||||
COMMAND ${GDB} ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
|
COMMAND ${GDBTUI} ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
|
||||||
|
DEPENDS firmware_nuttx
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(debug_io
|
||||||
|
COMMAND ${GDBTUI}
|
||||||
|
${CMAKE_BINARY_DIR}/src/modules/px4iofirmware/${config_io_board}_${LABEL}
|
||||||
DEPENDS firmware_nuttx
|
DEPENDS firmware_nuttx
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
|
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
|
||||||
)
|
)
|
||||||
|
|
|
@ -103,10 +103,12 @@ elseif(${config_io_board} STREQUAL "px4io-v2")
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(firmware_io_nuttx
|
set(fw_io_name ${config_io_board}_${LABEL})
|
||||||
|
|
||||||
|
add_executable(${fw_io_name}
|
||||||
${srcs})
|
${srcs})
|
||||||
|
|
||||||
add_dependencies(firmware_io_nuttx
|
add_dependencies(${fw_io_name}
|
||||||
nuttx_export_${config_io_board}
|
nuttx_export_${config_io_board}
|
||||||
msg_gen
|
msg_gen
|
||||||
io_prebuild_targets
|
io_prebuild_targets
|
||||||
|
@ -119,20 +121,20 @@ set(main_link_flags
|
||||||
"-Wl,-Map=${CMAKE_BINARY_DIR}/${config_io_board}/main.map"
|
"-Wl,-Map=${CMAKE_BINARY_DIR}/${config_io_board}/main.map"
|
||||||
)
|
)
|
||||||
px4_join(OUT main_link_flags LIST ${main_link_flags} GLUE " ")
|
px4_join(OUT main_link_flags LIST ${main_link_flags} GLUE " ")
|
||||||
set_target_properties(firmware_io_nuttx PROPERTIES LINK_FLAGS ${main_link_flags})
|
set_target_properties(${fw_io_name} PROPERTIES LINK_FLAGS ${main_link_flags})
|
||||||
|
|
||||||
set(io_fw_file ${CMAKE_CURRENT_BINARY_DIR}/${config_io_board}.px4)
|
target_link_libraries(${fw_io_name}
|
||||||
|
|
||||||
target_link_libraries(firmware_io_nuttx
|
|
||||||
-Wl,--start-group
|
-Wl,--start-group
|
||||||
apps nuttx nosys m gcc
|
apps nuttx nosys m gcc
|
||||||
${config_io_extra_libs}
|
${config_io_extra_libs}
|
||||||
-Wl,--end-group)
|
-Wl,--end-group)
|
||||||
|
|
||||||
px4_nuttx_add_firmware(OUT ${io_fw_file}
|
px4_nuttx_create_bin(OUT ${CMAKE_CURRENT_BINARY_DIR}/${fw_io_name}.bin
|
||||||
BOARD ${config_io_board}
|
EXE ${fw_io_name}
|
||||||
EXE ${CMAKE_CURRENT_BINARY_DIR}/firmware_io_nuttx
|
|
||||||
${config_firmware_options}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_target(fw_io
|
||||||
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${fw_io_name}.bin)
|
||||||
|
|
||||||
|
|
||||||
# vim: set noet ft=cmake fenc=utf-8 ff=unix :
|
# vim: set noet ft=cmake fenc=utf-8 ff=unix :
|
||||||
|
|
Loading…
Reference in New Issue