build: Auto-generate resources.qrc from icons and shaders
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -28,11 +28,33 @@ endif()
|
|||||||
message(STATUS "OpenCASCADE_INCLUDE_DIRS: ${OpenCASCADE_INCLUDE_DIRS}")
|
message(STATUS "OpenCASCADE_INCLUDE_DIRS: ${OpenCASCADE_INCLUDE_DIRS}")
|
||||||
message(STATUS "OpenCASCADE_LIBRARIES: ${OpenCASCADE_LIBRARIES}")
|
message(STATUS "OpenCASCADE_LIBRARIES: ${OpenCASCADE_LIBRARIES}")
|
||||||
|
|
||||||
|
# Automatically find resource files and generate resources.qrc
|
||||||
|
set(GENERATED_QRC_FILE "${CMAKE_CURRENT_BINARY_DIR}/resources.qrc")
|
||||||
|
set(QRC_CONTENT "")
|
||||||
|
|
||||||
|
file(GLOB ICON_FILES "icons/*.svg")
|
||||||
|
string(APPEND QRC_CONTENT " <qresource prefix=\"/icons\">\n")
|
||||||
|
foreach(ICON_FILE IN LISTS ICON_FILES)
|
||||||
|
get_filename_component(ICON_ALIAS ${ICON_FILE} NAME)
|
||||||
|
string(APPEND QRC_CONTENT " <file alias=\"${ICON_ALIAS}\">${ICON_FILE}</file>\n")
|
||||||
|
endforeach()
|
||||||
|
string(APPEND QRC_CONTENT " </qresource>\n")
|
||||||
|
|
||||||
|
file(GLOB SHADER_FILES "src/shaders/*")
|
||||||
|
string(APPEND QRC_CONTENT " <qresource prefix=\"/shaders\">\n")
|
||||||
|
foreach(SHADER_FILE IN LISTS SHADER_FILES)
|
||||||
|
get_filename_component(SHADER_ALIAS ${SHADER_FILE} NAME)
|
||||||
|
string(APPEND QRC_CONTENT " <file alias=\"${SHADER_ALIAS}\">${SHADER_FILE}</file>\n")
|
||||||
|
endforeach()
|
||||||
|
string(APPEND QRC_CONTENT " </qresource>\n")
|
||||||
|
|
||||||
|
file(WRITE ${GENERATED_QRC_FILE} "<RCC>\n${QRC_CONTENT}</RCC>\n")
|
||||||
|
|
||||||
file(GLOB SOURCES "src/*.cpp")
|
file(GLOB SOURCES "src/*.cpp")
|
||||||
|
|
||||||
add_executable(OpenCAD
|
add_executable(OpenCAD
|
||||||
${SOURCES}
|
${SOURCES}
|
||||||
resources.qrc
|
${GENERATED_QRC_FILE}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(OpenCAD SYSTEM PRIVATE ${OpenCASCADE_INCLUDE_DIRS})
|
target_include_directories(OpenCAD SYSTEM PRIVATE ${OpenCASCADE_INCLUDE_DIRS})
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
<RCC>
|
|
||||||
<qresource prefix="/">
|
|
||||||
<file>icons/create-sketch.svg</file>
|
|
||||||
<file>icons/extrude.svg</file>
|
|
||||||
<file>icons/line.svg</file>
|
|
||||||
<file>icons/rectangle.svg</file>
|
|
||||||
<file>icons/circle.svg</file>
|
|
||||||
<file>icons/save-sketch.svg</file>
|
|
||||||
<file>icons/cursor.svg</file>
|
|
||||||
<file>icons/home.svg</file>
|
|
||||||
</qresource>
|
|
||||||
<qresource prefix="/shaders">
|
|
||||||
<file alias="simple.vert">src/shaders/simple.vert</file>
|
|
||||||
<file alias="simple.frag">src/shaders/simple.frag</file>
|
|
||||||
<file alias="texture.vert">src/shaders/texture.vert</file>
|
|
||||||
<file alias="texture.frag">src/shaders/texture.frag</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
||||||
Reference in New Issue
Block a user