11

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

しかし、少し文脈を与える必要があるかもしれません。PETSc (および SLEPc) をコードに統合しようとしています。SLEPc を使用した例のコードを次に示します (ただし、PETSc はほとんど同じです)。

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

include ${SLEPC_DIR}/conf/slepc_common

ご覧のとおり、他の多くのメイクファイルを含む特定のメイクファイルを含める必要があります。これは少し奇妙です。なぜなら、単にインクルード ディレクトリを作成する方が簡単だったように思われるからです。とにかく、私の最初の解決策は、必要なメイクファイルを単純に含めて、それが機能するかどうかを確認することでした。

4

1 に答える 1

1

Makefile は生成段階で生成され、CMake のコア原則の 1 つはそれをクロスプラットフォームにすることであるため、この要件は CMake の設計モデルにはまったく適合しないと思います。したがって、より良いアイデアは次のようになります。

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

労力が膨大な場合は、add_custom_target/add_custom_commandを使用して、生成されたファイルを微調整するためのすぐに使用できるコマンドを実行できますが、それらもかなりの労力を必要とします - マニュアルを読んで、より多くの機会を探してください。

于 2013-08-11T05:50:30.867 に答える