diff --git a/CMakeLists.txt b/CMakeLists.txt
index f82cb981..756673a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -58,6 +58,12 @@ endif()
option(GLM_TEST_ENABLE_LANG_EXTENSIONS "Enable language extensions" OFF)
+option(GLM_DISABLE_AUTO_DETECTION "Enable language extensions" OFF)
+
+if(GLM_DISABLE_AUTO_DETECTION)
+ add_definitions(-DGLM_FORCE_PLATFORM_UNKNOWN -DGLM_FORCE_COMPILER_UNKNOWN -DGLM_FORCE_ARCH_UNKNOWN -DGLM_FORCE_CXX_UNKNOWN)
+endif()
+
if(GLM_TEST_ENABLE_LANG_EXTENSIONS)
set(CMAKE_CXX_EXTENSIONS ON)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU"))
diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp
index 5ab422ee..c6c37779 100644
--- a/glm/detail/setup.hpp
+++ b/glm/detail/setup.hpp
@@ -80,7 +80,9 @@
# define GLM_LANG_EXT 0
#endif
-#if defined(GLM_FORCE_CXX2A)
+#if (defined(GLM_FORCE_CXX_UNKNOWN))
+# define GLM_LANG 0
+#elif defined(GLM_FORCE_CXX2A)
# define GLM_LANG (GLM_LANG_CXX2A | GLM_LANG_EXT)
# define GLM_LANG_STL11_FORCED
#elif defined(GLM_FORCE_CXX17)
diff --git a/glm/simd/platform.h b/glm/simd/platform.h
index 30e54f33..717e9aab 100644
--- a/glm/simd/platform.h
+++ b/glm/simd/platform.h
@@ -251,7 +251,9 @@
#define GLM_ARCH_MIPS (GLM_ARCH_MIPS_BIT)
#define GLM_ARCH_PPC (GLM_ARCH_PPC_BIT)
-#if defined(GLM_FORCE_PURE) || defined(GLM_FORCE_XYZW_ONLY)
+#ifdef GLM_FORCE_ARCH_UNKNOWN
+# define GLM_ARCH GLM_ARCH_UNKNOWN
+#elif defined(GLM_FORCE_PURE) || defined(GLM_FORCE_XYZW_ONLY)
# if defined(__x86_64__) || defined(_M_X64) || defined(_M_IX86) || defined(__i386__)
# define GLM_ARCH (GLM_ARCH_X86)
# elif defined(__arm__ ) || defined(_M_ARM)
diff --git a/manual.md b/manual.md
index 2de6e7a9..281b6858 100644
--- a/manual.md
+++ b/manual.md
@@ -293,6 +293,18 @@ The following subsections describe each configurations and defines.
TODO
+### 2.3. GLM\_FORCE\_COMPILER\_UNKNOWN: Force GLM to no detect the build compiler
+
+TODO
+
+### 2.4. GLM\_FORCE\_ARCH\_UNKNOWN: Force GLM to no detect the build architecture
+
+TODO
+
+### 2.5. GLM\_FORCE\_CXX\_UNKNOWN: Force GLM to no detect the C++ standard
+
+TODO
+
### 2.3. GLM\_FORCE\_CXX**: C++ language detection
GLM will automatically take advantage of compilers’ language extensions when enabled. To increase cross platform compatibility and to avoid compiler extensions, a programmer can define GLM\_FORCE\_CXX98 before
diff --git a/test/core/core_setup_platform_unknown.cpp b/test/core/core_setup_platform_unknown.cpp
index f010669d..9feaee39 100644
--- a/test/core/core_setup_platform_unknown.cpp
+++ b/test/core/core_setup_platform_unknown.cpp
@@ -1,4 +1,15 @@
-#define GLM_FORCE_PLATFORM_UNKNOWN
+#ifndef GLM_FORCE_PLATFORM_UNKNOWN
+# define GLM_FORCE_PLATFORM_UNKNOWN
+#endif
+#ifndef GLM_FORCE_COMPILER_UNKNOWN
+# define GLM_FORCE_COMPILER_UNKNOWN
+#endif
+#ifndef GLM_FORCE_ARCH_UNKNOWN
+# define GLM_FORCE_ARCH_UNKNOWN
+#endif
+#ifndef GLM_FORCE_CXX_UNKNOWN
+# define GLM_FORCE_CXX_UNKNOWN
+#endif
#include
#include