組織全体で設定された特定の標準に従うCプロジェクトレイアウトを作成するために、EclipseCDTプラグインを作成しました。プロジェクト/製品の依存関係を定義するある種のXMLファイルを維持しています。つまり、すべての製品には、その製品に含まれるソースファイル/ヘッダーを定義するXMLファイルがあります。
そのため、Eclipse CDTにCプロジェクトをインポートする場合、標準のCDTプロジェクト設定に従う代わりに、プラグインは製品名を入力として受け取り、製品のXMLを解析して、適切なソースファイルを含むCプロジェクトを生成します。
Eclipseで次のAPIとリンクされたリソースの概念を使用して、ソースファイルをCプロジェクトに添付することができました。
org.eclipse.core.resources.IFolder
org.eclipse.core.resources.IFile
次のクラスを使用して、同じCプロジェクトにヘッダーファイルを添付することもできました。
org.eclipse.cdt.core.model.IIncludeEntry
注:入力としてincudeディレクトリーを使用してIIncludeEntryインスタンスを作成しました。Eclipseのスキャナー検出メカニズムは、各ディレクトリー内の個々のソースファイルを識別し、Cプロジェクトの「Includes」タグの下にそれらを表示します。
これで、Cプロジェクトの「Source」タグの下にソースファイルが表示され、「Includes」タグの下にヘッダーファイルが表示されます。問題なくソースファイルを変更およびビルドできました。
ただし、ヘッダーファイルは編集できませんでした。[プロジェクト]>>[プロパティ]>>[C / C++一般]>> [パスとシンボル]を使用して外部ヘッダーファイルを手動で追加すると、すべてが正常に機能し、ファイルを編集できます。
また、IIncludeFileEntryへの個々のヘッダーファイルパスを指定することにより、 IIncludeEntryの代わりにorg.eclipse.cdt.core.model.IIncludeFileEntryを使用しようとしました。しかし、EclipseはIIncludeFileEntryで何も識別していません。
ヘッダーファイルを作成/Cプロジェクトに添付するためのCDTAPIとは何ですか?Eclipse CDTはどのようにそれらを作成しますか?