我对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