~baltix/gcompris-qt/0.97.1

« back to all changes in this revision

Viewing changes to cmake/rcc.cmake

  • Committer: Mantas Kriaučiūnas
  • Date: 2020-07-06 18:07:11 UTC
  • Revision ID: baltix@gmail.com-20200706180711-g254osu02cn8bc8p
GCompris-QT 0.97.1 with Lithuanian translation

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#
 
3
# GCOMPRIS_ADD_RCC(resource_path <file list>)
 
4
#
 
5
function(GCOMPRIS_ADD_RCC resource_path)
 
6
 
 
7
  set(options)
 
8
  set(oneValueArgs)
 
9
  set(multiValueArgs)
 
10
  cmake_parse_arguments(_RCC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
11
  set(rcc_files ${_RCC_UNPARSED_ARGUMENTS})
 
12
 
 
13
  get_filename_component(activity "${resource_path}" NAME)
 
14
 
 
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")
 
19
  else()
 
20
    set(CREATED_QRC "${CMAKE_CURRENT_BINARY_DIR}/${activity}.qrc")
 
21
  endif()
 
22
 
 
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})
 
26
 
 
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>")
 
30
  endforeach()
 
31
  file(APPEND ${CREATED_QRC} "\n\t</qresource>\n</RCC>\n")
 
32
  list(APPEND QRC_FILES ${CREATED_QRC})
 
33
 
 
34
  set(CREATED_RCC ${GCOMPRIS_RCC_DIR}/${activity}.rcc)
 
35
 
 
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})
 
38
  else()
 
39
    set(_RCC_COMMAND ${Qt5Core_RCC_EXECUTABLE} "-binary" -o ${CREATED_RCC} - < ${CREATED_QRC})
 
40
  endif()
 
41
 
 
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})
 
46
 
 
47
  if(CMAKE_HOST_APPLE)
 
48
    install(FILES ${CREATED_RCC} DESTINATION ${GCOMPRIS_EXECUTABLE_NAME}.app/Contents/MacOS/rcc)
 
49
  else()
 
50
    install(FILES ${CREATED_RCC} DESTINATION share/${GCOMPRIS_EXECUTABLE_NAME}/rcc)
 
51
  endif()
 
52
 
 
53
  add_custom_target(
 
54
    rcc_${activity} ALL
 
55
    DEPENDS createShareFolders ${CREATED_RCC} ${CREATED_QRC}
 
56
    COMMENT "Generate ${activity} RCC"
 
57
    SOURCES ${QRC_CONTENTS}
 
58
    VERBATIM
 
59
  )
 
60
 
 
61
endfunction()