我已经(大部分)成功地为googletest设置了ExternalProject_Add。但是,我注意到诸如我选择的C++编译器、构建类型等内容不会自动转发到ExternalProject。我可以通过在对ExternalProject_Add的调用中将其添加到CMAKE_ARGS来轻松添加任何给定标志,如下所示:CMAKE_ARGS-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}但是,这需要我枚举所有应该转发到googletests的CMake调用的可能参数,而且这个列表非常庞大。我还需要为我想要的每个其他ExternalProject_Add
我想在一个项目中使用BamTools库。我正在使用CMakeExternalProject_Add来执行此操作。CMake可以很好地克隆和编译BamToolsGitHub存储库,但无论我尝试什么,我都无法正确链接它。有人有什么想法吗?这是我的CMakeLists.txtcmake_minimum_required(VERSION2.8)project(myProject)include(ExternalProject)set(CMAKE_C_FLAGS"-Wall-g")set(BAMTOOLS_ROOT${CMAKE_CURRENT_BINARY_DIR}/external/bamt
问题:我正在CMake中构建一个外部项目。该项目有一个最终生成共享对象的Makefile。我想在我的super项目中链接并安装这个对象,就像它是项目中的库之一一样。问题是ExternalProjectlib使用相对路径而不是绝对路径链接到我的应用程序和库中,这会在从CMake放置它的位置之外的任何目录运行时导致问题。我有createdasampleSSCCEexampleproject展示我的整体设置。如果需要,请随意阅读和编译(gitclonehttps://github.com/calebwherry/cmake-SO-question-main--recursive&&cdcma
我想构建openssl并将我的项目链接到它。在我的项目中,我有一个名为net的库,它是使用openssl的部分。所以在我的net\CMakeList中,我添加了include_directories(../+../../../ext/openssl/inc32/)add_library(netSTATIC${sources})+ADD_DEPENDENCIES(netopenssl)在我用于组织所有外部库的ext文件夹中,我在名为openssl的文件夹中有一个新的解压缩的openssl源代码。然后我编辑了ext\CmakeListmessage(STATUS"ConfiguringOp
我需要根据操作系统更改以下代码中的cmakePREFIX。它是这样尝试的:INCLUDE(ExternalProject)EXTERNALPROJECT_ADD(libconfigURL${CMAKE_CURRENT_SOURCE_DIR}/libconfig-1.4.8.tar.gzIF(APPLE)#MacdetectedPREFIXlibconfig/libconfig-1.4.8ENDIF(APPLE)IF(UNIX)PREFIXlibconfigENDIF(UNIX)CONFIGURE_COMMAND/configure--prefix=--disable-examples#
是否有正确的方法来查找使用ExternalProject_Add()构建的库(通过FindPackage())?问题是CMake在CMake时找不到库,因为外部库是在编译时构建的。我知道在super构建中构建库和项目时可以结合这两个CMake函数,但我想在普通CMake项目中使用它。事实上,我想用ExternalProject_Add构建VTK6,并在我的CMake项目中使用FindPackage找到它。 最佳答案 有办法做到这一点。但这有点骇人听闻。您基本上添加了一个自定义目标,在构建期间重新运行cmake。您必须在一个小型测试项