e2 studioでCMakeでビルドする、というアプリケーションノートがあるのですがスマートコンフィグレータは使えるのでしょうか?

こんにちは。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.21
www.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.21

PDF
www.renesas.com/jp/ja/document/apn/integrated-development-environment-e-studio-using-cmake-renesas-cc-rx-compiler-rev201

ZIP
www.renesas.com/jp/ja/document/scd/integrated-development-environment-e-studio-using-cmake-renesas-cc-rx-compiler-rev201-sample-code
 

Parents
  • こんにちは。NoMaYです。

    今まで統合開発環境に任せっきりで気付かなかったのですけれども、コンパイルする、プリプロセス後のソースを出力する、アセンブラソースを出力する、という基本的な操作でも、CC-RXとCC-RL/CC-RHとでは、コンパイルオプションが違っていたのですね、、、CC-RLで試し初めて、ようやく気付きました、、、

    調査/試作中のコンパイラ定義ファイルでの例 (右端の方です)

        if(0) # IAR C/C++ Compiler
            set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
            set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
            set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
        endif()
        if("${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
          set(CMAKE_INCLUDE_FLAG_${lang} "-include=")
          set(CMAKE_DEFINE_FLAG_${lang} "-define=")
          # Note: <FLAGS> includes CMAKE_${lang}_FLAGS, CMAKE_${lang}_FLAGS_<config> and `lang standard option(s)`
          set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> -nologo ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -output=obj=<OBJECT> <SOURCE>")
          set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> -nologo ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -output=prep=<PREPROCESSED_SOURCE> <SOURCE>")
          set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> -nologo ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -output=src=<ASSEMBLY_SOURCE> <SOURCE>")
        else()
          # Note: <FLAGS> includes CMAKE_${lang}_FLAGS, CMAKE_${lang}_FLAGS_<config> and `lang standard option(s)`
          set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -c -o <OBJECT> <SOURCE>")
          set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -P -o <PREPROCESSED_SOURCE> <SOURCE>")
          set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -S -o <ASSEMBLY_SOURCE> <SOURCE>")
        endif()

     

Reply
  • こんにちは。NoMaYです。

    今まで統合開発環境に任せっきりで気付かなかったのですけれども、コンパイルする、プリプロセス後のソースを出力する、アセンブラソースを出力する、という基本的な操作でも、CC-RXとCC-RL/CC-RHとでは、コンパイルオプションが違っていたのですね、、、CC-RLで試し初めて、ようやく気付きました、、、

    調査/試作中のコンパイラ定義ファイルでの例 (右端の方です)

        if(0) # IAR C/C++ Compiler
            set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
            set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
            set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
        endif()
        if("${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
          set(CMAKE_INCLUDE_FLAG_${lang} "-include=")
          set(CMAKE_DEFINE_FLAG_${lang} "-define=")
          # Note: <FLAGS> includes CMAKE_${lang}_FLAGS, CMAKE_${lang}_FLAGS_<config> and `lang standard option(s)`
          set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> -nologo ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -output=obj=<OBJECT> <SOURCE>")
          set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> -nologo ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -output=prep=<PREPROCESSED_SOURCE> <SOURCE>")
          set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> -nologo ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -output=src=<ASSEMBLY_SOURCE> <SOURCE>")
        else()
          # Note: <FLAGS> includes CMAKE_${lang}_FLAGS, CMAKE_${lang}_FLAGS_<config> and `lang standard option(s)`
          set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -c -o <OBJECT> <SOURCE>")
          set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -P -o <PREPROCESSED_SOURCE> <SOURCE>")
          set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> ${RENESAS_${lang}_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -S -o <ASSEMBLY_SOURCE> <SOURCE>")
        endif()

     

Children
No Data