CLion 1.2 を使用して、STM32 ターゲット用の組み込み C プロジェクトをビルドしています。GNU ARM ツールを使用したクロス コンパイルはうまく機能しarm-none-eabi-size
ますが、実行可能ファイルがビルドされた後に実行し、そのコマンドの出力をビルド出力ウィンドウに出力したいと考えています。
マクロを徹底的に調べましたがadd_custom_command
、出力ファイルを生成するつもりはありません。これは、マクロが実行しているように見えます。
以下は、CMakeLists.txt
私がプロジェクトで使用しているものです。
cmake_minimum_required(VERSION 3.3)
include(CMakeForceCompiler)
project(rtos_clion)
# -------------------------------------------------------------------
set(CMAKE_SYSTEM_PROCESSOR cortex-m0)
SET(CMAKE_SYSTEM_NAME Generic)
# Target Environment
SET(CMAKE_FIND_ROOT_PATH "C:/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2")
# Cross compiler
CMAKE_FORCE_C_COMPILER(arm-none-eabi-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(arm-none-eabi-g++ GNU)
# Executable type
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
# Compiler flags
set(ARM_FLAGS "-mcpu=cortex-m0 -mthumb -Os")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM_FLAGS} -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -ffunction-sections -g")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11 ${ARM_FLAGS} -ffunction-sections -fmessage-length=0 -fsigned-char -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra -g")
set(CMAKE_EXE_LINKER_FLAGS "${ARM_FLAGS} -g -Wl,--library-path=\"${PROJECT_SOURCE_DIR}\" -T mem.ld -T libs.ld -T sections.ld -Xlinker --gc-sections -Wl,-Map=${PROJECT_NAME}.map --specs=nano.specs")
set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <LINK_FLAGS> -o <TARGET> <OBJECTS>")
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <LINK_FLAGS> -o <TARGET> <OBJECTS>")
# -------------------------------------------------------------------
# Global definitions
add_definitions(-DDEBUG -DUSE_FULL_ASSERT -DSTM32F051x8 -DHSE_VALUE=8000000)
include_directories(
# My include directories
)
set(SOURCE_FILES
# My source files
)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
# search for programs in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
arm-none-eabi-size
コンソールで実行すると、次のように表示されます。
$arm-none-eabi-size --format=berkeley "rtos_clion.elf"
text data bss dec hex filename
32840 308 7796 40944 9ff0 rtos_clion.elf
それを実行して、その出力をビルド ウィンドウに表示するにはどうすればよいでしょうか。
ありがとう!