Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 防止';保持清洁';从ExternalProject或使用CMake添加自定义清理_C++_Makefile_Cmake_External Project - Fatal编程技术网

C++ 防止';保持清洁';从ExternalProject或使用CMake添加自定义清理

C++ 防止';保持清洁';从ExternalProject或使用CMake添加自定义清理,c++,makefile,cmake,external-project,C++,Makefile,Cmake,External Project,我的项目有一个外部项目,我使用CMakeExternalProject\u add命令使用它自己的CMake添加该项目 每次我添加标志或执行重建时,外部项目也会重建,而且需要很长时间 (外部项目的重建包括提取和动态库构建) 在重建项目时,如何防止其重建 ExternalProject.cmake: 您的标题专门询问了有关清理,但问题的主体似乎更为笼统。我倾向于认为您所描述的行为是正常的和预期的,因此,解决这种情况的最佳方法可能是在您不需要时避免make clean(在一个结构良好的项目中,您应该

我的项目有一个外部项目,我使用CMake
ExternalProject\u add
命令使用它自己的CMake添加该项目

每次我添加标志或执行重建时,外部项目也会重建,而且需要很长时间 (外部项目的重建包括提取和动态库构建)

在重建项目时,如何防止其重建

ExternalProject.cmake:
您的标题专门询问了有关
清理
,但问题的主体似乎更为笼统。我倾向于认为您所描述的行为是正常的和预期的,因此,解决这种情况的最佳方法可能是在您不需要时避免
make clean
(在一个结构良好的项目中,您应该很少需要它)。或者您根本不想要外部项目,而是一个完全独立的依赖项。您的标题专门询问了
makeclean
,但问题的主体似乎更一般。我倾向于认为您描述的行为是正常的和预期的,因此,解决这种情况的最佳方法可能是避免在您不需要它的时候(而且在一个结构良好的项目中您应该很少需要它)。或者您根本不想要外部项目,而是完全独立的依赖关系。
include(ExternalProject)

ExternalProject_Add(project
    PREFIX              ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/external
    URL                 ${THIRD_PARTY_SRC}/archives/project.tar.gz
    INSTALL_DIR         ${THIRD_PARTY_SRC}/install
    CONFIGURE_COMMAND
    ${CMAKE_COMMAND}    -E env
    ${EXTERNAL_PROJECT_TOOLS}
    <SOURCE_DIR>/configure.py
    --prefix=<INSTALL_DIR>
    ${EXTERNAL_PROJECT_CPU}
    BUILD_COMMAND ${MAKE}
    )
set(PROJECT externalProject)
add_library(externalProject SHARED IMPORTED)
set_property(TARGET externalProject PROPERTY IMPORTED_LOCATION ${THIRD_PARTY_SRC}/install/lib/externalProject.so)