我想添加自定义命令,以便生成中间文件并将其传递给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的新手,无法摆脱这个问题。有人可以在这一部分阐明。提前谢谢。