diff --git a/CMakeLists.txt b/CMakeLists.txt
index 149024a9880db820f8cdbe8c6bc9bf371987fad8..68b7fa17bfb1912c0319bd2b099cedd76a9f1c27 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,8 @@ if(NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZ
 endif()
 message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
 
+add_definitions(-DONEFLOW_CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
+
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "")
 
 option(THIRD_PARTY "Build third party" ON)
diff --git a/oneflow/__main__.py b/oneflow/__main__.py
index e93609569583a990f424220a6d9349604a72df03..7b575523a1d024c935cd68e78c15a5f9897416c8 100644
--- a/oneflow/__main__.py
+++ b/oneflow/__main__.py
@@ -48,6 +48,7 @@ def main():
 
         print("path:", oneflow.__path__)
         print("version:", oneflow.__version__)
+        print("cmake_build_type:", oneflow.sysconfig.cmake_build_type())
 
 
 if __name__ == "__main__":
diff --git a/oneflow/api/python/flags.cpp b/oneflow/api/python/flags.cpp
index 4f9cfd89a11f663f8c9b0f2246a97f81c3a9f879..32e53492e8d373cb60cf001d74b600469b57e9c1 100644
--- a/oneflow/api/python/flags.cpp
+++ b/oneflow/api/python/flags.cpp
@@ -57,6 +57,18 @@ ONEFLOW_API_PYBIND11_MODULE("flags", m) {
     return false;
 #endif  // RPC_BACKEND_LOCAL
   });
+
+#define STRINGIFY(x) STRINGIFY_(x)
+#define STRINGIFY_(x) #x
+  m.def("cmake_build_type", []() {
+#ifdef ONEFLOW_CMAKE_BUILD_TYPE
+    return std::string(STRINGIFY(ONEFLOW_CMAKE_BUILD_TYPE));
+#else
+    return std::string("Undefined");
+#endif  // ONEFLOW_CMAKE_BUILD_TYPE
+  });
+#undef STRINGIFY
+#undef STRINGIFY_
 }
 
 }  // namespace oneflow
diff --git a/oneflow/python/framework/sysconfig.py b/oneflow/python/framework/sysconfig.py
index f9985b7dbd124e22ec6fce70c4f8ed0ae8dbc07d..0f0e360d63cc028293291b529eb4a4078254bead 100644
--- a/oneflow/python/framework/sysconfig.py
+++ b/oneflow/python/framework/sysconfig.py
@@ -80,3 +80,8 @@ def has_rpc_backend_grpc() -> bool:
 @oneflow_export("sysconfig.has_rpc_backend_local")
 def has_rpc_backend_local() -> bool:
     return oneflow._oneflow_internal.flags.has_rpc_backend_local()
+
+
+@oneflow_export("sysconfig.cmake_build_type")
+def cmake_build_type() -> str:
+    return oneflow._oneflow_internal.flags.cmake_build_type()