Files
@ r28098:2f7e0d913c81
Branch filter:
Location: cpp/openttd-patchpack/source/cmake/scripts/CreateGRF.cmake - annotation
r28098:2f7e0d913c81
2.2 KiB
text/x-cmake
Add: Mock sprite cache intialization.
This fills up the sprite cache with SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT zero-size sprites, to
allow GetSpriteSize() calls to continue from unit-tests.
This fills up the sprite cache with SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT zero-size sprites, to
allow GetSpriteSize() calls to continue from unit-tests.
r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24349:3fa910f6f5ee r24243:007d92886797 r24349:3fa910f6f5ee r24349:3fa910f6f5ee r24243:007d92886797 r24349:3fa910f6f5ee r24349:3fa910f6f5ee r24243:007d92886797 r24349:3fa910f6f5ee r24349:3fa910f6f5ee r24243:007d92886797 r24349:3fa910f6f5ee r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24349:3fa910f6f5ee r24243:007d92886797 r24243:007d92886797 r24243:007d92886797 r24349:3fa910f6f5ee r24243:007d92886797 r24349:3fa910f6f5ee r24349:3fa910f6f5ee r24243:007d92886797 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r25253:e9f6c77e0ff6 r24243:007d92886797 | cmake_minimum_required(VERSION 3.5)
#
# Create a single GRF file based on sprites/<grfname>.nfo and sprites/*.png
# files.
#
if(NOT NFORENUM_EXECUTABLE)
message(FATAL_ERROR "Script needs NFORENUM_EXECUTABLE defined")
endif()
if(NOT GRFCODEC_EXECUTABLE)
message(FATAL_ERROR "Script needs GRFCODEC_EXECUTABLE defined")
endif()
if(NOT GRF_SOURCE_FOLDER)
message(FATAL_ERROR "Script needs GRF_SOURCE_FOLDER defined")
endif()
if(NOT GRF_BINARY_FILE)
message(FATAL_ERROR "Script needs GRF_BINARY_FILE defined")
endif()
get_filename_component(GRF_SOURCE_FOLDER_NAME "${GRF_SOURCE_FOLDER}" NAME)
file(WRITE sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "")
file(READ ${GRF_SOURCE_FOLDER}/${GRF_SOURCE_FOLDER_NAME}.nfo NFO_LINES)
# Replace ; with \;, and make a list out of this based on \n
string(REPLACE ";" "\\;" NFO_LINES "${NFO_LINES}")
string(REPLACE "\n" ";" NFO_LINES "${NFO_LINES}")
foreach(NFO_LINE IN LISTS NFO_LINES)
# Recover the ; that was really in the text (and not a newline)
string(REPLACE "\\;" ";" NFO_LINE "${NFO_LINE}")
if(NFO_LINE MATCHES "^#include")
string(REGEX REPLACE "^#include \"(.*)\"$" "\\1" INCLUDE_FILE ${NFO_LINE})
file(READ ${GRF_SOURCE_FOLDER}/${INCLUDE_FILE} INCLUDE_LINES)
file(APPEND sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "${INCLUDE_LINES}")
else()
file(APPEND sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "${NFO_LINE}\n")
endif()
endforeach()
execute_process(COMMAND ${NFORENUM_EXECUTABLE} -s sprites/${GRF_SOURCE_FOLDER_NAME}.nfo RESULT_VARIABLE RESULT)
if(RESULT)
if(NOT RESULT MATCHES "^[0-9]*$")
message(FATAL_ERROR "Failed to run NFORenum (${RESULT}), please check NFORENUM_EXECUTABLE variable")
endif()
message(FATAL_ERROR "NFORenum failed")
endif()
execute_process(COMMAND ${GRFCODEC_EXECUTABLE} -n -s -e -p1 ${GRF_SOURCE_FOLDER_NAME}.grf RESULT_VARIABLE RESULT)
if(RESULT)
if(NOT RESULT MATCHES "^[0-9]*$")
message(FATAL_ERROR "Failed to run GRFCodec (${RESULT}), please check GRFCODEC_EXECUTABLE variable")
endif()
message(FATAL_ERROR "GRFCodec failed")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${GRF_SOURCE_FOLDER_NAME}.grf ${GRF_BINARY_FILE})
|