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です。

    > 下記の案件はMSVCなりClangなりGCCなりでリンカのオプション内でパスの一部として$を含むようなパスを試してみることで
    。。。
    > ちょっと試行錯誤してみます。(うまく擬似的に再現出来たらIssueに投稿してみます。)

    試行錯誤してみたところ、一応、同じことの筈、と思われる現象再現手順は出来たのですけれども、考えを巡らせているうちに、コンパイラグループさんが作成中のCMakeへのパッチに関するもろもろのファイルの中に記載されていた以下のIssueの内容のひとつと、何のことは無い、同じことだなぁ、と気付きました。ですので、Issueには投稿しません。

    Open Issue created 6 years ago by Ben Wagner
    Escaping dollar sign with ninja generator.
    gitlab.kitware.com/cmake/cmake/-/issues/16395

    でも、下書きまで書いたので、どうせなので以下に書いておきます。(マークダウン記法とその為のエスケープ記述があります。)

    Not posted: discourse.cmake.org
    Title: Ninja and Make: \`$\` escape problem in linker option

    Hello,

    I face \`$\` escape problem in linker option. When I use the following CMakeLists.txt, somehow \`$\` in linker option is escaped as follows. (Original problem is slightly different and it is in the case of Renesas CC-RX compiler which is used single chip microcontrollers Renesas RX family.) Is this a bug of CMake?

    Ninja: target_link_options(${PROJECT_NAME} PRIVATE @../MAIN`$`.ld) --> @../MAIN`$$`.ld
    Make: target_link_options(${PROJECT_NAME} PRIVATE @../MAIN`$`.ld) --> @../MAIN`\$`.ld

    CMakeLists.txt
    ```
    cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
    project(main C)
    add_executable(${PROJECT_NAME} main.c)
    target_link_options(${PROJECT_NAME} PRIVATE @../MAIN$.ld)
    ```

    MAIN$.ld
    ```
    /* Nothing */
    ```

    main.c
    ```
    int main(int argc, char *argv[])
    {
        return 0;
    }
    ```

    main_ninja.bat
    ```
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang.exe -Bbuild -GNinja
    cmake --build build
    ```

    main_make.bat
    ```
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang.exe -Bbuild -G"Unix Makefiles"
    cmake --build build
    ```

    result of main_ninja.bat
    ```
    [2/2] Linking C executable main.exe
    FAILED: main.exe
    cmd.exe /C "cd . && C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\Llvm\bin\clang.exe -fuse-ld=lld-link -nostartfiles -nostdlib -O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -Xlinker /subsystem:console  @../MAIN$$.ld CMakeFiles/main.dir/main.c.obj -o main.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:main.lib -Xlinker /pdb:main.pdb -Xlinker /version:0.0   -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames  && cd ."
    clang: error: no such file or directory: '@../MAIN$$.ld'
    ```

    result of main_make.bat
    ```
    [100%] Linking C executable main.exe
    clang: error: no such file or directory: '@../MAIN\$.ld'
    ```

    Best Regards,<br>
    NoMaY

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

    > 下記の案件はMSVCなりClangなりGCCなりでリンカのオプション内でパスの一部として$を含むようなパスを試してみることで
    。。。
    > ちょっと試行錯誤してみます。(うまく擬似的に再現出来たらIssueに投稿してみます。)

    試行錯誤してみたところ、一応、同じことの筈、と思われる現象再現手順は出来たのですけれども、考えを巡らせているうちに、コンパイラグループさんが作成中のCMakeへのパッチに関するもろもろのファイルの中に記載されていた以下のIssueの内容のひとつと、何のことは無い、同じことだなぁ、と気付きました。ですので、Issueには投稿しません。

    Open Issue created 6 years ago by Ben Wagner
    Escaping dollar sign with ninja generator.
    gitlab.kitware.com/cmake/cmake/-/issues/16395

    でも、下書きまで書いたので、どうせなので以下に書いておきます。(マークダウン記法とその為のエスケープ記述があります。)

    Not posted: discourse.cmake.org
    Title: Ninja and Make: \`$\` escape problem in linker option

    Hello,

    I face \`$\` escape problem in linker option. When I use the following CMakeLists.txt, somehow \`$\` in linker option is escaped as follows. (Original problem is slightly different and it is in the case of Renesas CC-RX compiler which is used single chip microcontrollers Renesas RX family.) Is this a bug of CMake?

    Ninja: target_link_options(${PROJECT_NAME} PRIVATE @../MAIN`$`.ld) --> @../MAIN`$$`.ld
    Make: target_link_options(${PROJECT_NAME} PRIVATE @../MAIN`$`.ld) --> @../MAIN`\$`.ld

    CMakeLists.txt
    ```
    cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
    project(main C)
    add_executable(${PROJECT_NAME} main.c)
    target_link_options(${PROJECT_NAME} PRIVATE @../MAIN$.ld)
    ```

    MAIN$.ld
    ```
    /* Nothing */
    ```

    main.c
    ```
    int main(int argc, char *argv[])
    {
        return 0;
    }
    ```

    main_ninja.bat
    ```
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang.exe -Bbuild -GNinja
    cmake --build build
    ```

    main_make.bat
    ```
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang.exe -Bbuild -G"Unix Makefiles"
    cmake --build build
    ```

    result of main_ninja.bat
    ```
    [2/2] Linking C executable main.exe
    FAILED: main.exe
    cmd.exe /C "cd . && C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\Llvm\bin\clang.exe -fuse-ld=lld-link -nostartfiles -nostdlib -O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -Xlinker /subsystem:console  @../MAIN$$.ld CMakeFiles/main.dir/main.c.obj -o main.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:main.lib -Xlinker /pdb:main.pdb -Xlinker /version:0.0   -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames  && cd ."
    clang: error: no such file or directory: '@../MAIN$$.ld'
    ```

    result of main_make.bat
    ```
    [100%] Linking C executable main.exe
    clang: error: no such file or directory: '@../MAIN\$.ld'
    ```

    Best Regards,<br>
    NoMaY

Children
No Data