5

OpenKinectプロジェクトを使用してプログラムを作成しようとしています。OpenKinectのマスターブランチをサブディレクトリとしてプロジェクトのソースに追加したいと思います。しかし、OpenKinect自身のCMakeを調べると、そこにはあまりにも多くのものがあり、私はすべてを必要としません。そこには、次のようにオンまたはオフに設定されている特定のオプションがあります。

OPTION(BUILD_AUDIO "Build audio support" OFF)
OPTION(BUILD_REDIST_PACKAGE "Build libfreenect in a legally-redistributable manner (only affects audio)" OFF)
OPTION(BUILD_EXAMPLES "Build example programs" ON)
OPTION(BUILD_FAKENECT "Build fakenect mock library" ON)
OPTION(BUILD_C_SYNC "Build c synchronous library" ON)
OPTION(BUILD_CPP "Build C++ Library (currently header only)" ON)
OPTION(BUILD_CV "Build OpenCV wrapper" ON)
OPTION(BUILD_AS3_SERVER "Build the Actionscript 3 Server Example" OFF)
OPTION(BUILD_PYTHON "Build Python extension" ON)
IF(PROJECT_OS_LINUX)
    OPTION(BUILD_CPACK "Build an RPM or DEB using CPack" ON)
ENDIF(PROJECT_OS_LINUX)

OpenKinectファイルに大きな変更を加えずに(必要なときにいつでもできるように)、一部のパーツ(およびなど)のみを自分のCMakeプロジェクトgit pullにインポートするにはどうすればよいですか?CMakeファイルを完全に書き直せば、他のディレクトリに依存しない特定のディレクトリをコピーすることを考えました。gitはもう使用できなくなりますが、簡単に修正できます。しかし、「stdexceptはこのスコープで宣言されていません」などの奇妙なエラーが発生します。これは、標準のgc++ライブラリであるため意味がありません。C++ wrapperOpenCV bindings

4

1 に答える 1

6

そのライブラリの一部を単に有効/無効にしたい場合は、を呼び出す前に適切なオプションを設定するだけですADD_SUBDIRECTORY

ライブラリと同じOPTIONコマンドを使用するだけですが、必要に応じて/をCMakeLists.txt設定します。もちろん、oyuは説明文字列を自由に変更/選択できます。ONOFF

または(オプションの値がtrue / falseと異なる場合)、SET(.... CACHE ... )

例えば

SET(BUILD_CPP TRUE CACHE BOOL "Build C++ Library (currently header only)")

同様の質問: CMakeサブプロジェクトのオーバーライドオプション

于 2013-01-14T08:59:14.070 に答える