0
我正在製作一個帶有外部項目的CMAKE文件。我在這裏的例子如下: CMake ExternalProject_Add() and FindPackage()重新掃描CMake並傳遞參數
但是,我有一個問題。當我打電話給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
)
這有助於感謝。但是,如果有人使用-T或-A,我是否需要處理每個案例,或者是否有什麼可以讓我將所有內容傳遞給cmake? – Stewart
各自的變量是'CMAKE_GENERATOR_TOOLSET'和'CMAKE_GENERATOR_PLATFORM'。 – arrowd
這個答案有助於-T和-A情況,但是我還沒有考慮過的情況呢?例如,如果某人傳遞了一個自定義的'CMAKE_INSTALL_PREFIX'會怎麼樣?我相信我錯過了很多可能性。有沒有一種通用的方式來通過一切? – Stewart