我想通过MainTabBarViewController
:
target_sources
如果资源只包含单个文件,那么一切正常,但如何为文件列表实现语义qt5_add_resources(RESOURCES "${PROJECT_NAME}.qrc")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
qt5_add_resources(RESOURCES "${PROJECT_NAME}_import.qrc")
endif()
set_property(SOURCE ${RESOURCES} PROPERTY SKIP_AUTOGEN ON)
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS} ${RESOURCES} ${QM_FILES})
if (EXISTS ${RESOURCES})
target_sources(${PROJECT_NAME} INTERFACE ${RESOURCES})
endif()
?
这种技巧的目的是简化静态库中资源的加载:生成的if(EXISTS ${FILE_LIST})
源文件成为生成的可执行文件的一部分,而无需调用qrc_*.cpp
。这种方法的缺点是需要重建所有子目标两次。