diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index e8e1322f8ebf6d6451f2972f40d1c3eb091beb0e..9e962e34106ebeff7355d7642799ea51645d4b64 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -44,23 +44,27 @@ target_include_directories(hello target_link_libraries(hello ${LeanQT_Lib}) +# 定义生成 moc 文件的宏 +macro(generate_moc_files HEADER_FILES MOC_SOURCES LeanQt_Moc) + foreach(header_file ${HEADER_FILES}) + get_filename_component(header_base ${header_file} NAME_WE) + set(moc_output "${CMAKE_CURRENT_BINARY_DIR}/clock_moc/moc_${header_base}.cpp") + add_custom_command( + OUTPUT ${moc_output} + COMMAND ${LeanQt_Moc} ${CMAKE_CURRENT_SOURCE_DIR}/${header_file} -o ${moc_output} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${header_file} + ) + list(APPEND ${MOC_SOURCES} ${moc_output}) + endforeach() +endmacro() if(1) #disable clock now set(HEADER_FILES rasterwindow.h) set(MOC_SOURCES) -# 为每个头文件生成对应的 moc 文件 -foreach(header_file ${HEADER_FILES}) - get_filename_component(header_base ${header_file} NAME_WE) - set(moc_output "${CMAKE_CURRENT_BINARY_DIR}/clock_moc/moc_${header_base}.cpp") - add_custom_command( - OUTPUT ${moc_output} - COMMAND ${LeanQt_Moc} ${CMAKE_CURRENT_SOURCE_DIR}/${header_file} -o ${moc_output} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${header_file} - ) - list(APPEND MOC_SOURCES ${moc_output}) -endforeach() +# 调用宏生成 moc 文件 +generate_moc_files("${HEADER_FILES}" MOC_SOURCES ${LeanQt_Moc}) set(clock_src rasterwindow.cpp clock.cpp ${MOC_SOURCES})