From b909f3c576e92fe419f0cec06f32626c1978412c Mon Sep 17 00:00:00 2001 From: Kolyah35 Date: Fri, 20 Mar 2026 21:53:10 +0300 Subject: [PATCH] EnumOption --- .gitignore | 2 -- cmake/EnumOption.cmake | 9 +++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 cmake/EnumOption.cmake diff --git a/.gitignore b/.gitignore index 6336105..5465697 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,6 @@ CMakeFiles/ CMakeCache.txt cmake_install.cmake Makefile -*.cmake -!cmake/CPM.cmake # Compiled object files *.o diff --git a/cmake/EnumOption.cmake b/cmake/EnumOption.cmake new file mode 100644 index 0000000..e8de5e6 --- /dev/null +++ b/cmake/EnumOption.cmake @@ -0,0 +1,9 @@ +macro(enum_option var values description) + set(${var}_VALUES ${values}) + list(GET ${var}_VALUES 0 default) + set(${var} "${default}" CACHE STRING "${description}") + set_property(CACHE ${var} PROPERTY STRINGS ${${var}_VALUES}) + if (NOT ";${${var}_VALUES};" MATCHES ";${${var}};") + message(FATAL_ERROR "Unknown value ${${var}}. Only -D${var}=${${var}_VALUES} allowed.") + endif() +endmacro() \ No newline at end of file