Sub*_* S. 5 c++ linux build cmake openkinect
我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)
如果不对OpenKinect文件进行任何重大更改(以便我可以git pull随时使用),如何仅将某些部分(例如,C++ wrapper和OpenCV bindings)导入到我自己的CMake项目中?如果我完全重写CMake文件,我想到复制某些不依赖于其他目录的目录.我不能再使用git,但这将是一个快速修复.但是我得到了一些奇怪的错误,例如"stdexcept未在此范围内声明",这没有任何意义,因为它是一个标准的gc ++库.
如果您只想启用/禁用该库的某些部分,则可以在调用之前简单地设置相应的选项ADD_SUBDIRECTORY.
只需使用相同的选项命令,在库的CMakeLists.txt,但它们设置ON/ OFF因为你需要.当然,oyu可以随意更改/选择描述字符串.
或者(如果选项具有与true/false不同的值),则可以使用 SET(.... CACHE ... )
例如
SET(BUILD_CPP TRUE CACHE BOOL "Build C++ Library (currently header only)")
Run Code Online (Sandbox Code Playgroud)
类似的问题: 在CMake子项目中覆盖选项
| 归档时间: |
|
| 查看次数: |
3330 次 |
| 最近记录: |