add_custom_command()无法正常工作

时间:2016-04-28 12:16:10

标签: build cmake

我想添加自定义命令,以便生成中间文件并将其传递给add_library()。我在下面尝试但似乎没有工作,因为没有创建moc cpp文件。

set( MOCKFILES
  a.h  
  b.h
  c.h)

set(QTMOCEXE ../../../../../../../XXXX/external/Qt/5.5.0/compilers/moc.exe)
set(MOCOPTION -DUNICODE -DWIN32 -DQT_THREAD_SUPPORT
              -DQT_CORE_LIB -DQT_GUI_LIB -DQT_XML_LIB
              -DADMATERIALUI_LIB -D_WINDLL)

foreach(_file ${MOCKFILES})
    string(LENGTH ${_file} length)
    string(FIND ${_file} "/" FileNameTemp REVERSE)
    string(SUBSTRING ${_file} ${FileNameTemp} ${length} FileName)
    #get_filename_component(${_file} FileName)
    add_custom_command(
        OUTPUT moc_${FileName}.cpp
        COMMAND QTMOCEXE MOCOPTION ${_file} -o moc_${FileName}.cpp
        COMMENT here we go!
        )
endforeach()

我的想法是使用qt MOC创建中间moc文件(从* .h生成)。我不想使用set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)。 我是CMake的新手,无法摆脱这个问题。有人可以在这一部分阐明。提前谢谢。

0 个答案:

没有答案