こんにちは。NoMaYです。Visual Studio 2022を触っていて、これからVisual Studio上でCC-RX/CC-RL/CC-RHを使うならCMakeを使うのが良いのかな?と思い始めたところ、ルネサスさんから以下のアプリケーションノートが発行されていたことを思い出したので目を通してみたのですが、どうもこれではスマートコンフィグレータどころかコンパイルオプションの設定すらe2 studio上では出来ないのでは?という気がしてきました。実際、どうなのでしょう?御存知の方はいらっしゃいますでしょうか?アプリケーションノート 統合開発環境 e² studio CMakeプロジェクトを作成してビルドするR20AN0613JJ0200 Rev.2.00 Pages 10 Jun.30.21www.renesas.com/jp/ja/document/apn/e-studio-creating-and-executing-build-cmake-project [追記] 2021/12/31 11:00ひとつ調査漏れに気付きました。こういうアプリケーションノートも出ていたのですね。アプリケーションノート 統合開発環境 e² studio CMakeを使用してCC-RX用ソース・ファイルをビルドするR20AN0569JJ0201 Rev.2.01 Pages 12 Sep.15.21PDFwww.renesas.com/jp/ja/document/apn/integrated-development-environment-e-studio-using-cmake-renesas-cc-rx-compiler-rev201ZIPwww.renesas.com/jp/ja/document/scd/integrated-development-environment-e-studio-using-cmake-renesas-cc-rx-compiler-rev201-sample-code
こんにちは。NoMaYです。> > ルネサスコンパイラ(CC-RX/CC-RL/CC-RH)向け定義ファイル> IARさんのコンパイラ向けの定義ファイルが既に存在しますので、それを手本にして作成するのが良いですかね、、、どうも思うように動いてくれないので調べていたら、Azure RTOSのARM Cortexのサンプルコードで、GNUARMとEWARMのCMakeファイルの記述の違いが、私が思い込んでいたものの斜め上をいく違いでした。互換性が良くないのかな?、、、GNUARMの場合 (赤文字箇所の部分も含めてGNURXの場合のスタイルと同様)getting-started\cmake\arm-gcc-cortex-toolchain.cmake
# Copyright (c) Microsoft Corporation.# Licensed under the MIT License.set(CMAKE_SYSTEM_NAME Generic)set(TARGET_TRIPLET "arm-none-eabi-")# default to Debug buildif(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: Debug Release." FORCE)endif()# do some windows specific logicif(WIN32) set(TOOLCHAIN_EXT ".exe")else() set(TOOLCHAIN_EXT "")endif(WIN32)find_program(COMPILER_ON_PATH "${TARGET_TRIPLET}gcc${TOOLCHAIN_EXT}")if(DEFINED ENV{ARM_GCC_PATH}) # use the environment variable first file(TO_CMAKE_PATH $ENV{ARM_GCC_PATH} ARM_TOOLCHAIN_PATH) message(STATUS "Using ENV variable ARM_GCC_PATH = ${ARM_TOOLCHAIN_PATH}")elseif(COMPILER_ON_PATH) # then check on the current path get_filename_component(ARM_TOOLCHAIN_PATH ${COMPILER_ON_PATH} DIRECTORY) message(STATUS "Using ARM GCC from path = ${ARM_TOOLCHAIN_PATH}")else() message(FATAL_ERROR "Unable to find ARM GCC. Either add to your PATH, or define ARM_GCC_PATH to the compiler location")endif()# Perform compiler test with the static libraryset(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)set(CMAKE_C_COMPILER ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}gcc${TOOLCHAIN_EXT})set(CMAKE_CXX_COMPILER ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}g++${TOOLCHAIN_EXT})set(CMAKE_ASM_COMPILER ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}gcc${TOOLCHAIN_EXT})set(CMAKE_LINKER ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}gcc${TOOLCHAIN_EXT})set(CMAKE_SIZE_UTIL ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}size${TOOLCHAIN_EXT})set(CMAKE_OBJCOPY ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}objcopy${TOOLCHAIN_EXT})set(CMAKE_OBJDUMP ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}objdump${TOOLCHAIN_EXT})set(CMAKE_NM_UTIL ${ARM_TOOLCHAIN_PATH}/${TARGET_TRIPLET}nm${TOOLCHAIN_EXT})set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)set(CMAKE_COMMON_FLAGS "-g3 --specs=nano.specs -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fshort-enums -Wall -Wextra -Wuninitialized -Wmaybe-uninitialized -Wshadow -Wdouble-promotion -Werror -Wno-unused-parameter")set(CMAKE_C_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} ${CMAKE_COMMON_FLAGS}")set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} ${CMAKE_COMMON_FLAGS}")set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} ${CMAKE_COMMON_FLAGS}")set(CMAKE_EXE_LINKER_FLAGS "${LD_FLAGS} -fno-common -Wl,--gc-sections,-print-memory-usage")set(CMAKE_C_FLAGS_DEBUG "-O0")set(CMAKE_CXX_ASM_FLAGS_DEBUG "-O0")set(CMAKE_ASM_FLAGS_DEBUG "")set(CMAKE_C_FLAGS_RELEASE "-Os")set(CMAKE_CXX_FLAGS_RELEASE "-Os")set(CMAKE_ASM_FLAGS_RELEASE "")
EWARMの場合 (特に赤文字箇所の部分がGNURXの場合のスタイルと異なるのは想定外)getting-started\cmake\arm-iar-cortex-toolchain.cmake
set(CMAKE_SYSTEM_NAME Generic)# Set the EW installation root directoryset(EWARM_ROOT_DIR "C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/arm")# default to Debug buildif(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: Debug Release." FORCE)endif()# Set up the CMake variables for compiler and assemblerset(CMAKE_C_COMPILER "${EWARM_ROOT_DIR}/bin/iccarm.exe" "${CPU_FLAGS} -e")set(CMAKE_CXX_COMPILER "${EWARM_ROOT_DIR}/bin/iccarm.exe" "${CPU_FLAGS} --c++")set(CMAKE_ASM_COMPILER "${EWARM_ROOT_DIR}/bin/iasmarm.exe" "${CPU_FLAGS}")set(CMAKE_C_LINK_FLAGS "--semihosting")set(CMAKE_CXX_LINK_FLAGS "--semihosting")set(CMAKE_C_FLAGS_DEBUG_INIT "-On")set(CMAKE_CXX_FLAGS_DEBUG_INIT "-On")