There are many different ways to create, maintain and share CCS projects among teams. While best procedures will depend largely on the size and scope of projects and local build environment, this document captures a few general guidelines and best practices to consider when creating and sharing projects.

More details on each of the below topics is available in the linked documents.

Portability

When creating projects, make sure they are portable so they can be easily shared among multiple users. The key to portable projects is to avoid absolute paths.

Refer to this Portable Projects page for more details.

In addition, if the project needs to be portable across different operating systems:

  • Use forward slashes in all settings and options
  • Use lower-case characters for file/directory names

Build Configurations

Use a single project with multiple build configurations (wherever applicable) to manage builds that have the same code base but need to built for different device variants, build options, etc.

Refer to this Build Configurations page for more details on when this is applicable and how to use it.

Debug considerations

Keep files (source, include, libraries) that will be shared among multiple projects in a common folder and link that folder to the multiple projects, rather than keeping the folder physically within one project and linking to other projects. The latter method may cause confusion with source code correlation when debugging using breakpoints.

Source Control

When working in teams, it is quite common to use source control software/plug-ins for organizing and sharing projects.

Refer to these documents for more details on source control integration with CCS, which CCS project files to check into source control, etc.

Source Control with CCS
Using Git with CCS

Tip:

Do not share workspaces to source control. Workspaces are used to store user settings and preferences which is typically not shared with other users. If you are new to CCS/Eclipse concepts, this page provides an overview of Eclipse concepts, including workspaces and projects.