# Updating an Existing Project

Converting an existing v1 project to v2 usually requires only a change to the top-level `CMakeLists.txt`. The project layout, the components, and the application code stay the same. The structure of a v2 project is described in Creating a New Project.

## Switching the Project to v2

Change the project's `CMakeLists.txt` from the v1 form:

    cmake_minimum_required(VERSION 3.22)
    include($ENV{IDF_PATH}/tools/cmake/project.cmake)
    project(my_project)

to the v2 form:

    cmake_minimum_required(VERSION 3.22)
    include($ENV{IDF_PATH}/tools/cmakev2/idf.cmake)
    project(my_project C CXX ASM)
    idf_project_default()

The change is the included file, `tools/cmakev2/idf.cmake` instead of `tools/cmake/project.cmake`, the explicit list of project languages, and the call to idf_project_default. The meaning of each line is described in Creating a New Project.

This is sufficient for most projects. If a component does not build under v2, see Breaking Changes for the differences that may require a change, and Managing Component Backward Compatibility for keeping a component working under both v1 and v2.

此文档对您有帮助吗？

- 反馈已收到，谢谢！
- 如果您有其他意见，欢迎填写乐鑫文档反馈表。

- 我们重视您的反馈。
- 您可以填写乐鑫文档反馈表告诉我们如何改进该文档。