gpt4 book ai didi

git - 在构建外部项目时,cmake不断忽略GIT_TAG

转载 作者:行者123 更新时间:2023-12-02 17:35:31 25 4
gpt4 key购买 nike

我项目中的依赖项之一是OpenCV,它是从源代码编译的。下载后,cmake总是尝试 checkout 编译最新的主提交,我需要标记3.4.2。 cmake版本为3.1.3。这是cmake脚本的相关部分:

include(ExternalProject)
set(OCV_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=. -DCMAKE_SOURCE_DIR=${SOURCE_DIR}
-DCMAKE_BINARY_DIR=${BINARY_DIR} -DENABLE_FAST_MATH=ON -DWITH_EIGEN=1
-DWITH_TBB=ON -DENABLE_BUILD_HARDENING=ON
-DWITH_MATLAB=ON -DWITH_GTK=ON -DWITH_GTK_2_X=ON
-DBUILD_LIST=core,features2d,highgui,improc,calib3d,imgcodecs,videoio,video)

if( NOT OCV_TAG )
set(OCV_TAG 3.4.2)
endif()

ExternalProject_Add(opencv
DOWNLOAD_COMMAND git clone https://github.com/opencv/opencv.git opencv
DOWNLOAD_DIR ${CMAKE_INSTALL_PREFIX}/src/lib/
GIT_TAG "${OCV_TAG}"
SOURCE_DIR ${CMAKE_INSTALL_PREFIX}/src/lib/opencv
BINARY_DIR ${CMAKE_INSTALL_PREFIX}/bin/lib/opencv
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin/lib/opencv
TMP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tmp
CMAKE_ARGS ${OCV_CMAKE_ARGS}
BUILD_COMMAND make -j ${N}
INSTALL_COMMAND make install
UPDATE_COMMAND
TEST_COMMAND make -j ${N} # make in the end because of some bug (?) that breaks links for libraries
BUILD_IN_SOURCE 0
BUILD_ALWAYS 0
DOWNLOAD_NO_PROGRESS 0
UPDATE_DISCONNECTED 1
LOG_DOWNLOAD 0
LOG_CONFIGURE 0
LOG_INSTALL 0
LOG_BUILD 0
LOG_UPDATE 0
LOG_TEST 0
GIT_PROGRESS 1
)

我尝试了相关GIT_TAG字符串的以下变体:

if( NOT OCV_TAG )
set(OCV_TAG "3.4.2")
endif()
...
GIT_TAG "${OCV_TAG}"

GIT_TAG     "3.4.2"

GIT_TAG     3.4.2

GIT_TAG     origin/master/3.4.2

GIT_TAG     master/3.4.2

而且,即使按照文档说明它也必须工作,但没有任何工作。有人遇到了这个问题/或者有cmake 3.1.3的实际工作示例吗?
谢谢!

最佳答案

当CMake自己执行项目下载时,选项GIT_TAG仅与GIT_REPOSITORY一结合使用。

如果您手动执行下载(通过DOWNLOAD_COMMAND),那么您也应该手动调整分支。

关于git - 在构建外部项目时,cmake不断忽略GIT_TAG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51548320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com