2016-08-27 5 views
1

私は、プロジェクト用にわずかに修正されたバージョンのGCCをビルドし、残りのプロジェクトをコンパイルする必要があります。私はこれを行うための最善の方法は何か不思議です。私は現在ExternalProject_Addを使って他のバイナリの依存関係としてコンパイラをビルドしていますが、プロジェクトの一部のコンパイラの変更方法はわかりません。コンパイラを外部プロジェクトとしてコンパイルして使用しますか?

+0

LLVMのCMake Guruは同じ問題に直面しています。多分彼の解決策をチェックアウトする:http://lists.llvm.org/pipermail/llvm-dev/2016-August/104174.html – usr1234567

答えて

1

あなたの最善の策はおそらくスーパービルドとしてものを構成することです。トップレベルプロジェクトには、ExternalProject_Addを使用して構築された2つのサブプロジェクトがあります。コンパイラは最初のサブプロジェクトになり、2番目のプロジェクトは実際のプロジェクトになります。実際のプロジェクトでは、実際のサブプロジェクトをコンパイラサブプロジェクトに依存させることでコンパイラを利用できます。

第2の代替案はdiscussed hereです。実際のプロジェクトはトップレベルプロジェクトのままですが、コンパイラはexternal_process()によって呼び出されるサブビルドとしてビルドされています。私は現実の世界の状況にこのアプローチを使用しましたが、動作している間に、私はそれが少し洗練され、おそらく他の開発者が理解しているので、選択肢があれば個人的にはまだスーパービルドのアプローチになります。

最後に、hunterのようなものがあなたのためにコンパイラを構築できるかどうかを検討してください。どのようにGCCにパッチを当てる必要があるかによって、これは最も魅力的なアプローチかもしれません。

0

私は2つのCMakeプロジェクトを使用します.1つはコンパイラをビルドし、もう1つはビルドしたコンパイラで実際のプロジェクトをビルドします。 CMakeコンパイラは、CMakeのような不可欠な部分です。

すべてのプロジェクトを1つのプロジェクトにまとめたい場合は、実際のプロジェクトをadd_custom_commandと呼んでサブフォルダを呼び出すことができます。ユーザーとしては、これはより驚くかもしれませんが、より良い統合につながる可能性があります。

関連する問題