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
 

  • > 4.1 CDT Core Builder を無効化する
    CDT Managed build (GUIで設定したオプションをmakefileに出力する仕組み)を無効にするやり方なので、FreeRTOSなどの既にCMakeで作ってあるものが前提になるかと。
    Visual Studioを使っているならビルドまでVisual Studioでやることになるので出番がありませんが。

  • ほや さん、こんにちは。NoMaYです。

    > 既にCMakeで作ってあるものが前提

    やっぱりそうですよね、、、そうなると、自分の中での本命は、CS+のIronPythonスクリプトで、CS+のプロジェクト情報を参照してCMakeの設定ファイルを自動生成する、というものを作って(出来ればmtpj保存時に実行されるようにして)、そうやって生成したCMakeの設定ファイルをVisual Studio 2022で使う、という流れかな、と思いました。

    CS+は、ラピッドスタートを使うと、とてもとても速く起動しますので、CC-RX/CC-RL/CC-RHのビルド設定ダイアログ代わりにVisual Studio 2022からCS+を起動してしまう、というのもアリかな、と思いました。それから、ひと手間増える感はありますけれども、CS+から単体スマートコンフィグレータを起動してコード生成してやることで、その点に関しても情報をCMakeの設定ファイルへ反映させることが出来そうかな、とも思いました。

    ただ、悩ましいのは、(今のところは?)CS+ではFreeRTOSプロジェクトを作れないことと、CS+にはFreeRTOSデバッグサポートが無い、というところです。ただ、後者は、ひょっとすると、(Microsoftさん以外の)誰かがVisual Studio用の汎用的なFreeRTOSデバッグ拡張機能を作ったりするかも知れませんけど、、、もっとも、Microsoftさんも先日Microsoft Azure向けFreeRTOS SDKをリリースしていましたので、Visual Studio用のAzure RTOSデバッグサポートを追加して、その後、FreeRTOSデバッグサポートも追加してくる、ということもあるかも知れないとも思います、、、

    [追記]

    最後のパラグラフを読み直していて、分かり難いかな、と思ったのは、私は、どうしても必要な時は(例えばリアルタイムRAM表示させたい時とか、トレースデータを見たい時とか)CS+を起動してしまえば良い、と思っているというところかも知れません、、、まあ、ですので、FreeRTOSデバッグサポートが必要になれば、e2 studioを起動するのですけれども、、

  • こんにちは。NoMaYです。

    ウェブで調べ物をしていて気付いたのですが、IARさんは自社のツールチェインとCMakeを連携させるやり方を提示した以下のアプリケーションノートを出していましたね。(GitHubのIARさんのリポジトリにあるのがドキュメント本体であるチュートリアルですかね、、、これらのウェブページにはRXやRL78やRH850の文字もありますね、、、)

    IAR Embedded Workbench でのCMake 使用
    www.iar.com/jp/knowledge/support/technical-notes/general/iar-embedded-workbench-cmake-

    Tutorial
    Building and testing with the IAR Systems tools in CMake
    github.com/IARSystems/cmake-tutorial
     

  • こんにちは。NoMaYです。

    Azure RTOSのRX65NのサンプルコードがCMake+GNURX+VSCodeのようなので、これを少し試してみようと思います。

    github.com/azure-rtos/getting-started/tree/master/Renesas/RSK_RX65N_2MB

    github.com/azure-rtos/getting-started/tree/master/Renesas/RX65N_Cloud_Kit

    [追記]

    うゎ~、RXマイコンのサンプルコードが沢山ある、、、TB-RX130向けのものまでありますねぇ、、、

    Azure RTOS - Additional samples
    github.com/azure-rtos/samples

    [関連リンク]

    簡単Azure IoT接続!~32bit MCU RX65NがAzure RTOSに対応~
    www.renesas.com/jp/ja/blogs/easy-azure-iot-connection-rx65n-32bit-mcu-supports-azure-rtos
     

  • こんにちは。NoMaYです。

    まだ使い方は良く分かりませんが、VSCodeでCMake Toolsという拡張機能をインストールするとCMakeでビルド出来るようになるみたい、、、

    以下、VSCodeの画面コピーです。




     

  • こんにちは。NoMaYです。

    まだ適切なやり方は分かりませんが、Visual Studio 2022で以下のようなCMakeSettings.jsonファイルを記述/追加するとAzure RTOSのRX65NのサンプルコードをCMake+GNURX+Visual Studio 2022でビルド出来るようになるみたい、、、

    CMakeSettings.json

    {
      "configurations": [
        {
          "name": "GNURX-Debug",
          "generator": "Ninja",
          "configurationType": "Debug",
          "inheritEnvironments": [],
          "buildRoot": "${projectDir}\\build",
          "installRoot": "${projectDir}\\install",
          "cmakeCommandArgs": "",
          "buildCommandArgs": "",
          "ctestCommandArgs": ""
        }
      ]
    }


    以下、Visual Studio 2022の画面コピーです。




     

  • こんにちは。NoMaYです。

    困った時のQiita頼みということで以下でググって幾つか読んでみましたが、これはちょっと違ったかなぁ、という感じでした。手書きするにせよCS+のIronPythonスクリプトで自動生成させるにせよ、必要そうなものより大掛かり過ぎる感じです。

    Google検索: CMake 使い方 Qiita
    www.google.com/search?q=CMake 使い方 Qiita

    別スレッドでやっていることとの絡みでいうと、こんな感じのことが、さほど手書き/CS+のIronPythonスクリプトで自動生成とかしなくても、出来れば良かった、のですけれども、、、

    (1) プロジェクトへのソースファイルの追加/削除を認識して良きに計らってくれる
    (2) DebugビルドとReleaseビルドの切り替えをVSCodeやVisual Studio 2022上で簡単に出来るようにしてくれる

    どちらも現状は(GUIにせよheadlessbuildにせよ)e2 studioを起動しなければ出来なくて、私の環境ではe2 studioの起動に数分掛かるのが難点だったのです。(2回目、3回目、といった起動になればグッと速くなるのですが、、、)

    [追記]

    DebugビルドとReleaseビルドの切り替えといってもコンパイル時の最適化オプションの切り替えが出来れば充分で、GCCの例ですとO3/OsとかとO0との切り替え程度です。(普段、その程度で事足りていましたので、、、)

  • こんにちは。NoMaYです。

    昨日はそのように思ったのですけれども、こういう機能もあることを知りました。ひとまず、振り出しに戻る、、、

    第13回 fileコマンドが拡張されているぞ!
    投稿日 : 2019年10月6日 最終更新日時 : 2019年10月6日 カテゴリー : 実践C++応用講座CMake編
    theolizer.com/cpp-school3/cpp-school3-13/

    1.ファイル・リストを返すGLOB/GLOB_RECURSE
    GLOB/GLOB_RECURSEはファイルやフォルダのパスをリストとして返します。必要なファイルだけをコピーする時などに便利です。
    また、add_executableやadd_libraryなどに渡すソース・ファイルのリストを生成するのにも使われることがあります。
    後者は特にソースを追加した際に、再生成を忘れて「あちゃっ」となることも少くないのですが、CONFIGURE_DEPENDSで対処できそうです。


  • こんにちは。NoMaYです。

    今まで、これからVisual StudioやVisual Studio CodeでCC-RX/CC-RL/CC-RHを使うならCMakeを使うのが良いのかな?という動機で調べていましたが、以下のこれとこれとの延長線でソース以外にもビルドスクリプトにも話を広げる、という観点もありますね。(というか、あるべき論、として考えると、そちらが主役であるべき、だったかも、、、)

    CC-RXもGNURXもC99仕様では_Pragmaプリプロセッサ演算子というものが使えるのですね(FITのコンパイラ対応の効率化に役立ちそうかも)
    japan.renesasrulz.com/cafe_rene/f/forum5/5079/cc-rx-gnurx-c99-_pragma-fit

    RX SmartConfigurator FIT e2studioプロジェクトをMinGWでbuildしてみる(もちろん実行出来ませんけれど)
    japan.renesasrulz.com/cafe_rene/f/forum21/7220/rx-smartconfigurator-fit-e2studio-mingw-build

    [追記]

    ヘッドレスビルドとcmakeの話
    github.com/renesas/amazon-freertos/wiki/Amazon-FreeRTOS-Qualification-Program#ヘッドレスビルドとcmakeの話
     

  • こんにちは。NoMaYです。

    冒頭のアプリケーションノートによれば今のe2 studioはCMakeをサポートしているとのことですので、Azure RTOSのRX65Nのサンプルコード(CMake+GNURX+Visual Studio 2022/VSCodeでビルド可能であることは確認済み)を読み込ませたらどうなるだろうと試してみると、以下のようにエラーになりますね。CMakeのパスエラーっぽいのですが、e2 studioがCMakeのパスを認識していないかというと、GUI版のCMake設定ツールは起動しますので、まったく知らないわけでは無さそうなのですけれども。(何か引数っぽいものも直さないといけなさそうですけども。)

    Configuring in: C:\Renesas\Azure\getting-started\Renesas\RX65N_Cloud_Kit\build\cmake.debug.win32.x86_64
    cmake -G MinGW Makefiles -DCMAKE_EXPORT_COMPILE_COMMANDS=ON C:\Renesas\Azure\getting-started\Renesas\RX65N_Cloud_Kit
    Error: build command 'cmake' not foundFailure running cmake:

     
    以下、e2 studioの画面コピーです。