オフライン索引の作成/インポート

IBM® Rational® Developer for AIX and Linux に備わっている強力な C/C++ 視覚化/編集フィーチャーは、 索引と呼ばれるもの (基本的に、プロジェクト・コードの構造に関する情報を保管するデータベース・ファイル) に基づいています。 プロジェクト・ファイルは一般に、この索引データベースを取り込むために構文解析されます。 その後、開発環境における C/C++ ソース認識フィーチャーのいずれかを使用するとき、コードに関する情報を見つけるため、このデータベースが部分的に使用されます。 ソース・コードを構文解析し、ソース・コードから索引をビルドするためにかかる時間は、プロジェクトのサイズによって異なります。 コードをコンパイルするときにそのコードがどのように構文解析および分析されるかと同様に、小さなプロジェクトは、わずかな時間で構文解析および索引付けできます。 これに対して、大きなプロジェクトでは数時間かかることがあります。 IBM® Rational® Developer for AIX and Linux のソース認識フィーチャーを使用するために必要となる時間を 最小限にするために、IDE は、サポート対象リモート・システムにおいて、コマンド・ラインで索引ファイルを作成することをサポートしています。 解析の実行を待つことなく索引に内容を取り込むために、これらの索引ファイルは後で IDE によってインポートできます。 このようにして、チーム内の 1 人のユーザーが手操作でコマンド・ラインによって索引ファイルを作成し、それを他のメンバーと共有することができます。 あるいは、自動化されたコマンド・ライン・ビルド・プロセスによって (例えば、夜間ビルドまたは連続稼働する統合システムの一部として) 索引を生成し、その索引を後で開発者がインポートすることもできます。


オフライン状態で索引を作成

オフライン・インデクサーは、サポート対象リモート・システム上の IBM® Rational® Developer for AIX and Linux サーバー・ディレクトリーにある シェル・スクリプト offlineIndexer.sh によって実行できます。 コマンド・フォーマットは以下のとおりです。

offlineIndexer.sh $SOURCE_DIRECTORY_INFULLPATH $OFFLINE_INDEXER_CONFIGFILE_INFULLPATH

ここで、$SOURCE_DIRECTORY_INFULLPATH はソース・コード・ディレクトリーの絶対パスで、$OFFLINE_INDEXER_CONFIGFILE_INFULLPATH は オフライン・インデクサー構成プロパティー・ファイル (このファイルのフォーマットについては、下記を参照) の絶対パスです。

索引付けが完了した後、オフライン索引 zip がソース・コード・ディレクトリーの下の .standalone_index ディレクトリーに作成されます。

オフライン・インデクサーの構成


オフライン・インデクサーは、Java プロパティー・フォーマット (一般に、それぞれの行のフォーマットは PROPERTY=VALUE) に準拠する プロパティー・ファイルによって構成されます。 下の表に、許可されているプロパティーがリストされています。 デフォルト値がリストされているプロパティーは、値が指定されなかった場合、そのデフォルト値を使用します。

テンプレート構成プロパティー・ファイル offlineIndex_config.properties が用意されています。

プロパティー デフォルト値 説明
offlineIndexer_log_filename なし 進行状況および情報が記録されるファイルの絶対パス。 デフォルトで、このログは stdout に出力されます。
trace_level 0 ロギング・トレース・レベル: 0 - エラー・メッセージを記録、1 - エラーおよび情報を記録
build_log_filename なし ビルド・ログ・ファイルの絶対パス。オフライン・インデクサーはこのファイルを構文解析して、ビルド・プロセスによって指定されたインクルード・パスおよびマクロを見つけることができます。 これらのマクロおよびインクルード・パスは、ソース・コードが索引付けされるとき、パーサーを構成するために使用されます。
build_directory なし ビルド・ログが生成されたときに使用された作業ディレクトリーの絶対パス。
projectScope_language_nature C/C++ プロジェクトの言語タイプ (C/C++ または C)
projectScope_complier_name XL ソース・コードをビルドするために使用されたコンパイラー。 これは、さまざまなコンパイラーが異なる言語ダイアレクトをサポートしているため、どのようにコードが構文解析されるかに影響します。 許容値 XL または GNU です。
compiler_executable_directory XL の場合は /usr/vacpp/bin/
GNU の場合は and /usr/bin/
コンパイラー実行可能ファイル・ディレクトリー。 コンパイラーの組み込みマクロおよびインクルード・パスを判別するため、コンパイラーを起動するときに使用されます。
projectScope_includePathes なし ソース・コードを構文解析するときに使用される、追加のインクルード・パス。
projectScope_macros   ソース・コードを構文解析するときに使用される、追加のマクロ。
projectScope_encoding Cp1252 ソース・ファイルのユニコード・コード・ページ。 この設定は、ファイル特定の設定が行われていないソース・ファイルすべてに使用されるデフォルトになります。
$filename_encoding   個別のファイルの特定のユニコード・コード・ページ・マッピングを指定します。 プロパティー・キーのファイル名は、索引付けされるソース・ディレクトリーに相対的な名前でなければなりません。
indexAllFiles true ビルドされたかどうかに関係なく、すべてのファイルが構文解析されるかどうかを示すブール値。 受け入れ可能な値は true および false です。
skipReferences false インデクサーが ID 参照のすべてをスキップするかどうかを示すブール値。 受け入れ可能な値は true および false です。
skipTypeReferences false インデクサーがタイプ参照をスキップするかどうかを示すブール値。 受け入れ可能な値は true および false です。
skipMacroReferences false インデクサーがマクロ参照をスキップするかどうかを示すブール値。 受け入れ可能な値は true および false です。
SUPPORT_VECTOR_TYPES true ベクトル・タイプの XL コンパイラー言語拡張が可能であるかどうかを示すブール値。
SUPPORT_DECIMAL_FLOATING_POINT_TYPES true 10 進浮動小数点タイプの XL コンパイラー言語拡張が可能であるかどうかを示すブール値。
SUPPORT_COMPLEX_IN_CPP true 複素数タイプの XL コンパイラー言語拡張が可能であるかどうかを示すブール値。
SUPPORT_RESTRICT_IN_CPP true 「restrict」キーワードの XL コンパイラー言語拡張が C++ ファイルに対して可能であるかどうかを示すブール値。
SUPPORT_STATIC_ASSERT true 静的アサーションの XL コンパイラー言語拡張が可能であるかどうかを示すブール値。

索引のインポート


索引ファイルは、リモート C/C++ プロジェクト作成中にそのプロジェクトに、または既存のリモート C/C++ プロジェクトにインポートできます。

  1. プロジェクト作成中:

  2. 索引のインポート

  3. 索引を既存のリモート C/C++ プロジェクトにインポート:

  4. 索引のインポート

  5. インポートが完了した後、索引のインポートが完了したことを確認するためのメッセージ・ダイアログが表示されます。

  6. インポート完了

  7. 注: インポートする索引が、ご使用のリモート C/C++ プロジェクトとは異なる設定で作成されている可能性があります。 この場合、さらに 2 つのオプション (索引のインポートを続行するか、または代わりにプロジェクトを再索引付けするか) が用意されている 別のダイアログ・ページが表示されることがあります。

  8. 異なる設定

  9. インポートが失敗すると、代わりに索引を再ビルドするかどうかを確認するダイアログが表示されます。

  10. インポート失敗