2012-07-30 10 views
7

自分のソフトウェアのmakefileに外部のライブラリからmakefileを含めたいと思っています。最も簡単なのは、Makefileに相当するCMakeコードをinclude ${dir}/makefileとすることです。CMakeで外部メイクファイルを含める

しかし多分私は少しの文脈を与えるべきです。私は自分のコードにPETSc(とSLEPc)を統合しようとしています。 (PETScはほとんど同じですが)ここでSLEPcを使った例からいくつかのコードは次のとおりです。

hello: hello.o chkopts 
     -${CLINKER} -o hello hello.o ${SLEPC_LIB} 
     ${RM} hello.o 

include ${SLEPC_DIR}/conf/slepc_common 

あなたが見ることができるように、それは他のmakefileの束を含み、特定のmakefileを含めるが必要です。インクルードディレクトリを持っているほうが単純だったように思えるので、これはちょっと奇妙ですが、明らかに私が理解する以上にそれがあります。とにかく、私の最初の解決策は、必要なmakefileを単純にインクルードし、それが動作するかどうかを確認することでした。

答えて

0

CMakeの一部として​​があります。ポリシースコープを適切に設定すると(2.8と思うまで動作しませんでした)、PROJECTメソッドの重複した使用を処理して、望ましい結果を得なければなりません。私は確かにこれを試していないが、それはショットの価値がある。

1

は、私はそれをクロスプラットフォームを作ることですcmakeののコア原則の生成フェーズと1の間のすべてのMakefileが生成されたようにCMakeの設計モデルに適合しないこの要件を信じているので、良いアイデアがかもしれません:

  1. CMakeのスクリプトで外部のビルドシステムを書き直し
  2. プロジェクトで
をCMakeのスクリプトを含めます

努力が大きい場合は、add_custom_target/add_custom_commandを使用して、生成されたファイルを調整するためにいくつかのデフォルトのコマンドを実行できますが、これらはまた、マニュアルを読み、より多くの機会を求めるだけです。

関連する問題