mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-10-31 15:20:10 +00:00
85315e2e31
For grfs, it now uses CMake scripts to do its job, and both grf files are split into their own folder to make more clear what is going on. Additionally, it no longer builds in-source (although the resulting grf is copied back in the source folder). For ob[msg] it now uses CMake scripts to generate the translation files; the result is no longer stored in-source (but in the build folder). Although all files are available to create the GRFs and basesets, it won't really work till CMake is introduced (which will happen in a few commits from here)
54 lines
1.7 KiB
CMake
54 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.5)
|
|
|
|
#
|
|
# Create a single baseset meta file with the correct translations.
|
|
#
|
|
|
|
set(ARGC 1)
|
|
set(ARG_READ NO)
|
|
|
|
# Read all the arguments given to CMake; we are looking for -- and everything
|
|
# that follows. Those are our language files.
|
|
while(ARGC LESS CMAKE_ARGC)
|
|
set(ARG ${CMAKE_ARGV${ARGC}})
|
|
|
|
if (ARG_READ)
|
|
list(APPEND LANG_SOURCE_FILES "${ARG}")
|
|
endif (ARG_READ)
|
|
|
|
if (ARG STREQUAL "--")
|
|
set(ARG_READ YES)
|
|
endif (ARG STREQUAL "--")
|
|
|
|
math(EXPR ARGC "${ARGC} + 1")
|
|
endwhile()
|
|
|
|
# Place holder format is @<ini_key>_<str_id>@
|
|
file(STRINGS "${BASESET_SOURCE_FILE}" PLACE_HOLDER REGEX "^@")
|
|
string(REGEX REPLACE "@([^_]+).*@" "\\1" INI_KEY "${PLACE_HOLDER}")
|
|
string(REGEX REPLACE "@[^_]+_(.*)@" "\\1" STR_ID "${PLACE_HOLDER}")
|
|
string(REGEX REPLACE "@(.*)@" "\\1" PLACE_HOLDER "${PLACE_HOLDER}")
|
|
|
|
# Get the translations
|
|
foreach(LANGFILE IN LISTS LANG_SOURCE_FILES)
|
|
file(STRINGS "${LANGFILE}" LANGLINES REGEX "^(##isocode|${STR_ID})" ENCODING UTF-8)
|
|
string(FIND "${LANGLINES}" "${STR_ID}" HAS_STR_ID)
|
|
if (HAS_STR_ID LESS 0)
|
|
continue()
|
|
endif (HAS_STR_ID LESS 0)
|
|
string(REGEX REPLACE "##isocode ([^;]+).*" "\\1" ISOCODE "${LANGLINES}")
|
|
if ("${ISOCODE}" STREQUAL "en_GB")
|
|
string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY} = \\1" LANGLINES "${LANGLINES}")
|
|
else()
|
|
string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}.${ISOCODE} = \\1" LANGLINES "${LANGLINES}")
|
|
endif()
|
|
list(APPEND ${PLACE_HOLDER} ${LANGLINES})
|
|
endforeach(LANGFILE)
|
|
list(SORT ${PLACE_HOLDER})
|
|
string(REPLACE ";" "\n" ${PLACE_HOLDER} "${${PLACE_HOLDER}}")
|
|
|
|
# Get the grf md5
|
|
file(MD5 ${BASESET_EXTRAGRF_FILE} ORIG_EXTRA_GRF_MD5)
|
|
|
|
configure_file(${BASESET_SOURCE_FILE} ${BASESET_BINARY_FILE})
|