Cathy,
Thanks for the reply; unfortunately the post did not help me, that was all information I knew already (both in "sharing" and "portable" projects). I think I need a combination of the two topics, and can't figure out how to make that work out.
I'll try to detail our original CCS2 configuration, to hopefully make things clearer, and to illustrate where I'm having problems:
1) Our directory structure is maintained under SVN as:
/trunk
/Core
/Projects
2) Under projects there are two types of projects
/Projects
/"Individual" <projects for single users for testing before they go to ISS>
/"ISS/Group#" <projects that will go to ISS, divided into groups of users that share one project>
each project consists of:
<project path>/Common <.c files>
<project path>/Sat1 <.h file, .pjt file>
<project path>/Sat2 <.h file, .pjt file>
<project path>/Sat3 <.h file, .pjt file>
Under "common" are .c files that all 3 satellites will use. In the template there is only one file (gsp.c)
Under "Sat#" are .h files that define the satellite configuration, and .c files unique to each satellite. In the template there is only one H file (gsp.h) and the CCS2 .pjt file defining the project for each satellite.
Each user is likely to have many projects of their own (each with 1 to 3 Sat# directory with individual .pjt files for each satellite).
3) In CCS2 we had the .pjt file. When a user wanted to create a new project they would have to (for each satellite they planed to use):
- Copy .pjt to the directory of the choosing
- Edit .pjt in a text editor and modify:
- "linked" files path to the correct relative path from where the .pjt is (eg, change ../../../ to ../../ in some cases)
- changed the project name and .out/.map names so they are unique
- Create a Windows Environment Variable called "CORE_DIR" which points to their version of /trunk/Core (only need to do this once)
4) The user would then be ready with a new "personalized" project which would open in CCS and include all the essential "Core" files, plus create unique .out and .map files. This would be done by modifying only one file (.pjt) and creating whatever directory structure they wanted.
5) While /Core is in SVN, I need to let users:
- Choose their own location of /trunk and of /Core (which might change)
- User their own versions of /Core (it should NOT be distributed with the project)
With CCS v4 I keep having problems with:
1) I don't know what files are ESSENTIAL for the user to be able to import a program into the "workspace". I really need it to be just the essential files.
2) I have not been able to easily make changes to the relative links in a CCS v4 project --- I can't just open the .project and change the path in the link there; a "macro.ini" is created, and I can't get it to work right... plus I now need to modify more than one file.
3) I can't figure out where to change the .out and .map file without having to do it inside the IDE; is this a 3rd file I need to modify?
4) I need to include the BIOS configuration as part of CORE, not as part of the template. I can't figure out what files are the ESSENTIAL files to put into the /Core directory for the new BIOS configuration file (what used to be the cdb is now a "textual" file, plus other things get created). I have not tried enough of this step, so maybe this one is easy, but it would be nice to know that all I need to do is move the "textual" file and then create a link.
Summary:
- Biggest issue is for user to be able to have their own directory structure, which may include different levels of relative paths from what is in the template
- A fix would be to enable use of an environment variable in the "link" (CORE_DIR), which would translate to an absolute path, but different for each user; but I can't figure out how to get environment variables into the link locations (I got it to work for -include in the linker configuration, but can't get farther).
- Second, the user needs to be able to easily rename the project and the output files, preferably all from one place (same place as where relative path was fixed)
- Third, I need to figure out the easiest way to package the ESSENTIAL/MINIMAL number of files to distribute to users, with clear instructions on how to personalize their project from the template.
Maybe (hopefully) this is all easy, and I'm just having problems understanding the new "nomenclature" for CCS v4. At this point, though, I do need more help, so that I'm not using all my time on this issue and can complete the rest of the CCS v4 migration process for SPHERES.
Thank you!
Alvar
PS, If you think about it, the "sharing" and the "portable" projects are not examples/instructions for a *template*. They are how to distribute the same project and/or work with the same project. But neither of them really show how to deal with a *template*. A template in MS Office (e.g. a Word dot file), for example, starts with a ready formatted and potentially pre-filled out form, but it defaults to asking the user for a new file name, a new location for the file, etc. This is what would be ideal here (ie, an improvement beyond CCS2) - be able to create a new project from a template, not to import an existing project.