【发布时间】:2013-01-13 21:12:44
【问题描述】:
我正在尝试使用OpenKinect 项目编写一些程序。我想将 OpenKinect 的主分支作为子目录添加到我的项目源中。但是,如果你查看 OpenKinect 自己的 CMake,那里的东西太多了,我不需要所有东西。那里有某些选项,它们被设置为 ON 或 OFF,如下所示:
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 文件进行任何重大更改的情况下(以便我可以在需要时随时 git pull),如何仅将某些部分(例如,C++ wrapper 和 OpenCV bindings)导入我自己的CMake 项目?如果我完全重写 CMake 文件,我想复制某些不依赖于其他目录的目录。我将无法再使用 git,但这将是一个快速修复。但是这样我得到了奇怪的错误,例如“stdexcept 没有在这个范围内声明”,这是没有意义的,因为它是一个标准的 gc++ 库。
【问题讨论】:
-
为什么不“分叉” OpenKinect 并将您的更改保存在单独的分支中。这样,您可以继续从 git-OpenKinect 中“拉取”更新,同时将您的“修改”保留在单独的分支上。然后你就可以按照 Johannes S 的建议去做。
标签: c++ linux build cmake openkinect