As you've found out, Swordfish doesn't really support using user-assigned folders and paths other than the standard ones. There's not really any path you can change. I could be wrong (since I don't use that feature), but I think the Default Source Folder you're talking about is purely for the editor 'file open' and 'save as' dialogs.
FWIW, here's what I do (this works under XP... don't know about Win7). Some folks would hate this method, I'm sure, but it works for me.
Under my main project folder I create subdirectories to hold all my library files. So that I can get a complete archive of my project along with all of the libraries it was compiled with, I actually don't use the standard library folders at all. If I use a "standard" library, I actually put a local copy of the file into my project userlib folder. It can make library updates a bit of a pain to manage, but that way I know that I can always go back and fully re-create each version of a project no matter what changes may have been made to the SF libraries. It works sort of as a poor man's version control system.
So, I end up with a structure something like this:
Code: Select all
ProjectXYZ
main.bas
file1.bas
file2.bas
userlib
fileA.bas
fileB.bas
<modified copies of SF standard libraries>
convert.bas
math.bas
netlib
fileC.bas
fileD.bas
usblib
fileE.bas
In each of my files, I include the path to the desired file...
Code: Select all
file main.bas:
include "userlib/fileA.bas"
include "userlib/fileB.bas"
include "netlib/fileC.bas"
include "usblib/fileE.bas"
include "userlib/math.bas"
include "file1.bas"
include "file2.bas"
file file1.bas:
include "userlib/fileA.bas"
include "netlib/fileC.bas"
include "usblib/fileE.bas"
include "file2.bas"
file file2.bas:
include "userlib/fileA.bas"
file userlib\fileA.bas:
include "userlib/fileB.bas"
include "userlib/fileC.bas"
include "userlib/convert.bas"
file netlib\fileC.bas:
include "netlib/fileD.bas"
include "userlib/convert.bas"
I make sure that all of the 'include' statements in my library files have a path in them so that they don't ever default to the standard SF ones.
So, I guess it sort of defeats the purpose of a library since each project has its own. As I say, if you find a bug in a library this can be a bit of a pain to correct since the bug's now in multiple project's copies. I'm more concerned with version control, and for me this works easier than archiving the compiler with each project/version since all I need to do is copy the project subdirectory and I get all the required files.
When I start a new project, I just copy the folders from one of my other similar projects into the new project subdirectory.