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