diff --git a/scripts/cmake/cmsis-pack-gen/CMakeLists.txt b/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
new file mode 100644
index 0000000..2a25aec
--- /dev/null
+++ b/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
@@ -0,0 +1,53 @@
+#----------------------------------------------------------------------------
+#  Copyright (c) 2022 Arm Limited. All rights reserved.
+#  SPDX-License-Identifier: Apache-2.0
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#----------------------------------------------------------------------------
+
+#########################################################
+# This CMake project just consolidates all APIs to help #
+# generate CMSIS-pack from this repository. Projects    #
+# that need to be included in the pack, should be added #
+# here along with their dependencies.                   #
+#########################################################
+
+cmake_minimum_required(VERSION 3.15.6)
+
+project(ml-embedded-eval-kit-api
+        DESCRIPTION     "Platform agnostic API for all examples.")
+
+set(SOURCE_ROOT             ${CMAKE_CURRENT_LIST_DIR}/../../../source)
+
+set(LOGGING_PROJECT_DIR     ${SOURCE_ROOT}/log)
+set(ARM_MATH_PROJECT_DIR    ${SOURCE_ROOT}/math)
+set(API_COMMON_PROJECT_DIR  ${SOURCE_ROOT}/application/api/common)
+set(API_UC_PROJECT_DIR      ${SOURCE_ROOT}/application/api/use_case)
+
+# Add dependencies first:
+if (NOT TARGET arm_math)
+    add_subdirectory(${ARM_MATH_PROJECT_DIR} ${CMAKE_BINARY_DIR}/math)
+endif()
+
+if (NOT TARGET log)
+    add_subdirectory(${LOGGING_PROJECT_DIR} ${CMAKE_BINARY_DIR}/log)
+endif()
+
+# Add common part and the APIs:
+add_subdirectory(${API_COMMON_PROJECT_DIR} ${CMAKE_BINARY_DIR}/common)
+
+file(GLOB UC_API_LIST "${API_UC_PROJECT_DIR}/*")
+
+foreach(API ${UC_API_LIST})
+    add_subdirectory(${API} ${CMAKE_BINARY_DIR}/${API})
+endforeach()
