Initial attempt to make px4_add_board obsolute

This commit is contained in:
Peter van der Perk
2021-10-07 10:09:01 -04:00
committed by Daniel Agar
parent 7aa28ba9cd
commit 57593cc56a
6 changed files with 332 additions and 167 deletions
+160 -17
View File
@@ -1,4 +1,4 @@
set(BOARD_DEFCONFIG ${PX4_BOARD_DIR}/${PX4_BOARD_LABEL}-boardconfig CACHE FILEPATH "path to defconfig" FORCE)
set(BOARD_DEFCONFIG ${PX4_BOARD_DIR}/${PX4_BOARD_LABEL}.px4board CACHE FILEPATH "path to defconfig" FORCE)
set(BOARD_CONFIG ${PX4_BINARY_DIR}/boardconfig CACHE FILEPATH "path to config" FORCE)
find_program(MENUCONFIG_PATH menuconfig)
@@ -78,11 +78,21 @@ if(EXISTS ${BOARD_DEFCONFIG})
string(REPLACE "\"" "" Value ${Value})
# Set the variable
#message(STATUS "${Name} ${Value}")
set(${Name} ${Value} CACHE INTERNAL "BOARD DEFCONFIG: ${Name}" FORCE)
endif()
endif()
# Find variable name
string(REGEX MATCH "^CONFIG_BOARD_" Board ${NameAndValue})
if(Board)
string(REPLACE "CONFIG_BOARD_" "" ConfigKey ${Name})
if(Value)
set(${ConfigKey} ${Value})
message(STATUS "${ConfigKey} ${Value}")
endif()
endif()
# Find variable name
string(REGEX MATCH "^CONFIG_DRIVERS[^=]+" Drivers ${NameAndValue})
@@ -91,13 +101,13 @@ if(EXISTS ${BOARD_DEFCONFIG})
string(REPLACE "${Name}=" "" Value ${NameAndValue})
string(REPLACE "CONFIG_DRIVERS_" "" driver ${Name})
string(TOLOWER ${driver} driver)
string(REPLACE "_" "/" driver_path ${driver})
# Pattern 1 XXX / XXX_XXX
string(REGEX REPLACE "(^[a-z]+)_([a-z]+_[a-z0-9]+).*$" "\\1" driver_p1_folder ${driver})
string(REGEX REPLACE "(^[a-z]+)_([a-z]+_[a-z0-9]+).*$" "\\2" driver_p1_subfolder ${driver})
# Pattern 2 XXX_XXX / XXXXXX
string(REGEX REPLACE "(^[a-z]+_[a-z]+)_([a-z0-9]+).*$" "\\1" driver_p2_folder ${driver})
string(REGEX REPLACE "(^[a-z]+_[a-z]+)_([a-z0-9]+).*$" "\\2" driver_p2_subfolder ${driver})
@@ -114,7 +124,7 @@ if(EXISTS ${BOARD_DEFCONFIG})
else()
message(FATAL_ERROR "Couldn't find path for ${driver}")
endif()
endif()
# Find variable name
@@ -125,7 +135,7 @@ if(EXISTS ${BOARD_DEFCONFIG})
string(REPLACE "${Name}=" "" Value ${NameAndValue})
string(REPLACE "CONFIG_MODULES_" "" module ${Name})
string(TOLOWER ${module} module)
list(APPEND config_module_list modules/${module})
endif()
@@ -137,7 +147,7 @@ if(EXISTS ${BOARD_DEFCONFIG})
string(REPLACE "${Name}=" "" Value ${NameAndValue})
string(REPLACE "CONFIG_SYSTEMCMDS_" "" systemcmd ${Name})
string(TOLOWER ${systemcmd} systemcmd)
list(APPEND config_module_list systemcmds/${systemcmd})
endif()
@@ -149,20 +159,153 @@ if(EXISTS ${BOARD_DEFCONFIG})
string(REPLACE "${Name}=" "" Value ${NameAndValue})
string(REPLACE "CONFIG_EXAMPLES_" "" example ${Name})
string(TOLOWER ${example} example)
list(APPEND config_module_list examples/${example})
endif()
# Find variable name
string(REGEX MATCH "^CONFIG_UAVCAN_INTERFACES" UAVCAN_INTERFACES ${NameAndValue})
endforeach()
# Temporary located here to maintain binary compatibility, have to be removed later
if(UAVCAN_INTERFACES)
# Find the value
string(REPLACE "${Name}=" "" Value ${NameAndValue})
if(PLATFORM)
# set OS, and append specific platform module path
set(PX4_PLATFORM ${PLATFORM} CACHE STRING "PX4 board OS" FORCE)
list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake)
set(config_uavcan_num_ifaces ${Value} CACHE INTERNAL "UAVCAN interfaces" FORCE)
# platform-specific include path
include_directories(${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/src/px4/common/include)
endif()
if(ARCHITECTURE)
set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE INTERNAL "system processor" FORCE)
endif()
if(TOOLCHAIN)
set(CMAKE_TOOLCHAIN_FILE Toolchain-${TOOLCHAIN} CACHE INTERNAL "toolchain file" FORCE)
endif()
set(romfs_extra_files)
set(config_romfs_extra_dependencies)
# additional embedded metadata
if (NOT CONSTRAINED_FLASH AND NOT EXTERNAL_METADATA AND NOT ${PX4_BOARD_LABEL} STREQUAL "test")
list(APPEND romfs_extra_files
${PX4_BINARY_DIR}/parameters.json.xz
${PX4_BINARY_DIR}/events/all_events.json.xz)
list(APPEND romfs_extra_dependencies
parameters_xml
events_json)
endif()
list(APPEND romfs_extra_files ${PX4_BINARY_DIR}/component_general.json.xz)
list(APPEND romfs_extra_dependencies component_general_json)
set(config_romfs_extra_files ${romfs_extra_files} CACHE INTERNAL "extra ROMFS files" FORCE)
set(config_romfs_extra_dependencies ${romfs_extra_dependencies} CACHE INTERNAL "extra ROMFS deps" FORCE)
if(SERIAL_PORTS)
set(board_serial_ports ${SERIAL_PORTS} PARENT_SCOPE)
endif()
# Serial ports
set(board_serial_ports)
if(SERIAL_GPS1)
list(APPEND board_serial_ports GPS1:${SERIAL_GPS1})
endif()
if(SERIAL_GPS2)
list(APPEND board_serial_ports GPS2:${SERIAL_GPS2})
endif()
if(SERIAL_GPS3)
list(APPEND board_serial_ports GPS3:${SERIAL_GPS3})
endif()
if(SERIAL_GPS4)
list(APPEND board_serial_ports GPS4:${SERIAL_GPS4})
endif()
if(SERIAL_GPS5)
list(APPEND board_serial_ports GPS5:${SERIAL_GPS5})
endif()
if(SERIAL_TEL1)
list(APPEND board_serial_ports TEL1:${SERIAL_TEL1})
endif()
if(SERIAL_TEL2)
list(APPEND board_serial_ports TEL2:${SERIAL_TEL2})
endif()
if(SERIAL_TEL3)
list(APPEND board_serial_ports TEL3:${SERIAL_TEL3})
endif()
if(SERIAL_TEL4)
list(APPEND board_serial_ports TEL4:${SERIAL_TEL4})
endif()
if(SERIAL_TEL5)
list(APPEND board_serial_ports TEL5:${SERIAL_TEL5})
endif()
# ROMFS
if(ROMFSROOT)
set(config_romfs_root ${ROMFSROOT} CACHE INTERNAL "ROMFS root" FORCE)
if(BUILD_BOOTLOADER)
set(config_build_bootloader "1" CACHE INTERNAL "build bootloader" FORCE)
endif()
endforeach()
# IO board (placed in ROMFS)
if(IO)
set(config_io_board ${IO} CACHE INTERNAL "IO" FORCE)
endif()
if(UAVCAN_PERIPHERALS)
set(config_uavcan_peripheral_firmware ${UAVCAN_PERIPHERALS} CACHE INTERNAL "UAVCAN peripheral firmware" FORCE)
endif()
endif()
if(UAVCAN_INTERFACES)
set(config_uavcan_num_ifaces ${UAVCAN_INTERFACES} CACHE INTERNAL "UAVCAN interfaces" FORCE)
endif()
if(UAVCAN_TIMER_OVERRIDE)
set(config_uavcan_timer_override ${UAVCAN_TIMER_OVERRIDE} CACHE INTERNAL "UAVCAN TIMER OVERRIDE" FORCE)
endif()
# OPTIONS
if(CONSTRAINED_FLASH)
set(px4_constrained_flash_build "1" CACHE INTERNAL "constrained flash build" FORCE)
add_definitions(-DCONSTRAINED_FLASH)
if (NO_HELP)
add_definitions(-DCONSTRAINED_FLASH_NO_HELP="https://docs.px4.io/master/en/modules/modules_main.html")
endif()
endif()
if(CONSTRAINED_MEMORY)
set(px4_constrained_memory_build "1" CACHE INTERNAL "constrained memory build" FORCE)
add_definitions(-DCONSTRAINED_MEMORY)
endif()
if(TESTING)
set(PX4_TESTING "1" CACHE INTERNAL "testing enabled" FORCE)
endif()
if(ETHERNET)
set(PX4_ETHERNET "1" CACHE INTERNAL "ethernet enabled" FORCE)
endif()
if(CRYPTO)
set(PX4_CRYPTO ${CRYPTO} CACHE STRING "PX4 crypto implementation" FORCE)
endif()
if(KEYSTORE)
set(PX4_KEYSTORE ${KEYSTORE} CACHE STRING "PX4 keystore implementation" FORCE)
endif()
if(LINKER_PREFIX)
set(PX4_BOARD_LINKER_PREFIX ${LINKER_PREFIX} CACHE STRING "PX4 board linker prefix" FORCE)
else()
set(PX4_BOARD_LINKER_PREFIX "" CACHE STRING "PX4 board linker prefix" FORCE)
endif()
include(px4_impl_os)
px4_os_prebuild_targets(OUT prebuild_targets BOARD ${PX4_BOARD})
# add board config directory src to build modules
file(RELATIVE_PATH board_support_src_rel ${PX4_SOURCE_DIR}/src ${PX4_BOARD_DIR})
list(APPEND config_module_list ${board_support_src_rel}/src)
set(config_module_list ${config_module_list})
endif()
-136
View File
@@ -191,141 +191,5 @@ function(px4_add_board)
set(PX4_CONFIG "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}" CACHE STRING "PX4 config" FORCE)
# set OS, and append specific platform module path
set(PX4_PLATFORM ${PLATFORM} CACHE STRING "PX4 board OS" FORCE)
list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake)
# platform-specific include path
include_directories(${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/src/px4/common/include)
if(ARCHITECTURE)
set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE INTERNAL "system processor" FORCE)
endif()
if(TOOLCHAIN)
set(CMAKE_TOOLCHAIN_FILE Toolchain-${TOOLCHAIN} CACHE INTERNAL "toolchain file" FORCE)
endif()
set(romfs_extra_files)
set(config_romfs_extra_dependencies)
# additional embedded metadata
if (NOT CONSTRAINED_FLASH AND NOT EXTERNAL_METADATA AND NOT ${PX4_BOARD_LABEL} STREQUAL "test")
list(APPEND romfs_extra_files
${PX4_BINARY_DIR}/parameters.json.xz
${PX4_BINARY_DIR}/events/all_events.json.xz)
list(APPEND romfs_extra_dependencies
parameters_xml
events_json)
endif()
list(APPEND romfs_extra_files ${PX4_BINARY_DIR}/component_general.json.xz)
list(APPEND romfs_extra_dependencies component_general_json)
set(config_romfs_extra_files ${romfs_extra_files} CACHE INTERNAL "extra ROMFS files" FORCE)
set(config_romfs_extra_dependencies ${romfs_extra_dependencies} CACHE INTERNAL "extra ROMFS deps" FORCE)
if(SERIAL_PORTS)
set(board_serial_ports ${SERIAL_PORTS} PARENT_SCOPE)
endif()
# ROMFS
if(ROMFSROOT)
set(config_romfs_root ${ROMFSROOT} CACHE INTERNAL "ROMFS root" FORCE)
if(BUILD_BOOTLOADER)
set(config_build_bootloader "1" CACHE INTERNAL "build bootloader" FORCE)
endif()
# IO board (placed in ROMFS)
if(IO)
set(config_io_board ${IO} CACHE INTERNAL "IO" FORCE)
endif()
if(UAVCAN_PERIPHERALS)
set(config_uavcan_peripheral_firmware ${UAVCAN_PERIPHERALS} CACHE INTERNAL "UAVCAN peripheral firmware" FORCE)
endif()
endif()
if(UAVCAN_INTERFACES)
set(config_uavcan_num_ifaces ${UAVCAN_INTERFACES} CACHE INTERNAL "UAVCAN interfaces" FORCE)
endif()
if(UAVCAN_TIMER_OVERRIDE)
set(config_uavcan_timer_override ${UAVCAN_TIMER_OVERRIDE} CACHE INTERNAL "UAVCAN TIMER OVERRIDE" FORCE)
endif()
# OPTIONS
if(CONSTRAINED_FLASH)
set(px4_constrained_flash_build "1" CACHE INTERNAL "constrained flash build" FORCE)
add_definitions(-DCONSTRAINED_FLASH)
if (NO_HELP)
add_definitions(-DCONSTRAINED_FLASH_NO_HELP="https://docs.px4.io/master/en/modules/modules_main.html")
endif()
endif()
if(CONSTRAINED_MEMORY)
set(px4_constrained_memory_build "1" CACHE INTERNAL "constrained memory build" FORCE)
add_definitions(-DCONSTRAINED_MEMORY)
endif()
if(TESTING)
set(PX4_TESTING "1" CACHE INTERNAL "testing enabled" FORCE)
endif()
if(ETHERNET)
set(PX4_ETHERNET "1" CACHE INTERNAL "ethernet enabled" FORCE)
endif()
if(CRYPTO)
set(PX4_CRYPTO ${CRYPTO} CACHE STRING "PX4 crypto implementation" FORCE)
add_definitions(-DPX4_CRYPTO)
endif()
if(KEYSTORE)
set(PX4_KEYSTORE ${KEYSTORE} CACHE STRING "PX4 keystore implementation" FORCE)
endif()
if(LINKER_PREFIX)
set(PX4_BOARD_LINKER_PREFIX ${LINKER_PREFIX} CACHE STRING "PX4 board linker prefix" FORCE)
else()
set(PX4_BOARD_LINKER_PREFIX "" CACHE STRING "PX4 board linker prefix" FORCE)
endif()
include(px4_impl_os)
px4_os_prebuild_targets(OUT prebuild_targets BOARD ${PX4_BOARD})
###########################################################################
# Modules (includes drivers, examples, modules, systemcmds)
set(config_module_list)
if(DRIVERS)
foreach(driver ${DRIVERS})
list(APPEND config_module_list drivers/${driver})
endforeach()
endif()
if(MODULES)
foreach(module ${MODULES})
list(APPEND config_module_list modules/${module})
endforeach()
endif()
if(SYSTEMCMDS)
foreach(systemcmd ${SYSTEMCMDS})
list(APPEND config_module_list systemcmds/${systemcmd})
endforeach()
endif()
if(EXAMPLES)
foreach(example ${EXAMPLES})
list(APPEND config_module_list examples/${example})
endforeach()
endif()
# add board config directory src to build modules
file(RELATIVE_PATH board_support_src_rel ${PX4_SOURCE_DIR}/src ${PX4_BOARD_DIR})
list(APPEND config_module_list ${board_support_src_rel}/src)
set(config_module_list ${config_module_list} PARENT_SCOPE)
endfunction()