$NetBSD: patch-CMakeLists.txt,v 1.1 2024/02/11 15:29:59 ryoon Exp $

CMake 3.28.2 breaks unity build. From: https://projects.blender.org/blender/blender/commit/cf4365e555a759d5b3225bce77858374cb07faad
Enable c++ extensions for alloca on NetBSD

--- CMakeLists.txt.orig	2023-11-15 00:30:51.000000000 +0000
+++ CMakeLists.txt
@@ -211,7 +211,7 @@ mark_as_advanced(CPACK_OVERRIDE_PACKAGEN
 mark_as_advanced(BUILDINFO_OVERRIDE_DATE)
 mark_as_advanced(BUILDINFO_OVERRIDE_TIME)
 
-if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16")
+if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16" AND NOT ${CMAKE_VERSION} VERSION_EQUAL "3.28.2")
   option(WITH_UNITY_BUILD   "Enable unity build for modules that support it to improve compile times" ON)
   mark_as_advanced(WITH_UNITY_BUILD)
 else()
@@ -1015,6 +1015,7 @@ set(EXETYPE "")
 
 # C/C++ flags
 set(PLATFORM_CFLAGS)
+set(PLATFORM_CXXFLAGS)
 
 # these are added to later on.
 set(C_WARNINGS)
@@ -1712,7 +1713,8 @@ set(CMAKE_CXX_STANDARD 17)
 # If C++17 is not available, downgrading to an earlier standard is NOT OK.
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 # Do not enable compiler specific language extensions.
-set(CMAKE_CXX_EXTENSIONS OFF)
+# Sorry needed for alloca on NetBSD
+set(CMAKE_CXX_EXTENSIONS ON)
 
 # Make MSVC properly report the value of the __cplusplus preprocessor macro
 # Available MSVC 15.7 (1914) and up, without this it reports 199711L regardless
@@ -1773,7 +1775,7 @@ endif()
 # Include warnings first, so its possible to disable them with user defined flags
 # eg: -Wno-uninitialized
 set(CMAKE_C_FLAGS "${C_WARNINGS} ${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS}")
-set(CMAKE_CXX_FLAGS "${CXX_WARNINGS} ${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS}")
+set(CMAKE_CXX_FLAGS "${CXX_WARNINGS} ${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS} ${PLATFORM_CXXFLAGS}")
 
 # defined above, platform specific but shared names
 mark_as_advanced(
