Hello Viktor
Viktor Szakáts wrote: > > Note: "for me". I have my own (actually quite simple) system > which sets tool environment, so any tool which tries to > replicate that, is just a nuisance and double effort for me, > since I have keep my system configured, plus keep hbide > configuration update so that it can also configure my system. > Believe me, I do not want to configure anything in HBIDE. This was the first commandant I wrote on my scratch book. I am trying to gather all information how and what HBIDE must supply to HBMK2 to compile projects under different compiler settings. I know nothing about make system at all. > Setting tool environment varies a lot from platform to platform. > > Huge part of hbmk2 deals with detecting these environments, and > it sometimes even does some configuration automatically to make > it simpler for users (bcc, watcom, f.e.). > > If you plan to add such feature to hbide, first you'll have to > precisely _emulate_ natural tool environment scenarios, so that > hbmk2 detects it as if it were configured by the tool installer > or the documented method for given tool (as listed in INSTALL > in examples section, although this is not complete, and never > will be). To achieve that, you'll have to know much detail about > the tool (f.e. version, locations, extensions), plus you'll have > to maintain these logics perfectly in sync with official setup > method for every tool and every new version of them as they are > released. > > For *nix systems, you'll have to deal with the whole thing a > little bit differently, since there most tools are always > available in PATH, and they require other means of configurations, > many time only detection. > > I'm not saying it's impossible, but it's a huge duplicate task, > very error prone, and makes hbmk2 fail easily if not done well. > As above. > Now, there is a way to avoid all above pitfalls and create hbide's > integrated configuration system in a generic way (although even > this has some dangers). I'll try to describe it in a few points: > > - Default state: No configuration is done by hbide, it uses what > it gets from environment and let hbmk2 do it's autodetection job. > (default/automatic/system mode) > Probably this is not what HBIDE is intended for. _no configuration on its part_ is a valid point, and I want to stick to it, but it is not valid that it accepts what user has set before executing it. I need a way to forward HBMK2 _what user want to configure_ plus _what he want to build_. This way HBIDE could be executed from any location. > - Support for 'compiler profile's: > User can add, delete, edit such named profiles, each > profile does nothing more than have a list of system commands, > which get executed before calling hbmk2. > This is exactly hbide.env is thought of, though I am not sure, yet, what contents it will hold finally. > - No hard-wired 'compiler profile' in hbide .prg code. > 100% correct. > - No preset 'compiler profile's in hbide SVN area (f.e. in .ini). > At present also it is not, nor it will be in the future. > Last two will assure that hbide is independent of actual > tool setting, so we don't have to keep it in sync with INSTALL > information, it cannot have anything non-portable, etc. > For sure, yes. > This is quite flexible and makes it possible for everyone to > customize profiles in an easy way, using existing methods or > documentation. Here the only challenge is executing shell > commands and then calling hbmk2. This needs to be done > differently on different platforms. Maybe the easiest is > to create a platform dependent .sh / .bat / .cmd file on the > fly and call that with hb_process*() API. > Agreed. Now the point is the design time considerations. 1. User will write commands in a profile ( say .env ) 2. This profile is essentially a replica what he otherwise will invoke via .bat/.sh/.cmd before executing HBMK2. 3. HBIDE or HBMK2 ( I would like HBMK2 ) process this profile before invoking the next step. 4. HBIDE simply forwards two files 1) .env and 2) .hbp to HBMK2. 5. HBMK2 runs silently in the background supplying compile/link output to HBIDE via some callback mechanism. Hopefully I am clear in opening up my mind. Regards Pritpal Bedi -- View this message in context: http://old.nabble.com/Create-Process-API---Brief-Overview-Requested-tp26696490p26704862.html Sent from the Harbour - Dev mailing list archive at Nabble.com. _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour