mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
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:
@@ -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()
|
||||
Reference in New Issue
Block a user