I am working on some inherited code that has several instrument driver projects within one CVI workspace. Each project is in a separate folder structure and each project gets built separately from one another. The final build output (all the .dll's) get built into a final distribution kit.
Question 1
Is this a logical way to organize multiple CVI projects within a single CVI workspace?
Main Topic
Is that I have a case where one project in the workspace depends on the build of another project in the same workspace. So for instance
Project A depends on Project B
Project B needs to get compiled before Project A
Project A needs to be able to find Project B's .h file and .lib output
Question 2
What is the proper way to set up the build settings for each project? Currently, I have Project B build settings configured as follows
Target Type = Dynamic Link Library
Target Settings, Exports = Symbols Marked for Export
Should I use a Shared Library instead?
The Build Steps (e.g. custom build actions, pre-build actions, and post-build actions) are empty. Should I have something in there to move the Project B output file (.lib) into Project A's folder for compilation?
Question 3
Where should Project B's import library (.lib) go after build and how should I set up Project A to find it and compile? I have the Project Dependencies checked in Project A, is that all I need? What is the proper way to add the import library to Project A?
Sorry for all the questions, my goal is to set up a structure that is as straightforward and least confusing as possible for the next person. The CVI code I received was set up very poorly... e.g. duplicate files were everywhere, DLL's were compiled all over the place, incorrect build settings, and hardly any of the projects actually compiled.