3
# GCOMPRIS_ADD_RCC(resource_path <file list>)
5
function(GCOMPRIS_ADD_RCC resource_path)
10
cmake_parse_arguments(_RCC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
11
set(rcc_files ${_RCC_UNPARSED_ARGUMENTS})
13
get_filename_component(activity "${resource_path}" NAME)
15
if(Qt5Widgets_VERSION_STRING VERSION_LESS 5.4.2 OR WIN32)
16
# (cannot create it in the build dir because rcc expect local files)
17
# Create this QRC file
18
set(CREATED_QRC "${CMAKE_CURRENT_SOURCE_DIR}/${activity}.qrc")
20
set(CREATED_QRC "${CMAKE_CURRENT_BINARY_DIR}/${activity}.qrc")
23
set(ACTIVITY_PATH "/gcompris/src/${resource_path}")
24
file(GLOB QRC_CONTENTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${rcc_files})
25
file(GLOB QRC_CONTENTS_ABS ${CMAKE_CURRENT_SOURCE_DIR} ${rcc_files})
27
file(WRITE ${CREATED_QRC} "<RCC>\n\t<qresource prefix=\"${ACTIVITY_PATH}\">")
28
foreach(FILE ${QRC_CONTENTS})
29
file(APPEND ${CREATED_QRC} "\n\t\t<file>${FILE}</file>")
31
file(APPEND ${CREATED_QRC} "\n\t</qresource>\n</RCC>\n")
32
list(APPEND QRC_FILES ${CREATED_QRC})
34
set(CREATED_RCC ${GCOMPRIS_RCC_DIR}/${activity}.rcc)
36
if(Qt5Widgets_VERSION_STRING VERSION_LESS 5.4.2 OR WIN32)
37
set(_RCC_COMMAND ${Qt5Core_RCC_EXECUTABLE} "-binary" -o ${CREATED_RCC} ${CREATED_QRC})
39
set(_RCC_COMMAND ${Qt5Core_RCC_EXECUTABLE} "-binary" -o ${CREATED_RCC} - < ${CREATED_QRC})
42
add_custom_command(OUTPUT ${CREATED_RCC}
43
COMMAND ${_RCC_COMMAND}
44
DEPENDS ${QRC_CONTENTS} "${out_depends}" VERBATIM
45
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
48
install(FILES ${CREATED_RCC} DESTINATION ${GCOMPRIS_EXECUTABLE_NAME}.app/Contents/MacOS/rcc)
50
install(FILES ${CREATED_RCC} DESTINATION share/${GCOMPRIS_EXECUTABLE_NAME}/rcc)
55
DEPENDS createShareFolders ${CREATED_RCC} ${CREATED_QRC}
56
COMMENT "Generate ${activity} RCC"
57
SOURCES ${QRC_CONTENTS}