Hi Pritpal, Can you guide me what must I do to create > environment for harbour/contrib/hbqt/*.* > ( on my local machine, until it is placed officially ). > > I want to set up my env properly just not to change > build requirements in future.
We will need a HB_INC_QT and HB_DIR_QT envvars for include, otherwise the hbqt dir should look the exact same as any other 3rd party dependent dirs. Only the list of files, platform/compiler guards and autodetection dirs will need to be adapted. set HB_INC_QT=C:\devl\Qt\2009.01\qt\include set HB_DIR_QT=C:\devl\Qt\2009.01\qt For the case of hbqt (see next section for a proposed component layout), Makefile would look like this: --- contrib/hbqt/Makefile # # $Id$ # ROOT = ../../ LIBNAME=hbqt ifneq ($(HB_ARCHITECTURE),dos) ifneq ($(HB_ARCHITECTURE),os2) ifeq ($(HB_INC_QT),) ifeq ($(HB_XBUILD),) HB_INC_QT = /usr/include /opt/local/include endif endif HB_INC_QT_OK += $(foreach d, $(HB_INC_QT), $(if $(wildcard $(d)/Qt/qatomic.h),$(d),)) ifneq ($(strip $(HB_INC_QT_OK)),) HB_USER_CFLAGS += $(foreach d, $(HB_INC_QT_OK), -I$(d)) CPP_SOURCES=\ hbqt_****.cpp \ PRG_HEADERS=\ hbqt.ch \ hbqtextern.ch \ PRG_SOURCES=\ ....prg \ include $(TOP)$(ROOT)config/header.cf INSTALL_RULE_HEADERS := $(INSTALL_RULE) include $(TOP)$(ROOT)config/lib.cf install:: $(INSTALL_RULE_HEADERS) else include $(TOP)$(ROOT)config/none.cf endif else include $(TOP)$(ROOT)config/none.cf endif else include $(TOP)$(ROOT)config/none.cf endif --- I think QT is just a fantastic tool to base GTQT at first > place and Xbase++ Parts next. Yes, it indeed looks very fine and has every property to become a good base for a portable Harbour GUI. Maybe it's not too late to ask such thing, and since QT can easily become such crucial core component of Harbour, I'd very strongly recommend for you and everyone involved to try to create a well laid out, modular base, where we use the Harbour API the best available way. This ensures that QT won't become bloated and unmaintainable quickly. For this to happen any QT related parts should only rely on QT headers and Harbour API, most importantly *no* Windows API in *any* form. The other important part is modularity. Few things we can create using QT: - QT wrappers, in .cpp. Separate lib: "hbqt" - Pure QT CUI GT: "GTQTC". This needs to be done separately and compatible with GTWVT, GTXWC. - Xbase++ class on top of hbqt lib. Preferable a separate lib, or at least separate .prg-only files. - Mixed CUI-GUI GT. I'm not sure if that was what you had in mind, but in this case, this should be a separate GT, by the name "GTQTG". Since DOS isn't supported anyway in QT, I'd like to propose to lift 8.3 rule in QT related contribs dirs. If there are no objections, let's go that way. In the future we can group these related contribs under one main directory, or shuffle them as looks best, but let's keep it clean and modular please. Brgds, Viktor
_______________________________________________ Harbour mailing list [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour
