2
我正在尋找一種在包裝完成後執行代碼的方法。Cmake:後包裝步驟
我試圖添加一個自定義目標,這取決於生成的PACKAGE目標。 這看起來像它不工作,這裏的cmake的錯誤:
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
"ALL_BUILD" of type UTILITY
depends on "UPLOAD" (strong)
"PACKAGE" of type GLOBAL_TARGET
depends on "ALL_BUILD" (strong)
"UPLOAD" of type UTILITY
depends on "PACKAGE" (strong)
At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.
要做到這一點我用下面的代碼:
add_custom_target(UPLOAD ALL
COMMAND cmake -E echo "Should be post packging!"
)
add_dependencies(UPLOAD PACKAGE)
是否有某種方式有目標上傳打包的文件?
在這種情況下,我必須配置CPack而不使用cmake?或者是否有一種方法來配置cmake與cmake,而不包括整個cpackConfig(使用由cmake包括(cpack)生成的一個。 否則,從cmake包括cpack,我可以在子命令中動態生成CPACK_PACKAGE_FILE_NAME var。 –
我不明白這個問題,你是否嘗試過我發佈的內容? – steveire
是的,我做了。它輸出沒有指定生成器,這意味着沒有找到「CPackConfig.cmake」文件,我已經猜到了,它是包裝的配置文件(我從cmake中刪除了include(cpack),清理並重建)。事實是,我正在從cmake配置CPackConfig文件,其中一些變量並不是一成不變的,就像在包中複製的文件一樣(dll,so,configuration等等) 當重用舊的CPackConfig文件,但它確實工作,但是隻在發佈時沒有進行調試,並且在我拿到文件的那一刻,我也只會設置文件。 –