Tip:
Highlight text to annotate it
X
だれでも状況によってプロジェクトの挙動を変えたい、 簡単に切り換えたいと思った事があるでしょう。
プロジェクト コンフィグレーションは 柔軟で使いやすいツールです。
これを使えば1つのプロジェクトから複数の セットアップを生成することができます。
例えば、あるアプリケーションに 2タイプのコードがあるとします。
最小限の機能を持たせたCheapバージョンと、 高度な機能を持たせたExpensiveバージョンです。
この場合、バージョンによってコードから特定の ブロックを除外、もしくは含める作業が必要です。
この例では2つの#ifdefディレクティブがあり、 どちらのバージョンをビルドするかによって
特定のブロックを除外/含めるためのラベルがあります。
従来の方法では#defineディレクティブを使い、 ビルドの際にラベルを選択していました。
MPLAB® Xでは、もっと簡単にできます。
まずProject Propertiesダイアログを開きます。
左下隅にある「Manage Configurations」を クリックします。
既に「Default」というコンフィグレーションがあります。 この「Default」は最初から全プロジェクトにあります。
ツールバーにも「Default」と表示された コンボボックスがあります。
コンフィグレーションの切り換えには、 このコンボボックスを使います。
この例では、既存のコンフィグレーションを 複製してリネームします。
「CheapVersion」という名前にします。
次に、「Default」を「ExpensiveVersion」に リネームします。
これが、ツールバーのコンボボックスに 表示されるラベルになります。
この時点では、コードに関連付けられていません。
OKをクリックして、Project Propertiesダイアログ 左側のツリー状の部分を見てみましょう。
プロジェクト コンフィグレーションに 2つのサブツリーが見えます。
上側が「ExpensiveVersion」、 下側が「CheapVersion」です。
コンフィグレーションをクリックすると、 デバイス、ツール、コンパイラの設定まで、
プロジェクトの全てを編集する事ができます。
コンフィグレーションを変更する事で、 プロジェクトを全く別物にする事が可能です。
この例では、目的によってコードブロックを 切り換えるために、少しだけ編集してみます。
「Global Options」でコンパイラをクリックします。
この例ではXC16コンパイラを使っています。
この部分はコンパイラによって異なります。
C30等のコンパイラでは、この下のGCCノードを クリックしてプリプロセッサ マクロを生成します。
右側の「Define common macros」をクリックして、 この青い部分をクリックします。
ここに、コード内で使ったラベルを入力します。
今はExpensiveVersionのプロジェクト コンフィグレーションを設定しているので、
EXPENSIVE_VERSIONと入力して Enterキーを押し、OKをクリックします。
EXPENSIVE_VERSIONがコモンマクロとして表示されました。
これは、定義済みのマクロを使って 「ExpensiveVersion」とラベルを定義するのと同です。
次に「CheapVersion」の「Global Options」です。
同様の操作をします。
今度は「CHEAP_VERSION」と名前を付けます。
これもコードで使ったラベルです。
これでCheapVersionのマクロとしてCHEAP_VERSION、
ExpensiveVersionのマクロとして EXPENSIVE_VERSIONを設定しました。
この設定の結果を見てみましょう。
「Apply」をクリックしてOKをクリックします。
ツールバーのコンボボックス上の表示が 「ExpensiveVersion」に変わりました。
クリックすると、「CheapVersion」も リストにある事が分かります。
つまり、このコンボボックスを使ってプロジェクト コンフィグレーションを切り換える事ができます。
また、現在ExpensiveVersionに設定しているため、 対応する#ifdefブロックは色分け表示されていますが、
CheapVersionのブロックはコメントのように 灰色表示になっている事が分かります。
これにより、現在設定しているコンフィグレーションでは、 どのブロックがアクティブなのか一目で分かります。
このプロジェクトをこのままビルドすると、 「ExpensiveVersion」がビルドされます。
これはプロジェクト コンフィグレーションの 使い方の1つです。
既に述べたように、コンフィグレーションでは 色々な事を変更できます。
単に開発ツールを切り換えるという使い方もできます。
例えば、頻繁にREAL ICE™またはICD 3 とシミュレータを切り換える場合、
1つをICD 3のコンフィグレーション、 もう1つをシミュレータのコンフィグレーションにして
コンフィグレーションを切り換える事で、 簡単にツールを切り換える事ができます。
また、MPLAB 8にはデバッグマクロがありましたが、 MPLAB Xでは内蔵していません。
これも、デバッグ向けとリリース向けで2通りの コンフィグレーションを用意する事で解決できます。
コンフィグレーションはコンボボックスで簡単に 切り換える事ができます。
同じようなプロジェクトを作成する事が多い方、 プリプロセッサ#defineをいくつも挿入される方、
ぜひプロジェクト コンフィグレーションを 使う方法をご検討ください。
MPLAB X TVのRob Ostapiukでした。