Modules/RasterRender/CMakeLists.txt
Шурупов Илья Викторович 422392a826 Android: support Android 10 (API 29)
Lower minSdk 31 -> 29 so the APK installs on Android 10 devices with
Vulkan 1.1 (e.g. Huawei MatePad T10s, Kirin 710A).

- Shaders target SPIR-V for vulkan1.0 instead of vulkan1.2; they use no
  1.1+ features, so any Vulkan device can load them.
- systemInsets: WindowInsets.Type/getInsets(int) exist only on API 30+;
  on API 29 read getSystemWindowInsets/getMandatorySystemGestureInsets.
- Updater: Intent.getParcelableExtra(String, Class) is API 33+; fall back
  to the untyped overload below Tiramisu.
- Theme: windowLayoutInDisplayCutoutMode=always is API 30+; use
  shortEdges by default and keep always in values-v30.
2026-10-25 15:14:30 +03:00

37 lines
No EOL
1.3 KiB
CMake

project(RasterRender)
find_package(Vulkan REQUIRED)
find_program(GLSLC glslc HINTS Vulkan::glslc ${Vulkan_GLSLC_EXECUTABLE})
if(NOT GLSLC)
set(GLSLC ${Vulkan_GLSLC_EXECUTABLE})
endif()
set(SHADER_GEN_DIR ${CMAKE_CURRENT_BINARY_DIR}/shaders_generated)
file(MAKE_DIRECTORY ${SHADER_GEN_DIR})
set(SHADER_INCS "")
foreach(SHADER default.vert default.frag solid.frag)
set(SHADER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/shaders/${SHADER})
set(SHADER_INC ${SHADER_GEN_DIR}/${SHADER}.inc)
add_custom_command(
OUTPUT ${SHADER_INC}
COMMAND ${GLSLC} -O --target-env=vulkan1.0 -mfmt=c ${SHADER_SRC} -o ${SHADER_INC}
DEPENDS ${SHADER_SRC}
COMMENT "Compiling ${SHADER} to SPIR-V"
VERBATIM
)
list(APPEND SHADER_INCS ${SHADER_INC})
endforeach()
add_custom_target(RasterRenderShaders DEPENDS ${SHADER_INCS})
### ---------------------- Static Library --------------------- ###
file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp")
file(GLOB HEADERS "./public/*.hpp" "./public/*/*.hpp")
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
add_dependencies(${PROJECT_NAME} RasterRenderShaders)
target_include_directories(${PROJECT_NAME} PUBLIC ./public/ ./ext/)
target_include_directories(${PROJECT_NAME} PRIVATE ./private/ ${SHADER_GEN_DIR})
target_link_libraries(${PROJECT_NAME} PUBLIC Math Connection 3DScene Graphics Vulkan::Vulkan)