簡體   English   中英

使用CMake在構建后運行C ++程序

[英]Use CMake to run a C++ program post-build

我有一個用C ++編寫的應用程序,我使用CMake來構建和發布二進制文件。

我想讓CMakeLists.txt腳本編譯並運行一個CPP文件,該文件用於在為應用程序構建二進制文件后對許可證文件加時間戳並加密。 我見過運行execute_process命令的例子,例如:

execute_process(COMMAND "gcc -o foo foo.cpp"
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
execute_process(COMMAND "./foo"
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                RESULT_VARIABLE MY_FOO_VAR)

我正在使用Visual Studio 2010在Windows上進行構建。 問題是我不確定如何在VS的構建過程中讓CMake運行程序。 我希望構建操作中的最后一件事是許可文件時間戳,但我對VS或CMake的了解還不夠。

你說你想在構建后運行該文件 execute_process()在CMake時運行,而不是在構建時運行。 您正在尋找的是add_custom_command()

add_executable(LicenseStamper stamper.cpp)

add_custom_command(
  OUTPUT stamped_file.lic
  COMMAND LicenseStamper any other arguments
  DEPENDS any/dependency.file
  COMMENT "Stamping the license"
  VERBATIM
)

add_custom_target(
  StampTheLicense ALL
  DEPENDS stamped_file.lic
)

自定義命令將運行可執行文件(如有必要,首先構建它)。 自定義目標將驅動自定義命令 - 它取決於命令的輸出,因此在構建目標時,它將需要構建其依賴項,從而導致自定義命令運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM