If it is all so wrong and backwards, why are you the first guy who has a problem with it?
It's probably because I'm the only person here who has to deal with his include paths being so long he can barely compile at all because of recursive includes:
http://www.purebasic.fr/english/viewtop ... =3&t=43921
Considering that my largest workspace includes over a 200 PureBasic files across a dozen interdependent projects, I'm pretty fanatical about how I handle my includes.
I'm frustrated by the fact that as much as I love the PureBasic IDE, it's a lot easier to automate cross-project build dependencies and tests from the command line. It's also a terrific sanity check to ensure that the entire workspace is up to date.
But its not everything backwards and broken just because you have run into a specific problem just now.
Your suggestion for a command line constant, while a novel idea, is a backwards approach. And this "specific problem" that I am experiencing "just now" is something that I posted about years ago. It has also been requested as far back as 2005:
http://www.purebasic.fr/english/viewtop ... f=3&t=8119
I'm only being especially vocal about it now because I can only compile my project from a root path instead of across a network and I'm having to rename my files and folders to help mitigate the length of my includes.
There are some features I would really like PureBasic to have but this one (relative includes) is making my every day experience extremely unpleasant.
Here is an example of what my command line output looks like when I compile a PureBasic project. These paths aren't even legible:
Code: Select all
$ sh build.sh
Building PureGDK_Upgrade-2.0b-1.exe..
******************************************
PureBasic 4.51 (Windows - x86)
******************************************
Compiling ./prj.Installer.pb
Loading external libraries...
Starting compilation...
Including source: ./prj.Installer.pb\..\h.Installer.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.WebGadget.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.WebGadget.pb\..\h.StringField.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.WebGadget.pb\..\h.StringField.pb\..\lib.StringField.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.WebGadget.pb\..\lib.WebGadget.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.Wizard.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.Wizard.pb\..\h.Controller.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.Wizard.pb\..\h.Controller.pb\..\lib.Controller.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.Wizard.pb\..\h.GetUniquePath.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.Wizard.pb\..\h.GetUniquePath.pb\..\lib.GetUniquePath.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.Wizard.pb\..\lib.Wizard.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.FlashWindow.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.FlashWindow.pb\..\lib.FlashWindow.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\..\h.Window.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\..\h.Window.pb\..\h.InterlockedCompareExchange.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\..\h.Window.pb\..\h.InterlockedCompareExchange.pb\..\l
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\..\h.Window.pb\..\h.Malloc.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\..\h.Window.pb\..\h.Malloc.pb\..\lib.Malloc.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\..\h.Window.pb\..\lib.Window.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CompileExecutable.pb\..\lib.DBP_CompileExecutable.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CopyCompilerFolder.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_CopyCompilerFolder.pb\..\lib.DBP_CopyCompilerFolder.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\..\h.Registry.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\..\h.Registry.pb\..\lib.Registry.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\..\h.GetFullPathName.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\..\h.GetFullPathName.pb\..\lib.GetFullPathName.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\..\h.GetLongPathName.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\..\h.GetLongPathName.pb\..\lib.GetLongPathName.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_GetPath.pb\..\lib.DBP_GetPath.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_IsLicensed.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_IsLicensed.pb\..\h.DBP_PatchCompiler.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_IsLicensed.pb\..\h.DBP_PatchCompiler.pb\..\lib.DBP_PatchCompiler.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_IsLicensed.pb\..\lib.DBP_IsLicensed.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_VDat.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\DBP\h.DBP.pb\..\h.DBP_VDat.pb\..\lib.DBP_VDat.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.StartMenuRequester.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.StartMenuRequester.pb\..\h.AlignedStringGadget.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.StartMenuRequester.pb\..\h.AlignedStringGadget.pb\..\lib.AlignedStringGadget.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.StartMenuRequester.pb\..\lib.StartMenuRequester.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.SpecialFolderLocation.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.SpecialFolderLocation.pb\..\lib.SpecialFolderLocation.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.XMLPackager.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.XMLPackager.pb\..\lib.XMLPackager.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.INI.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.INI.pb\..\lib.INI.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.StripCharacters.pb
Including source: G:\PureGDK_Dev\workspaces\installer\././prj.Installer.pb\..\h.Installer.pb\..\..\..\includes\PureBasic\h.StripCharacters.pb\..\lib.StripCharacters.pb
4299 lines processed.
Creating executable "PureGDK_Upgrade-2.0b-1.exe".
- Feel the ..PuRe.. Power -
Compilation ok!