set(ENABLE_PCH OFF)
# Day-30 (wasm-dolphin): ON so glslang processes its External/ dir
# (CMakeLists:275) and add_subdirectory(spirv-tools), creating the
# SPIRV-Tools-opt target ENABLE_OPT needs. googletest is
# IS_DIRECTORY-gated (not vendored → skipped); spirv-tools is
# ENABLE_OPT+dir-gated with SPIRV_SKIP_TESTS ON.
set(BUILD_EXTERNAL ON)
set(SKIP_GLSLANG_INSTALL ON)
set(ENABLE_GLSLANG_BINARIES OFF)
set(ENABLE_HLSL OFF)
# Day-30 (wasm-dolphin): ON so glslang compiles in its SPIRV-Tools
# optimizer bridge (SpvTools.cpp). SPIRV-Tools + SPIRV-Headers are
# vendored at glslang's known-good commits under
# glslang/External/spirv-tools{,/external/spirv-headers}. With this
# on, Spirv.cpp's `disableOptimizer=false` path actually runs
# spirv-opt, canonicalising glslang's raw SPIR-V into the subset
# Naga's spv frontend accepts (raw glslang output was tripping Naga's
# "invalid id %N" on ~80% of Dolphin's pixel shaders — Day-30 finding).
set(ENABLE_OPT ON)
set(ENABLE_CTEST OFF)
set(ENABLE_EXCEPTIONS OFF)
add_subdirectory(glslang)

if (TARGET glslang)
  target_include_directories(glslang
  # Silence warnings on glslang by flagging it as a system include
  SYSTEM PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/glslang>
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/glslang/Public>
  PUBLIC
    "${CMAKE_CURRENT_SOURCE_DIR}"
  )
  dolphin_disable_warnings(glslang)
endif()
