Add validate-backend-options.cmake script (#3828)
Co-authored-by: Frank Elsinga <frank@elsinga.de>
This commit is contained in:
@@ -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)
|
||||
|
||||
28
cmake/validate-backend-options.cmake
Normal file
28
cmake/validate-backend-options.cmake
Normal 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()
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user