初期値のみ異なる ROMイメージの作成方法について教えてください

環境: CS+
CPU: RL78/G13

この環境で、作業していますが、仕様の異なるROMイメージを作成する必要があります。
違いは、初期値のみで、

仕向けA:  RunMode=1, 仕向けB: RunMode=2, 仕向けC: RunMode=3

のような相違のみとなります。CS+のプロジェクトをコピーしても作成できますが、ソース管理上、一つのプロジェクトで管理したいと考えています。
サブプロジェクトを作成する方法も使ってみましたが、これだけの違いにしては手間が大きく困っています。

なお、相違箇所については、コンパイルオプション(条件コンパイル)のみで対応できるので、ソースも同一となります。

良い方法がありましたら、お願いします。

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

    これはビルドモードを活用してはどうだろか、と咄嗟に思いました。

    (1) DefaultBuidをBuild_RunMode_1にリネームする
    (2) Build_RunMode_1のビルドモードをBuild_RunMode_2とBuild_RunMode_3へコピーする
    (3) Build_RunMode_2とBuild_RunMode_3のマクロ定義を変更する
    (4) バッチビルドでBuild_RunMode_1とBuild_RunMode_2とBuild_RunMode_3を一括でビルドする
    (5) 後でマクロ定義以外の部分を3者で共通に変更した時は、ビルド時に生成される○○○.rcpeをスクリプトでビルドモード毎に切り出して、ファイル比較ツールで内容を比較/チェックすると、変更漏れ防止の比較的簡単な処置として使えそうな気がします。(mtpjファイルは、ファイル内部構造が複雑過ぎて、とてもそういったことは出来ないです。) あるいは、ビルドオプション生成機能でも、何かそういった活用方法があるかもしれません。

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

    あと、CS+のコンソール版を活用する案もありそうな気がします。ただし、CS+ GUIの外に出ます。IronPythonスクリプトをビルド前に実行出来た筈ですが、そこでマクロ定義を追加することも出来た筈です。ですので、Build_RunMode_1.pyとBuild_RunMode_2.pyとBuild_RunMode_3.pyを作成して、それぞれのスクリプトでマクロ定義追加の設定を変更して、それぞれのスクリプトで3回ビルドする、という案です。

    こちらは、マクロ定義以外の部分を3者で共通に変更する場合などで、作業漏れを起こすことが無いですので、そういうところが利点かな、と思いました。

  • NoMayさん、提案ありがとうございます。

    ビルドモードについては使ったことが無いので、これから、確認してみます。
    ちょっと時間が無くなったので、年内に確認できれば、思いますが、よろしくお願いします。

  • コンソール版については、興味がありますが、
    自分以外にも作業することを考えるとちょっと微妙。Pythonスクリプトも使ったことが無いし、、、

    もっとも昔は、makeで簡単にできた、というのが正直なところ。

  • 今、ちょっと試してみたところ、使えそうです。

    ただ、Cleanとかでゴミが残ってるのが、操作ミスか? など気になる点はありますが。
    次の確認は来週になるかもしれませんが、ありがとうございます。

  • NoMayさん、こちらの方法で使えるようです。

    ゴミの件は、設定変更するとビルドしてないのに、中間ファイル(?)が作成されることがあるようで、これがゴミとなっていました。(設定が変わるので、クリーンでは消えない)
    設定が確定した時点で、余分なファイル削除での対応