Skip to content

Commit 99b68e8

Browse files
committed
Move LanguageStrings.cmake to a C Macro
1 parent a842f5a commit 99b68e8

File tree

4 files changed

+99
-124
lines changed

4 files changed

+99
-124
lines changed

cmake-scripts/BuildLanguages.cmake

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,12 @@
11
#
2-
# BuildLanguages.cmake has two jobs:
3-
# - it generates src/resources/generated_languages.h from LanguageStrings.cmake, and
4-
# - if option BUILD_LANGUAGES is on, builds the .LNG files from resources/translations/*.TXT
2+
# BuildLanguages.cmake has one job:
3+
# if option BUILD_LANGUAGES is on, builds the .LNG files from resources/translations/*.TXT
54
#
65

7-
macro(lang_str enum_name)
8-
if(${ARGC} GREATER 1)
9-
set(count "${ARGV1}")
10-
11-
if(${count} LESS 1)
12-
message(FATAL_ERROR "Cannot add less than 1 of lang_str '${enum_name}'.")
13-
endif()
14-
15-
string(APPEND LANG_ENUM "\n ${enum_name} = ${Lang_Count},")
16-
string(APPEND LANG_ENUM "\n ${enum_name}_Last = ${Lang_Count} + (${count} - 1),\n")
17-
math(EXPR Lang_Count "${Lang_Count} + ${count}")
18-
else()
19-
string(APPEND LANG_ENUM "\n ${enum_name} = ${Lang_Count},\n")
20-
math(EXPR Lang_Count "${Lang_Count} + 1")
21-
endif()
22-
endmacro()
23-
set(Lang_Count 0)
24-
set(LANG_ENUM "")
25-
include("cmake-scripts/LanguageStrings.cmake")
26-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/resources/generated_languages.h.in" "${CMAKE_CURRENT_BINARY_DIR}/src/resources/generated_languages.h")
27-
28-
message(STATUS "BuildLanguages' Lang_Count: ${Lang_Count}")
29-
30-
316
if(NOT BUILD_LANGUAGES)
32-
# early out, having written generated_languages.h
337
return()
348
endif()
359

36-
3710
if(WIN32)
3811
set(LANGUAGE_INSTALL_PATH "openomf/resources/")
3912
else()
@@ -48,6 +21,9 @@ file(GLOB OPENOMF_LANGS
4821
"${LANG_SRC}/*.TXT"
4922
)
5023

24+
file(READ "${LANG_SRC}/langstr_count" Lang_Count)
25+
string(REGEX REPLACE "\n+$" "" Lang_Count "${Lang_Count}")
26+
5127
# generate custom target info
5228
set(BUILD_LANG_COMMANDS)
5329
set(BUILD_LANG_SOURCES)
@@ -59,7 +35,7 @@ foreach(TXT ${OPENOMF_LANGS})
5935
DEPENDS "${TXT}"
6036
BYPRODUCTS "${LNG}"
6137
COMMAND ${CMAKE_COMMAND} -E echo_append "${LANG}, "
62-
COMMAND "$<TARGET_FILE:languagetool>" --import "${TXT}" --output "${LNG}" --check-count ${Lang_Count}
38+
COMMAND "$<TARGET_FILE:languagetool>" --import "${TXT}" --output "${LNG}" --check-count "${Lang_Count}"
6339
)
6440
install(FILES "${LNG}" DESTINATION "${LANGUAGE_INSTALL_PATH}")
6541
endforeach()

cmake-scripts/LanguageStrings.cmake

Lines changed: 0 additions & 77 deletions
This file was deleted.

src/resources/generated_languages.h.in

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/resources/languages.h

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#ifndef LANGUAGES_H
22
#define LANGUAGES_H
33

4-
#include "resources/generated_languages.h"
54
#include <stdbool.h>
65

