Add a CMake build

Tried to stay as close as possible to ja2_2019.sln

On Visual Studio 2022 just Project -> CMake Settings for Ja2, add
the x86 configurations you want and press F7.

Below shows how the -DLanguages -DApplications switches work, If you don't
set them, the CMakeCache.txt of them will be set to ENGLISH and JA2,
respectively:

cmake [...] // nothing set, configure just JA2_ENGLISH.exe by default
cmake [...] -DApplications="JA2UB" // configures just Unfinished Business
cmake [...] build -DApplications="JA2UB;JA2UBMAPEDITOR" // Unfinished Business and UB Map Editor
cmake [...] build -DApplications="JA2UB;JA2MAPEDITOR;ALL" // ALL is in the list, configures every application
cmake [...] build -DApplications="JA2MAPEDITOR;DeathStranding" // fatal error: DeathStranding not an application

cmake [...] -DLanguages="GERMAN" // configures just German targets
cmake [...] build -DLanguages="GERMAN;ENGLISH" // German and English
cmake [...] build -DLanguages="GERMAN;ENGLISH;ALL" // ALL is in the list, configures every language
cmake [...] build -DLanguages="ENGLISH;ESPERANTO" // fatal error: ESPERANTO not supported
This commit is contained in:
Marco Antonio Jaguaribe Costa
2023-01-14 02:08:39 -03:00
parent 9f5b181299
commit 8609944467
16 changed files with 754 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
function(ValidateOptions ValidOptions ChoiceName DefaultChoice Choice RetVal)
if(Choice)
if(Choice MATCHES "ALL")
set(${RetVal} ${ValidOptions} PARENT_SCOPE)
message(STATUS "ALL ${ChoiceName} option set, configuring ${ValidOptions}.")
else()
foreach(x IN LISTS Choice)
if(x IN_LIST ValidOptions)
message(STATUS "Configuring for ${x}.")
else()
message(FATAL_ERROR "${x} not supported. The supported ${ChoiceName} are: ${ValidOptions}.")
endif()
set(${RetVal} ${Choice} PARENT_SCOPE)
endforeach()
endif()
else()
set(${RetVal} ${DefaultChoice} PARENT_SCOPE)
message(STATUS "No -D${ChoiceName}= parameter, configuring ${DefaultChoice} by default.")
endif()
endfunction()