Build 添加\u自定义\u命令()不工作CMake

Build 添加\u自定义\u命令()不工作CMake,build,cmake,Build,Cmake,我想添加自定义命令,以便生成中间文件并将其传递给add_library()。我在下面尝试过,但它似乎不起作用,因为没有创建moccpp文件 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 -

我想添加自定义命令,以便生成中间文件并将其传递给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生成)。我不想使用
集合(CMAKE\u AUTOMOC ON)集合(CMAKE\u INCLUDE\u CURRENT\u DIR ON)

我是CMake的新手,无法摆脱这个问题。谁能给这部分照点光吗。提前谢谢。

你有什么问题?更重要的是:automoc出了什么问题?特别是对于新手,他们应该坚持使用该路径,不要试图绕过该工具提供的机制。
add_custom_命令
不会生成文件,直到某个目标(使用
add_executable
add_library
add_custom_target
创建)依赖于该文件。添加调用,比如
Add_executable(my_exe a.cpp b.cpp c.cpp)
,一切都会正常工作。你的问题是什么?更重要的是:automoc出了什么问题?特别是对于新手,他们应该坚持使用该路径,不要试图绕过该工具提供的机制。
add_custom_命令
不会生成文件,直到某个目标(使用
add_executable
add_library
add_custom_target
创建)依赖于该文件。添加调用,如添加可执行文件(my_exe a.cpp b.cpp c.cpp),一切都将正常工作。