.qrc ファイルで参照されているファイルの内容が変更されたときに、qresource ファイルをビルドするように CMake をセットアップしたいと考えています。たとえば、qrc ファイルにパッケージ化された qml ファイルがいくつかあり、qml ファイルが変更された場合は qrc を再コンパイルする必要があります。
リソース コンパイラを実行する次のマクロがありますが、リソース ファイル自体が変更された場合にのみ再構築されます。
MACRO(PYQT5_WRAP_RC outfiles)
FOREACH(it ${ARGN})
GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
SET(outfile ${CMAKE_CURRENT_SOURCE_DIR}/${outfile}_rc.py)
ADD_CUSTOM_TARGET(${it} ALL
DEPENDS ${outfile}
)
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
COMMAND ${PYRCC5BINARY} ${infile} -o ${outfile}
MAIN_DEPENDENCY ${infile}
)
SET(${outfiles} ${${outfiles}} ${outfile})
ENDFOREACH(it)
ENDMACRO (PYQT5_WRAP_RC)
マクロは次のように使用されます。
PYQT5_WRAP_RC(rc_gen file1.qrc file2.qrc ...)
qrcファイルが参照するファイルの1つが変更された場合、qrcファイルが再コンパイルされるようにするにはどうすればよいですか?
このような複雑なことをする必要がありますか?