I've been using Kinetis Design Studio with the KSDK over the last few years and have generally been very happy with how easy the SDK structure makes it to create self-contained application repositories that can be shared and imported on a different computer into the KDS without the need to set anything up. This was achieved by providing Eclipse “.project” and “.cproject” files for each example in the KSDK, which would use relative imports to link the resources to the parent KSDK files.
To create a self-contained firmware project, one could take a KSDK folder, remove unneeded files and put that into a repository. On any machine with an Eclipse based GNU ARM IDE installed a simple "Import->Existing Projects into Workspace" imports the project and resolves the dependencies.
With the new MCUXpresso I have not yet found a way to easily create a project which can be tracked in a repository and used on another machine. The "problem" is that the IDE now uses absolute file paths for project dependencies by default. No matter if the "Import SDK example" or "New Project" wizard is used the project settings will show that absolute paths are used (e.g. in the "Include paths" tab).
There is the option "Copy Sources" when creating a project (->"If true, copy sources in the workspace project, otherwise link existing sources in the SDK") but it causes the files to be linked to the absolute SDK path.
The “export project(s) to archive (zip)” function creates an archive that can only be used on the same machine by the same user. This is caused by the default import path of the MCUXpresso IDE when a SDK is installed/added which lies under the user folder “/users/username/mcuxpresso/0x/SDKPackages/sdk_name" and the fact that absolute imports are used instead of using a variable like “KSDK_Vxxx_PATH”.
Now of course it would be possible to manually change all imports and references to use a format that is portable across different environments, but it seems very cumbersome and takes away a lot of the advantages in terms of flexibility of the very promising new MCUXpresso features.
What is the suggested way to create projects for use in a repository/team based development environment instead of just locally?