Skip to content

Commit

Permalink
add debug option
Browse files Browse the repository at this point in the history
  • Loading branch information
AsiiaPine committed Jan 17, 2025
1 parent 7cbd75c commit 6f82631
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
12 changes: 8 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,14 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -Wno-volatile")
set(CMAKE_CXX_STANDARD 20)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
message(STATUS "Debug mode is enabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -DDEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DDEBUG")
endif()

# Prebuild
include(${CMAKE_DIR}/params.cmake)
include(${CMAKE_DIR}/git.cmake)
Expand All @@ -76,10 +84,6 @@ add_definitions(-DHW_VERSION_MINOR=1)
# Project
project(example CXX C ASM)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()

include(${CMAKE_DIR}/full_firmware_info.cmake)

add_subdirectory(${ROOT_DIR}/Src/platform/${APP_PLATFORM})
25 changes: 17 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ all: clean_releases cyphal_v2 cyphal_v3 dronecan_v2 dronecan_v3 v3 sitl_dronecan
# Cyphal
NUNAVUT_OUT_DIR:=$(BUILD_DIR)/nunavut_out
IS_DSDL_GENERATED:=$(shell if [ -d ${NUNAVUT_OUT_DIR} ]; then find ${NUNAVUT_OUT_DIR} -mindepth 1 | wc -l; else echo 0; fi)

# Define debug flags and a mechanism to check if debug mode is requested.
CMAKE_BUILD_TYPE := Release
ifeq ($(filter debug,$(MAKECMDGOALS)),debug)
CMAKE_BUILD_TYPE := Debug
endif

generate_dsdl:
mkdir -p ${NUNAVUT_OUT_DIR}
@if [ "$(IS_DSDL_GENERATED)" -eq 0 ]; then \
Expand All @@ -20,33 +27,33 @@ generate_dsdl:
cyphal: cyphal_v2
cyphal_v2: checks generate_dsdl clean
mkdir -p ${BUILD_DIR}/cyphal_v2/obj
cd ${BUILD_DIR}/cyphal_v2/obj && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_NODE_V2=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/cyphal_v2/obj && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_NODE_V2=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make
sitl_cyphal: checks generate_dsdl clean
mkdir -p ${BUILD_DIR}/cyphal_sitl/obj
cd ${BUILD_DIR}/cyphal_sitl/obj && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_UBUNTU=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/cyphal_sitl/obj && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_UBUNTU=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make
cyphal_v3: checks generate_dsdl clean
mkdir -p ${BUILD_DIR}/cyphal_v3/obj
cd ${BUILD_DIR}/cyphal_v3/obj && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_NODE_V3=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/cyphal_v3/obj && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_NODE_V3=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make

# Dronecan:
dronecan: dronecan_v2
dronecan_v2: checks clean
mkdir -p ${BUILD_DIR}/dronecan_v2/obj
cd ${BUILD_DIR}/dronecan_v2/obj && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_NODE_V2=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/dronecan_v2/obj && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_NODE_V2=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make
sitl_dronecan: checks clean
mkdir -p ${BUILD_DIR}/dronecan_sitl/obj
cd ${BUILD_DIR}/dronecan_sitl/obj && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_UBUNTU=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/dronecan_sitl/obj && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_UBUNTU=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make
dronecan_v3: checks clean
mkdir -p ${BUILD_DIR}/dronecan_v3/obj
cd ${BUILD_DIR}/dronecan_v3/obj && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_NODE_V3=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/dronecan_v3/obj && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_NODE_V3=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make

# Cyphal & DroneCAN
v2: checks generate_dsdl clean
mkdir -p ${BUILD_DIR}/both_v2/obj
cd ${BUILD_DIR}/both_v2/obj && cmake -DCAN_PROTOCOL=both -DUSE_PLATFORM_NODE_V2=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/both_v2/obj && cmake -DCAN_PROTOCOL=both -DUSE_PLATFORM_NODE_V2=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make
v3: checks generate_dsdl clean
mkdir -p ${BUILD_DIR}/both_v3/obj
cd ${BUILD_DIR}/both_v3/obj && cmake -DCAN_PROTOCOL=both -DUSE_PLATFORM_NODE_V3=ON -G "Unix Makefiles" ../../.. && make
cd ${BUILD_DIR}/both_v3/obj && cmake -DCAN_PROTOCOL=both -DUSE_PLATFORM_NODE_V3=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -G "Unix Makefiles" ../../.. && make

# Common:
checks:
Expand All @@ -72,3 +79,5 @@ clean:
-rm -fR ${BUILD_DIR}/*/obj
distclean:
-rm -fR ${BUILD_DIR}/
debug:
echo "Debug mode is enabled"

0 comments on commit 6f82631

Please sign in to comment.