我對Cmake非常陌生,需要在編譯時生成一些文件。一旦生成,我需要編譯和鏈接文件。我創建了cmake makefile來編譯已生成的文件,如在Cmake中運行自定義命令
cmake_minimum_required(VERSION 2.6)
project(demo)
set(CMAKE_CXX_FLAGS "-DWITH_COOKIES")
add_library(soapC soapC.cpp soapVimBindingProxy.cpp)
add_library(stdsoap2 /home/abdullah/installs/gsoap-shah_edits/gsoap/stdsoap2.cpp)
add_executable(demo test_file.cc test_app.cc)
target_link_libraries(demo soapC stdsoap2 gsoap++)
這成功編譯了項目。但是需要首先生成文件soapC.cpp soapVimBindingProxy.cpp
。我想在運行時使用gsoap工具生成這些文件。
以下是需要運行以產生標頭文件
wsdl2h -o outfile.h infile.wsdl
這需要一個輸入WSDL文件,創建相應的outfile.h該命令。 現在我試圖在cmake這樣做
cmake_minimum_required(VERSION 2.6)
add_custom_command(
OUTPUT vsphere.h
COMMAND wsdl2h -o vsphere.h vim25/vim.wsdl
)
但是這裏出了點問題。沒有錯誤彈出,但也沒有創建文件。我錯過了什麼嗎?所有幫助非常感謝。 謝謝。
arrowdodger嗨,但我沒有看到一個應該由該命令創建的vsphere.h:由'add_custom_command創建/ – Abdullah 2012-07-09 07:12:06
司令部()'沒有運行,當你鍵入'make'。你需要用'ALL'關鍵字來'add_custom_target()',並使其依賴於由命令產生的文件。 – arrowd 2012-07-09 07:50:04
非常感謝!它的工作:) – Abdullah 2012-07-09 08:13:51