diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8c8290cc67623cac361969d73a5ed9f365aa4f9a..7ae8f741fe78fd86ec287cb327499bcb36130c0e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,7 @@ endif()
 
 list(PREPEND CMAKE_MODULE_PATH $ENV{PANDORAPFA}/cmakemodules)
 list(PREPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") # (Find*.cmake)
+include(cmake/CEPCSWOptions.cmake)
 include(cmake/CEPCSWDependencies.cmake)
 
 add_subdirectory(Analysis)
diff --git a/cmake/CEPCSWOptions.cmake b/cmake/CEPCSWOptions.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..4db3c7f8412fb4bb638a5584648de4c3e5832b30
--- /dev/null
+++ b/cmake/CEPCSWOptions.cmake
@@ -0,0 +1,25 @@
+# Define necessary options
+
+##############################################################################
+## CKF Belle
+##############################################################################
+
+option(CEPCSW_USE_SYSTEM_CKF_BELLE 
+       "Use the existing installation of CKF BELLE"
+       TRUE)
+
+if (CEPCSW_USE_SYSTEM_CKF_BELLE)
+  message("Try to use an existing installation of CKF BELLE")
+else()
+  message("Try to use an internal installation of CKF BELLE")
+
+  include(FetchContent)
+
+  FetchContent_Declare(
+    ckf_belle
+    GIT_REPOSITORY https://code.ihep.ac.cn/cepc/externals/ckf_belle.git
+    GIT_TAG        11624a552a9d2382bba3ce9ed9b0cf2d05a89b6e
+  )
+
+  FetchContent_MakeAvailable(ckf_belle)
+endif()