Advertisement
LordAro

FRCT CMake

Nov 12th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 4.24 KB | None | 0 0
  1. This section of CMake stuffs:
  2.  
  3. ....
  4. # Make declaring the list shorter/nicer
  5. SET(FP "${CMAKE_SOURCE_DIR}/graphics/rcd/")
  6.  
  7. # Output file                     Source file
  8. LIST(APPEND RCDFILES
  9.   ${FP}borderhighlight_8bpp64.rcd ${FP}freerct.txt
  10.   ${FP}cornerhighlight_8bpp64.rcd ${FP}freerct.txt
  11.   ${FP}groundtile_8bpp64.rcd      ${FP}freerct.txt
  12.   ${FP}people_animation.rcd       ${FP}freerct.txt
  13.   ${FP}path_8bpp64.rcd            ${FP}paths.txt
  14.   ${FP}shops.rcd                  ${FP}shops.txt
  15.   ${FP}gui.rcd                    ${FP}gui.txt
  16.   ${FP}tracks.rcd                 ${FP}tracks.txt
  17. )
  18.  
  19. LIST(LENGTH RCDFILES RCDFILES_LENGTH)
  20. math(EXPR RCDFILES_LENGTH_DIV_2 "${RCDFILES_LENGTH} / 2 - 1")
  21.  
  22. FOREACH(RCDFILE RANGE ${RCDFILES_LENGTH_DIV_2})
  23.     math(EXPR INDEX_1 "${RCDFILE} * 2")
  24.     math(EXPR INDEX_2 "${INDEX_1} + 1")
  25.     LIST(GET RCDFILES ${INDEX_1} OUTFILE)
  26.     LIST(GET RCDFILES ${INDEX_2} SRCFILE)
  27.  
  28.     ADD_CUSTOM_COMMAND(
  29.           OUTPUT ${OUTFILE}
  30.           COMMAND ${RCDGEN_EXE} ${SRCFILE}
  31.           COMMENT "Generating rcd files from ${SRCFILE}"
  32.           MAIN_DEPENDENCY ${SRCFILE}
  33.     )
  34.     message("adding ${OUTFILE}")
  35.  
  36.     LIST(APPEND OUTFILES ${OUTFILE})
  37. ENDFOREACH(RCDFILE)
  38.  
  39. add_custom_target(rcd ALL DEPENDS ${OUTFILES})
  40. ....
  41.  
  42.  
  43. Generates this gnu/make stuffs:
  44.  
  45. ....
  46. graphics/rcd/CMakeFiles/rcd: graphics/rcd/borderhighlight_8bpp64.rcd
  47. graphics/rcd/CMakeFiles/rcd: graphics/rcd/cornerhighlight_8bpp64.rcd
  48. graphics/rcd/CMakeFiles/rcd: graphics/rcd/groundtile_8bpp64.rcd
  49. graphics/rcd/CMakeFiles/rcd: graphics/rcd/people_animation.rcd
  50. graphics/rcd/CMakeFiles/rcd: graphics/rcd/path_8bpp64.rcd
  51. graphics/rcd/CMakeFiles/rcd: graphics/rcd/shops.rcd
  52. graphics/rcd/CMakeFiles/rcd: graphics/rcd/gui.rcd
  53. graphics/rcd/CMakeFiles/rcd: graphics/rcd/tracks.rcd
  54.  
  55. graphics/rcd/borderhighlight_8bpp64.rcd: graphics/rcd/freerct.txt
  56.     $(CMAKE_COMMAND) -E cmake_progress_report /home/lordaro/coding/freerct.hg/CMakeFiles $(CMAKE_PROGRESS_1)
  57.     @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating rcd files from /home/lordaro/coding/freerct.hg/graphics/rcd/freerct.txt"
  58.     cd /home/lordaro/coding/freerct.hg/graphics/rcd && ../../src/rcdgen/rcdgen /home/lordaro/coding/freerct.hg/graphics/rcd/freerct.txt
  59.  
  60. graphics/rcd/path_8bpp64.rcd: graphics/rcd/paths.txt
  61.     $(CMAKE_COMMAND) -E cmake_progress_report /home/lordaro/coding/freerct.hg/CMakeFiles $(CMAKE_PROGRESS_2)
  62.     @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating rcd files from /home/lordaro/coding/freerct.hg/graphics/rcd/paths.txt"
  63.     cd /home/lordaro/coding/freerct.hg/graphics/rcd && ../../src/rcdgen/rcdgen /home/lordaro/coding/freerct.hg/graphics/rcd/paths.txt
  64.  
  65. graphics/rcd/shops.rcd: graphics/rcd/shops.txt
  66.     $(CMAKE_COMMAND) -E cmake_progress_report /home/lordaro/coding/freerct.hg/CMakeFiles $(CMAKE_PROGRESS_3)
  67.     @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating rcd files from /home/lordaro/coding/freerct.hg/graphics/rcd/shops.txt"
  68.     cd /home/lordaro/coding/freerct.hg/graphics/rcd && ../../src/rcdgen/rcdgen /home/lordaro/coding/freerct.hg/graphics/rcd/shops.txt
  69.  
  70. graphics/rcd/gui.rcd: graphics/rcd/gui.txt
  71.     $(CMAKE_COMMAND) -E cmake_progress_report /home/lordaro/coding/freerct.hg/CMakeFiles $(CMAKE_PROGRESS_4)
  72.     @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating rcd files from /home/lordaro/coding/freerct.hg/graphics/rcd/gui.txt"
  73.     cd /home/lordaro/coding/freerct.hg/graphics/rcd && ../../src/rcdgen/rcdgen /home/lordaro/coding/freerct.hg/graphics/rcd/gui.txt
  74.  
  75. graphics/rcd/tracks.rcd: graphics/rcd/tracks.txt
  76.     $(CMAKE_COMMAND) -E cmake_progress_report /home/lordaro/coding/freerct.hg/CMakeFiles $(CMAKE_PROGRESS_5)
  77.     @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating rcd files from /home/lordaro/coding/freerct.hg/graphics/rcd/tracks.txt"
  78.     cd /home/lordaro/coding/freerct.hg/graphics/rcd && ../../src/rcdgen/rcdgen /home/lordaro/coding/freerct.hg/graphics/rcd/tracks.txt
  79.  
  80. rcd: graphics/rcd/CMakeFiles/rcd
  81. rcd: graphics/rcd/borderhighlight_8bpp64.rcd
  82. rcd: graphics/rcd/path_8bpp64.rcd
  83. rcd: graphics/rcd/shops.rcd
  84. rcd: graphics/rcd/gui.rcd
  85. rcd: graphics/rcd/tracks.rcd
  86. ....
  87.  
  88. (Note the missing targets/commands)
  89.  
  90. This causes race condition issues when run with -j2 or so
  91. How to fix?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement