[CMake] 答复: I can use add_custom_command in cmake

suds suds1980 at 126.com
Wed May 5 22:44:21 EDT 2010


Thank you very much, Michael.  It works 


-----邮件原件-----
发件人: Michael Wild [mailto:themiwi at gmail.com] 
发送时间: 2010年5月5日 20:06
收件人: suds
抄送: cmake at cmake.org
主题: Re: [CMake] I can use add_custom_command in cmake


On 5. May, 2010, at 10:20 , suds wrote:

> Hi there:
> I am new to cmake and I am using Kdevelop, actually , I am new to linux.
> In my project, there are some ice slice files which must be custom 
> parsed and generate some cpp/h files.
> So I use the command below to tell cmake to call slice2cpp to generate 
> the cpp/h files.
> But every times I build the project, no cpp/h files were generate, and 
> I event can not find why.
> The only error message I can see is to tell me that the target source 
> file was not found ( because this file was not generated ) I can't 
> figure out wht happend, and I even don't know to to trace the poblem 
> Any help on this is appreciated
> 
> 
> add_custom_command( OUTPUT ../TianShanIce.cpp
>                COMMAND /opt/Ice-3.3/bin/slice2cpp -I 
> /opt/Ice-3.3/slice/ -I../ --output-dir ../ ../TianShanIce.ICE
>                DEPENDS ../TianShanIce.ICE ) add_library(TianShanIce 
> SHARED ../TianShanIce.cpp)
> 
> 
> 
> Suds

Always use full paths in custom commands (and use find_program)

find_program(SLICE2CPP_EXECUTABLE slice2cpp PATHS /opt/Ice-3.3/bin)

set(out_dir "${CMAKE_CURRENT_BINARY_DIR}/.."
set(out_file "${out_dir}/TianShanIce.cpp") add_custom_command(OUTPUT
"${out_file}"
  COMMAND "${SLICE2CPP_EXECUTABLE}"
    -I /opt/Ice-3.3/slice/
    -I "${out_dir}"
    --output-dir "${out_dir}"
    "${CMAKE_CURRENT_SOURCE_DIR}/../TianShanIce.ICE"
  )
add_library(TianShanIce SHARED "${out_file}")

Hope this helps

Michael




More information about the CMake mailing list