【发布时间】:2017-04-15 20:19:03
【问题描述】:
我正在使用外部项目制作 CMAKE 文件。我在这里按照示例进行操作: CMake ExternalProject_Add() and FindPackage()
但是,我有一个问题。当我调用 cmake 时,我使用cmake -G "MinGW Makefiles" ..。不幸的是, -G 参数似乎没有被传递到重新扫描目标中。如何将适用的 Cmake 命令中继到任何重新扫描?
我认为这是我需要改变的地方
add_custom_target(Rescan ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} DEPENDS Eigen3)
这里是 CMakeLists.txt:
find_package( Dep1 )
include (ExternalProject)
ExternalProject_Add (
Dep1
SVN_REPOSITORY https://svn.company.nl/svn/Dep1-trunk
SVN_REVISION -rHEAD
TIMEOUT 10
)
if (NOT Dep1_FOUND )
add_custom_target(Rescan ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} DEPENDS Dep1)
else (NOT Dep1_FOUND)
add_custom_target(Rescan)
endif (NOT Dep1_FOUND)
#build app
add_executable( Testapp main.cpp )
add_dependencies( Testapp Rescan )
if (${Dep1_FOUND})
target_include_directories( Testapp PUBLIC ${Dep1_INCLUDE_DIR} )
target_link_libraries( Testapp ${Dep1_LIBRARY} )
endif (${Dep1_FOUND})
#Install package
install(TARGETS Testapp EXPORT ${PROJECT_NAME}Targets
RUNTIME DESTINATION bin
)
【问题讨论】:
标签: cmake dependency-management