Skip to content

Commit 96b821b

Browse files
committed
cmake: Support COUNT argument in openomf_string
1 parent 7f12e6a commit 96b821b

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

cmake-scripts/BuildLanguages.cmake

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,37 @@ macro(from_base enum_name description idx)
1616

1717
set(LANG_ENUM "${LANG_ENUM}\n // ${description}\n ${enum_name} = ${Lang_Count},")
1818
# emit a _LAST, too
19-
set(LANG_ENUM "${LANG_ENUM}\n // Number of ${enum_name} string entries\n ${enum_name}_LAST = ${range_end},\n")
19+
set(LANG_ENUM "${LANG_ENUM}\n // Final ${enum_name} string entry\n ${enum_name}_LAST = ${range_end},\n")
2020
math(EXPR Lang_Count "${Lang_Count} + ${count}")
2121
else()
2222
set(LANG_ENUM "${LANG_ENUM}\n // ${description}\n ${enum_name} = ${Lang_Count},\n")
2323
math(EXPR Lang_Count "${Lang_Count} + 1")
2424
endif()
2525
endmacro()
2626
macro(openomf_string enum_name description)
27-
# TODO parse "COUNT 5" from argn
28-
set(LANG_ENUM "${LANG_ENUM}\n // ${description}\n ${enum_name} = ${Lang_Count},")
29-
math(EXPR Lang_Count "${Lang_Count} + 1")
27+
set(options)
28+
set(oneValueArgs COUNT)
29+
set(multiValueArgs)
30+
cmake_parse_arguments(arg
31+
"${options}" "${oneValueArgs}" "${multiValueArgs}"
32+
${ARGN}
33+
)
34+
set(LANG_ENUM "${LANG_ENUM}\n // ${description}\n ${enum_name} = ${Lang_Count},\n")
35+
if("${arg_COUNT}" STREQUAL "")
36+
math(EXPR Lang_Count "${Lang_Count} + 1")
37+
else()
38+
math(EXPR "${enum_name}_LAST" "${Lang_Count} + ${arg_COUNT} - 1")
39+
set(LANG_ENUM "${LANG_ENUM} // Final ${enum_name} string entry\n ${enum_name}_LAST = ${${enum_name}_LAST},\n")
40+
math(EXPR Lang_Count "${Lang_Count} + ${arg_COUNT}")
41+
endif()
3042
endmacro()
3143

3244
set(Lang_Count 0)
3345
set(LANG_ENUM "")
3446
set(BASETXT_CONTENTS "# Generated by BuildLanguages.cmake")
3547
include("cmake-scripts/LanguageStrings.cmake")
3648
base_strings()
37-
set(LANG_ENUM "${LANG_ENUM}\n\n // OpenOMF-specific strings start here\n")
49+
set(LANG_ENUM "${LANG_ENUM}\n // OpenOMF-specific strings start here\n")
3850
openomf_strings()
3951
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/resources/generated_languages.h.in" "${CMAKE_CURRENT_BINARY_DIR}/src/resources/generated_languages.h")
4052

0 commit comments

Comments
 (0)