簡體   English   中英

如何在我自己的CMake項目中包含現有的CMake git repo作為子模塊?

[英]How to include existing CMake git repo as submodule in my own CMake project?

我正在嘗試使用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++ wrapperOpenCV bindings )導入到我自己的CMake項目中? 如果我完全重寫CMake文件,我想到復制某些不依賴於其他目錄的目錄。 我不能再使用git,但這將是一個快速修復。 但是我得到了一些奇怪的錯誤,例如“stdexcept未在此范圍內聲明”,這沒有任何意義,因為它是一個標准的gc ++庫。

如果您只想啟用/禁用該庫的某些部分,只需在調用ADD_SUBDIRECTORY之前設置適當的選項ADD_SUBDIRECTORY

只需使用與庫的CMakeLists.txt相同的OPTION命令,但可以根據需要將它們設置為ON / OFF 當然,oyu可以隨意更改/選擇描述字符串。

或者(如果選項具有與true / false不同的值),則可以使用SET(.... CACHE ... )

例如

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

類似的問題: 在CMake子項目中覆蓋選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM