Add validate-backend-options.cmake script (#3828)

Co-authored-by: Frank Elsinga <frank@elsinga.de>
This commit is contained in:
Bart Louwers
2025-09-26 15:48:02 +02:00
committed by GitHub
parent 95794f8520
commit 2ccb454345
3 changed files with 39 additions and 8 deletions

View File

@@ -21,14 +21,7 @@ option(MLN_TEXT_SHAPING_HARFBUZZ "Use haffbuzz to shape complex text" ON)
option(MLN_CORE_INCLUDE_DEPS "Include depdendencies in static build of core" OFF)
option(MLN_CREATE_AUTORELEASEPOOL "Create autoreleasepool in render loop" OFF)
if (MLN_LEGACY_RENDERER)
message(FATAL "The legacy renderer is no longer supported")
endif()
if (MLN_DRAWABLE_RENDERER)
message(FATAL "Do not pass MLN_DRAWABLE_RENDERER, the drawable renderer is now the default")
endif()
include(cmake/validate-backend-options.cmake)
include(cmake/clang-tidy.cmake)
if (MLN_WITH_QT AND NOT CMAKE_OSX_DEPLOYMENT_TARGET)

View File

@@ -0,0 +1,28 @@
if (MLN_LEGACY_RENDERER)
message(FATAL "The legacy renderer is no longer supported")
endif()
if (MLN_DRAWABLE_RENDERER)
message(FATAL "Do not pass MLN_DRAWABLE_RENDERER, the drawable renderer is now the default")
endif()
set(backend_count 0)
if (MLN_WITH_OPENGL)
math(EXPR backend_count "${backend_count} + 1")
endif()
if (MLN_WITH_METAL)
math(EXPR backend_count "${backend_count} + 1")
endif()
if (MLN_WITH_VULKAN)
math(EXPR backend_count "${backend_count} + 1")
endif()
if (backend_count EQUAL 0)
message(FATAL_ERROR
"You need to set a rendering backend. "
"Set exactly one of: MLN_WITH_OPENGL, MLN_WITH_METAL, or MLN_WITH_VULKAN.")
elseif (backend_count GREATER 1)
message(FATAL_ERROR
"Multiple rendering backends selected. "
"Please enable only one of: MLN_WITH_OPENGL, MLN_WITH_METAL, or MLN_WITH_VULKAN.")
endif()

View File

@@ -79,9 +79,19 @@ android {
productFlavors {
create("opengl") {
dimension = "renderer"
externalNativeBuild {
cmake {
arguments("-DMLN_WITH_OPENGL=ON", "-DMLN_WITH_VULKAN=OFF")
}
}
}
create("vulkan") {
dimension = "renderer"
externalNativeBuild {
cmake {
arguments("-DMLN_WITH_OPENGL=OFF", "-DMLN_WITH_VULKAN=ON")
}
}
}
}