76
/*
@@ -31,4 +30,97 @@ const char *lang_get(int id);
3130
#define lang_get_offset(LangStr, offset) lang_get_offset_impl(LangStr, LangStr##_Last, (offset))
3231
const char *lang_get_offset_impl(int id, int last, int offset);
3332

33+
#define lang_str(enum_variant) enum_variant
34+
#define lang_str_range(enum_variant, count) enum_variant, enum_variant##_Last = enum_variant + (count - 1)
35+
36+
/*! \brief OpenOMF String ID
37+
*
38+
* These string IDs are generated by BuildLanguages.cmake from the list in LanguageStrings.cmake,
39+
* and match the generated .LNG files.
40+
*/
41+
enum
42+
{
43+
// lang_str(<enum variant>),
44+
// lang_str_range(<enum variant>, <str count>),
45+
// The <enum variant> is what's used in the C code to refer to this language string.
46+
// Specifying a <str count> allows for a range of lang strs to be added under one name
47+
48+
// strings from OMF 2097
49+
lang_str_range(LangPilot, 11),
50+
lang_str_range(LangPilotDescription, 11),
51+
lang_str_range(LangRobot, 11),
52+
lang_str_range(LangRobotDescription, 11),
53+
lang_str_range(LangArena, 5),
54+
lang_str_range(LangArenaDescription, 5),
55+
lang_str_range(LangPronoun, 6),
56+
lang_str(LangNewsroomUnrankedChallengerDialog),
57+
lang_str_range(LangNewsroomUnrankedChallenger, 2),
58+
lang_str(LangNewsroomNewChampion),
59+
lang_str_range(LangNewsroomReport, 48),
60+
lang_str_range(LangCpuDifficulty, 7),
61+
lang_str(LangTooPatheticDialog),
62+
lang_str(LangTooPatheticInsult),
63+
lang_str_range(LangVsInsult1, 121),
64+
lang_str_range(LangVsInsult2, 121),
65+
lang_str_range(LangPlug, 16),
66+
lang_str(LangPilotStatPower),
67+
lang_str(LangPilotStatSpeed),
68+
lang_str(LangPilotStatEndurance),
69+
lang_str(LangChooseYourPilot),
70+
lang_str(LangChooseYourRobot),
71+
lang_str(LangSceneEnd),
72+
lang_str_range(LangSceneEnd1, 10),
73+
lang_str_range(LangSceneEnd2, 10),
74+
lang_str(LangSelectTournament),
75+
lang_str(LangSelectPhotoForChr),
76+
lang_str(LangSelectChrToLoad),
77+
lang_str(LangSelectChrToDelete),
78+
lang_str(LangSelectOpponent),
79+
lang_str_range(LangTrainingTitle, 3),
80+
lang_str_range(LangTrainingConfirmation, 3),
81+
lang_str_range(LangTrainingHelp, 3),
82+
lang_str(LangTrainingDone),
83+
lang_str(LangTradeGainCash),
84+
lang_str(LangTradeSpendCash),
85+
lang_str(LangTradeEquitable),
86+
lang_str(LangButtonSelect),
87+
lang_str(LangTournamentFight),
88+
lang_str(LangEnterTrainingHelp),
89+
lang_str(LangBuyUpgradesHelp),
90+
lang_str(LangSellUpgradesHelp),
91+
lang_str(LangChrLoadHelp),
92+
lang_str(LangChrCreateHelp),
93+
lang_str(LangChrDeleteHelp),
94+
lang_str(LangTournamentSimHelp),
95+
lang_str(LangTournamentQuitHelp),
96+
lang_str(LangTournamentRegisterHelp),
97+
lang_str_range(LangTournamentDifficulty, 4),
98+
lang_str(LangNo),
99+
lang_str(LangYes),
100+
lang_str(LangPromptChrName),
101+
lang_str(LangCustomizeColor1),
102+
lang_str(LangCustomizeColor2),
103+
lang_str(LangCustomizeColor3),
104+
lang_str(LangUpgradePowerSell),
105+
lang_str(LangUpgradePowerBuy),
106+
lang_str(LangUpgradeSpeedSell),
107+
lang_str(LangUpgradeSpeedBuy),
108+
lang_str(LangUpgradeArmorSell),
109+
lang_str(LangUpgradeArmorBuy),
110+
lang_str(LangUpgradeStunResistanceSell),
111+
lang_str(LangUpgradeStunResistanceBuy),
112+
lang_str(LangTradeHelp),
113+
lang_str(LangTradeNoneAvailable),
114+
lang_str(LangTradeAvailable),
115+
lang_str(LangUpgradeQuitSell),
116+
lang_str(LangUpgradeQuitBuy),
117+
// strings new in OpenOMF
118+
lang_str(LangLanguage),
119+
120+
Lang_Count,
121+
};
122+
123+
#undef lang_str
124+
#undef lang_str_range
125+
34126
#endif // LANGUAGES_H

0 commit comments

Comments
 (0)