www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.dwt - harmonia & build

reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
build expects to see a "main" function inside the file sent to it thru 
the command line.
Harmonia doesn't work that way. The main function is somewhere else!!

How can I get build to realize this fact and properly invoke the linker 
to build an exe file instead of a lib file?

I tried passing the win32application.d file to build, but I got some 
wierd link errors!

-----------------------
E:\Hasan\Coding\harmonia\svn\samples\browser>build browser.d 
C:\dmd\src\phobos\harmonia\ui\native\win32application.d -full -clean
TODO (cursorSize): make this through SystemMetrics
C:\dmd\bin\..\..\dm\bin\link.exe 
C:\dmd\src\phobos\harmonia\ui\native\win32application+browser,browser.exe,,gdi32.lib+user32+kernel32,browser.def/noi;

OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application)
  Error 42: Symbol Undefined 
_D8harmonia2ui6native11win32window21RegisterWindowClassesFZv
C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application)
  Error 42: Symbol Undefined 
__Class_8harmomia5utils6string18__T10TokenizerTTuZ10TokenizerT
C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application)
  Error 42: Symbol Undefined 
_D8harmomia5utils6string18__T10TokenizerTTuZ10TokenizerT5_ctorFAuAuuZC8harmomia5utils6string18__T10TokenizerTTuZ10TokenizerT
C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window13_currentEventC8harmonia2ui6events5Event
C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application)
  Error 42: Symbol Undefined 
_D8harmonia2ui6native11win32window5Popup8doEventsFZb
C:\dmd\src\phobos\harmonia\ui\native\win32application.obj(win32application)
  Error 42: Symbol Undefined 
_D8harmonia2ui11application11Application8doEventsFZb
browser.obj(browser)
  Error 42: Symbol Undefined __Class_8harmonia2ui11application10FileDialog
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2io6mmfile6MMFile4openFAuZC8harmonia2io6mmfile6MMFile
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui8commands11FileCommand4OpenC8harmonia2ui8commands7Command
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui8commands11FileCommand4ExitC8harmonia2ui8commands7Command
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2gx8geometry4rect5widthFZi
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2gx8geometry5point6opCallFiiZS8harmonia2gx8geometry5point
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2gx8geometry4size6opCallFiiZS8harmonia2gx8geometry4size
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2gx8geometry4rect6opCallFS8harmonia2gx8geometry5pointS8harmonia2gx8geometry4sizeZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2gx8geometry4rect6heightFZi
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget2onFC8harmonia2ui6events12EventCommandZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui11application11Application7onStartFPFZvZPFZv
browser.obj(browser)
  Error 42: Symbol Undefined __Class_8harmonia2ui4menu4Menu
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui4menu4Menu5_ctorFAuZC8harmonia2ui4menu4Menu
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window5_ctorFE8harmonia2ui6window6Window4TYPEC8harmonia2ui6widget6WidgetZC8harmonia2ui6window6Window
browser.obj(browser)
  Error 42: Symbol Undefined 
__Class_8harmonia2ui10containers7toolbar8ToolBand
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui10containers7toolbar8ToolBand5_ctorFZC8harmonia2ui10containers7toolbar8ToolBand
browser.obj(browser)
  Error 42: Symbol Undefined __Class_8harmonia2ui4menu7MenuBar
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui4menu7MenuBar5_ctorFZC8harmonia2ui4menu7MenuBar
browser.obj(browser)
  Error 42: Symbol Undefined __Class_8harmonia4html4view8HtmlView
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia4html4view8HtmlView5_ctorFZC8harmonia4html4view8HtmlView
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window8extenderFC6ObjectZC6Object
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window8extenderFZC6Object
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window13doContextMenuFbZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window12setFocusNextFbZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window14getNextTabStopFC8harmonia2ui6widget6WidgetbZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window5ownerFC8harmonia2ui6widget6WidgetZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window5ownerFZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window7closingFKbZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window9destroyedFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window7createdFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window5movedFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window7resizedFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window9showModalFDFZbZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window9isVisibleFZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window5stateFE8harmonia2ui6window6Window5STATEkZE8harmonia2ui6window6Window5STATE
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window5stateFZE8harmonia2ui6window6Window5STATE
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window6updateFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window10setCaptureFC8harmonia2ui6widget6WidgetZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window12restoreFocusFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window13commandTargetFZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window8setFocusFC8harmonia2ui6widget6WidgetbZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window17adjustWindowPlaceFS8harmonia2gx8geometry4rectZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window6renderFC8harmonia2gx8graphics8GraphicsZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window10windowTypeFZE8harmonia2ui6window6Window4TYPE
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window13windowCaptionFAuZAu
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window13windowCaptionFZAu
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window11windowPlaceFS8harmonia2gx8geometry4rectZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window11windowPlaceFZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window8finalizeFC8harmonia2gx8graphics8GraphicsZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window10initializeFC8harmonia2gx8graphics8GraphicsZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window5_dtorFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets12layoutBlocksFKS8harmonia2gx8geometry4rectZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets10layoutFlowFKS8harmonia2gx8geometry4rectZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets6valuesFHAuS3std5boxer3boxZk
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets6valuesFZHAuS3std5boxer3box
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets11descendantsFbZS8harmonia2ui7widgets7Widgets9DEEP_ENUM
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets8backwardFZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array4ENUM
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7forwardFZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array4ENUM
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7opCat_rFAC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7opCat_rFC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets5opCatFAC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets5opCatFC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets11opCatAssignFAC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets11opCatAssignFC8harmonia2ui6widget6WidgetZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7opSliceFkkZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7opSliceFZS8harmonia5types38__T5arrayTC8harmonia2ui6widget6WidgetZ5array
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets13opIndexAssignFC8harmonia2ui6widget6WidgetkZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7opIndexFkZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets9lastIndexFZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets5clearFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui7widgets7Widgets7isEmptyFZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets7indexOfFC8harmonia2ui6widget6WidgetZi
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets6removeFC8harmonia2ui6widget6WidgetZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets6insertFiAC8harmonia2ui6widget6WidgetZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets3popFZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets4pushFAC8harmonia2ui6widget6WidgetZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets6removeFiZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets6insertFiC8harmonia2ui6widget6WidgetZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets4pushFC8harmonia2ui6widget6WidgetZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6themes5theme5Style
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget13stopAnimationFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget7animateFS8harmonia2gx8geometry4rectE8harmonia2ui5utils9ANIMATIONDFZvZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget6detachFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets16applyDescendantsFDFKC8harmonia2ui6widget6WidgetZibZi
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget12isAncestorOfFC8harmonia2ui6widget6WidgetZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget15isCommandTargetFZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9isInFocusFZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8setFocusFZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8takenOutFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7takenInFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget6cursorFE8harmonia2ui6widget6Widget6CURSORZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9stopTimerFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget10startTimerFiZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget5indexFZi
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget4iconFZC8harmonia2gx6images4Icon
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4textFAuZAu
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4textFZAu
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7tabStopFZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8attachedFZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window6windowFZC8harmonia2ui6window6Window
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6window6Window9hideCaretFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window9showCaretFS8harmonia2gx8geometry4rectZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7captureFbZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets4findFS8harmonia2gx8geometry5pointZC8harmonia2ui6widget6Widget
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget19contextMenuCommandsFZAC8harmonia2ui8commands7Command
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget13onContextMenuFbZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget10onFocusOutFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9onFocusInFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window2onFC8harmonia2ui6events11EventWidgetZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7onTimerFZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget2onFC8harmonia2ui6events12EventControlZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget2onFC8harmonia2ui6events8EventKeyZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window2onFC8harmonia2ui6events12EventPointerZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window7refreshFS8harmonia2gx8geometry4rectZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7refreshFZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window11controlTypeFZE8harmonia2ui11definitions11ControlType
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget5themeFZC8harmonia6themes5theme5Theme
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget5styleFC8harmonia6themes5theme5StyleZC8harmonia6themes5theme5Style
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window5styleFZC8harmonia6themes5theme5Style
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window8graphicsFZC8harmonia2gx8graphics8Graphics
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7enabledFbZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7enabledFZb
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget7visibleFZb
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget9screenPosFZS8harmonia2gx8geometry5point
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window9screenPosFS8harmonia2gx8geometry5pointZS8harmonia2gx8geometry5point
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget9windowPosFZS8harmonia2gx8geometry5point
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6window6Window9windowPosFS8harmonia2gx8geometry5pointZS8harmonia2gx8geometry5point
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget12doRepositionFZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9optHeightFiZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9optHeightFZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8optWidthFZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9maxHeightFiZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9maxHeightFZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8maxWidthFZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9minHeightFiZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget9minHeightFZi
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8minWidthFZi
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget11clientPlaceFZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget7paddingFZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget6marginFZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget5placeFS8harmonia2gx8geometry5pointZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget5placeFS8harmonia2gx8geometry4sizeZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget5placeFS8harmonia2gx8geometry4rectZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget5placeFZS8harmonia2gx8geometry4rect
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui7widgets7Widgets11drawContentFC8harmonia2gx8graphics8GraphicsZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget14drawBackgroundFC8harmonia2gx8graphics8GraphicsZv
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget4drawFC8harmonia2gx8graphics8GraphicsZv
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4nameFAuZAu
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget4nameFZAu
browser.obj(browser)
  Error 42: Symbol Undefined 
_D8harmonia2ui6widget6Widget6parentFZC8harmonia2ui7widgets7Widgets
browser.obj(browser)
  Error 42: Symbol Undefined _D8harmonia2ui6widget6Widget8toStringFZAa
browser.obj(browser)
  Error 42: Symbol Undefined __Class_8harmonia2ui6window6Window
--- errorlevel 158
Mar 10 2006
next sibling parent reply "Andrew Fedoniouk" <news terrainformatica.com> writes:
"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
news:dutvqf$1pek$1 digitaldaemon.com...
 build expects to see a "main" function inside the file sent to it thru the 
 command line.
 Harmonia doesn't work that way. The main function is somewhere else!!

1) Windows GUI application has WinMain() function instead of main(). 2) Harmonia tries to isolate you from this platform specific details (e.g. you don't need to reproduce "message pump" in each your application), this is why WinMain function is a part of Harmonia implementation. You don't need to write WinMain each time. Please see: http://harmonia.terrainformatica.com/pmwiki.php/Harmonia/HarmoniaApplication
 How can I get build to realize this fact and properly invoke the linker to 
 build an exe file instead of a lib file?

 I tried passing the win32application.d file to build, but I got some wierd 
 link errors!

I don't know. Would appreciate if someone will tell me. You should be able to pass to build.exe name of your main.d file and build target type - exe. Probably build.exe needs some additional flags in command line? I don't know. Andrew Fedoniouk. http://terrainformatica.com
Mar 11 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
Yeah, I realize the thing about the main function being an 
implementation detail.

I think when build sees the WinMain() in the win32application.d it will 
try to build an executable.

Now, win32application.d is eventually seen by "build" as it tries to add 
the imported files.

The problem is, When I tried this yesterday, harmonia was inside the 
phobos source directory; it turned out that build "ignores" phobos 
modules!! I discovered this when I used the -V switch on build.

I tried to move harmonia to somewhere else, and it seemed to work 
better, but still produces errors.

There were a couple of problems ..
First, harmonia uses a different version of std.boxer from what's in phobos.
I had to change the std.boxer that came with harmonia to somethign else 
(I made it hboxer) and edit a couple of files to fix the imports.

The second problem was, some modules have names that don't match the 
path where they reside, so I had to fix those. e.g. harmonia/string.d is 
module harmonia.utils.string

When I fixed all that, I got a series of errors along the lines of ..

------------------------------------------------------------------
C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
  Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE
C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090FFH Record Type 0091
  Error 1: Previous Definition Different : _MAILSLOT_WAIT_FOREVER
C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 0911AH Record Type 0091
  Error 1: Previous Definition Different : _INVALID_HANDLE_VALUE
C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 09139H Record Type 0091
  Error 1: Previous Definition Different : _INVALID_SET_FILE_POINTER
C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 09157H Record Type 0091
  Error 1: Previous Definition Different : _INVALID_FILE_SIZE
C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 092DEH Record Type 0091
(......)
------------------------------------------------------------------

and so on ..

The good news is, build was trying to build an .exe
This is what I got before the error list:

---------------------------------------------------------------------
Wrong conversion!
TODO: selected and value attributes
TODO: selected and value attributes
TODO (cursorSize): make this through SystemMetrics
C:\dmd\bin\..\..\dm\bin\link.exe 
C:\dmd\src\other\harmonia\themes\theme+((..........))+C:\dmd\src\other\harmonia\ui\controls\editbox,browser.exe,,gdi32.lib+user32+kernel32,browser.def/noi;

OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
-----------------------------------------------------------------------

I thought the clurpit was hboxer (the boxer module that harmonia uses), 
I just thought that maybe for some reason, the linker thinks the boxer 
implementation is in phobos.lib

I tried to edit harmonia to use the std.boxer in phobos, it wasn't easy 
or fun at all, and in the end I still got the exact same kind of errors 
above.

I thought maybe it's the windows headers that harmonia uses, but at that 
I was tired of trying to fix it. So I stopped working on it.

Does anyone know what does this kind of error messege indicates?

C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
  Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE

Andrew Fedoniouk wrote:
 "Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
 news:dutvqf$1pek$1 digitaldaemon.com...
 
build expects to see a "main" function inside the file sent to it thru the 
command line.
Harmonia doesn't work that way. The main function is somewhere else!!

1) Windows GUI application has WinMain() function instead of main(). 2) Harmonia tries to isolate you from this platform specific details (e.g. you don't need to reproduce "message pump" in each your application), this is why WinMain function is a part of Harmonia implementation. You don't need to write WinMain each time. Please see: http://harmonia.terrainformatica.com/pmwiki.php/Harmonia/HarmoniaApplication
How can I get build to realize this fact and properly invoke the linker to 
build an exe file instead of a lib file?

I tried passing the win32application.d file to build, but I got some wierd 
link errors!

I don't know. Would appreciate if someone will tell me. You should be able to pass to build.exe name of your main.d file and build target type - exe. Probably build.exe needs some additional flags in command line? I don't know. Andrew Fedoniouk. http://terrainformatica.com

Mar 11 2006
parent reply "Andrew Fedoniouk" <news terrainformatica.com> writes:
"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
news:duvka2$1erk$1 digitaldaemon.com...
 Yeah, I realize the thing about the main function being an implementation 
 detail.

 I think when build sees the WinMain() in the win32application.d it will 
 try to build an executable.

 Now, win32application.d is eventually seen by "build" as it tries to add 
 the imported files.

 The problem is, When I tried this yesterday, harmonia was inside the 
 phobos source directory; it turned out that build "ignores" phobos 
 modules!! I discovered this when I used the -V switch on build.

 I tried to move harmonia to somewhere else, and it seemed to work better, 
 but still produces errors.

 There were a couple of problems ..
 First, harmonia uses a different version of std.boxer from what's in 
 phobos.
 I had to change the std.boxer that came with harmonia to somethign else (I 
 made it hboxer) and edit a couple of files to fix the imports.

I tried to use boxter from phobos but D does not like templates to be in library. Did something change in this area?
 The second problem was, some modules have names that don't match the path 
 where they reside, so I had to fix those. e.g. harmonia/string.d is module 
 harmonia.utils.string

 When I fixed all that, I got a series of errors along the lines of ..

 ------------------------------------------------------------------
 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
  Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE
 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090FFH Record Type 0091
  Error 1: Previous Definition Different : _MAILSLOT_WAIT_FOREVER
 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 0911AH Record Type 0091
  Error 1: Previous Definition Different : _INVALID_HANDLE_VALUE
 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 09139H Record Type 0091
  Error 1: Previous Definition Different : _INVALID_SET_FILE_POINTER
 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 09157H Record Type 0091
  Error 1: Previous Definition Different : _INVALID_FILE_SIZE
 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 092DEH Record Type 0091
 (......)
 ------------------------------------------------------------------

 and so on ..

 The good news is, build was trying to build an .exe
 This is what I got before the error list:

 ---------------------------------------------------------------------
 Wrong conversion!
 TODO: selected and value attributes
 TODO: selected and value attributes
 TODO (cursorSize): make this through SystemMetrics
 C:\dmd\bin\..\..\dm\bin\link.exe 
 C:\dmd\src\other\harmonia\themes\theme+((..........))+C:\dmd\src\other\harmonia\ui\controls\editbox,browser.exe,,gdi32.lib+user32+kernel32,browser.def/noi;

 OPTLINK (R) for Win32  Release 7.50B1
 Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
 -----------------------------------------------------------------------

 I thought the clurpit was hboxer (the boxer module that harmonia uses), I 
 just thought that maybe for some reason, the linker thinks the boxer 
 implementation is in phobos.lib

 I tried to edit harmonia to use the std.boxer in phobos, it wasn't easy or 
 fun at all, and in the end I still got the exact same kind of errors 
 above.

 I thought maybe it's the windows headers that harmonia uses, but at that I 
 was tired of trying to fix it. So I stopped working on it.

 Does anyone know what does this kind of error messege indicates?

 C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
  Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE

I suspect that this means that windows.d defintions were included twice. Harmonia has its own set of Win API deifinitions. BTW: what will happen if you will just run build.bat from harmonia root folder? Will it build samples on your machine? Andrew.
 Andrew Fedoniouk wrote:
 "Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
 news:dutvqf$1pek$1 digitaldaemon.com...

build expects to see a "main" function inside the file sent to it thru 
the command line.
Harmonia doesn't work that way. The main function is somewhere else!!

1) Windows GUI application has WinMain() function instead of main(). 2) Harmonia tries to isolate you from this platform specific details (e.g. you don't need to reproduce "message pump" in each your application), this is why WinMain function is a part of Harmonia implementation. You don't need to write WinMain each time. Please see: http://harmonia.terrainformatica.com/pmwiki.php/Harmonia/HarmoniaApplication
How can I get build to realize this fact and properly invoke the linker 
to build an exe file instead of a lib file?

I tried passing the win32application.d file to build, but I got some 
wierd link errors!

I don't know. Would appreciate if someone will tell me. You should be able to pass to build.exe name of your main.d file and build target type - exe. Probably build.exe needs some additional flags in command line? I don't know. Andrew Fedoniouk. http://terrainformatica.com


Mar 11 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
The supplied build.bat works fine.
but I don't want to have to bother with make files! I've never used make 
files with C++, never with D, and I don't intend to use them in the 
future, specially not with D!

Andrew Fedoniouk wrote:
<snip>
 I tried to use boxter from phobos but D does not like templates to be
 in library. Did something change in this area?

I have no idea what's happening with templates nor with std.boxer! I remember hearing a couple of times that boxer requires rebuilding phobos with -release or something like that, but I really have no clue. <snip>
Does anyone know what does this kind of error messege indicates?

C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
 Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE

I suspect that this means that windows.d defintions were included twice. Harmonia has its own set of Win API deifinitions.

I thought about that, but didn't really know what I should do. Windows definition are just definitions, I think the implementation is not supposed to be in phobos, but rather in some lib/dll in the WINDOWS\system32 folder (or something like that). I just discovered .. MAILSLOT_NO_MESSAGE is a windows constant!! everything else in this error list is a windows constant too! I think I might just need a way to prevent build from using the windows definitions from phobos, or something like that.
Mar 11 2006
parent reply "Andrew Fedoniouk" <news terrainformatica.com> writes:
"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
news:dv0c0n$2grl$1 digitaldaemon.com...
 The supplied build.bat works fine.
 but I don't want to have to bother with make files! I've never used make 
 files with C++, never with D, and I don't intend to use them in the 
 future, specially not with D!

I am not asking you to use make :) I just need to verify that you have everything in place you are dealing with problems of build utility and not with Harmonia itself. This is a bit different story, eh? OT: I would suggest to grab VS 6 somewhere if you don't like makefiles. There is a .dsw file - workspace file for VS (release and debug modes supported)
 Andrew Fedoniouk wrote:
 <snip>
 I tried to use boxter from phobos but D does not like templates to be
 in library. Did something change in this area?

I have no idea what's happening with templates nor with std.boxer! I remember hearing a couple of times that boxer requires rebuilding phobos with -release or something like that, but I really have no clue.

I beleive it is a bad idea to put any templated stuff in phobos.
 <snip>
Does anyone know what does this kind of error messege indicates?

C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
 Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE

I suspect that this means that windows.d defintions were included twice. Harmonia has its own set of Win API deifinitions.

I thought about that, but didn't really know what I should do. Windows definition are just definitions, I think the implementation is not supposed to be in phobos, but rather in some lib/dll in the WINDOWS\system32 folder (or something like that). I just discovered .. MAILSLOT_NO_MESSAGE is a windows constant!! everything else in this error list is a windows constant too! I think I might just need a way to prevent build from using the windows definitions from phobos, or something like that.

I think that build.exe is too smart here. It should not include anything non referenced from modules of the project. Or at least it should be some command line options for saying that. Andrew.
Mar 11 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
I noticed a comment in the make file ..
#native\win32.d - do not compile it as it is just a 'header'

so I looked in the build documentation, and found that inserting
version(build) { pragma(nolink); }
will tell build to not link this file, so I added it to
harmonia/native/win32.d

and it compiled fine .. BUT
When I run it, I get an "access voilation" messege and then the program 
exits.





Andrew Fedoniouk wrote:
 "Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
 news:dv0c0n$2grl$1 digitaldaemon.com...
 
The supplied build.bat works fine.
but I don't want to have to bother with make files! I've never used make 
files with C++, never with D, and I don't intend to use them in the 
future, specially not with D!

I am not asking you to use make :) I just need to verify that you have everything in place you are dealing with problems of build utility and not with Harmonia itself. This is a bit different story, eh? OT: I would suggest to grab VS 6 somewhere if you don't like makefiles. There is a .dsw file - workspace file for VS (release and debug modes supported)
Andrew Fedoniouk wrote:
<snip>

I tried to use boxter from phobos but D does not like templates to be
in library. Did something change in this area?

I have no idea what's happening with templates nor with std.boxer! I remember hearing a couple of times that boxer requires rebuilding phobos with -release or something like that, but I really have no clue.

I beleive it is a bad idea to put any templated stuff in phobos.
<snip>

Does anyone know what does this kind of error messege indicates?

C:\dmd\bin\..\lib\phobos.lib(windows)  Offset 090E3H Record Type 0091
Error 1: Previous Definition Different : _MAILSLOT_NO_MESSAGE

I suspect that this means that windows.d defintions were included twice. Harmonia has its own set of Win API deifinitions.

I thought about that, but didn't really know what I should do. Windows definition are just definitions, I think the implementation is not supposed to be in phobos, but rather in some lib/dll in the WINDOWS\system32 folder (or something like that). I just discovered .. MAILSLOT_NO_MESSAGE is a windows constant!! everything else in this error list is a windows constant too! I think I might just need a way to prevent build from using the windows definitions from phobos, or something like that.

I think that build.exe is too smart here. It should not include anything non referenced from modules of the project. Or at least it should be some command line options for saying that. Andrew.

Mar 11 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
Hasan Aljudy wrote:
 I noticed a comment in the make file ..
 #native\win32.d - do not compile it as it is just a 'header'
 
 so I looked in the build documentation, and found that inserting
 version(build) { pragma(nolink); }
 will tell build to not link this file, so I added it to
 harmonia/native/win32.d
 
 and it compiled fine .. BUT
 When I run it, I get an "access voilation" messege and then the program 
 exits.
 

When I turn on the -debug switch, the messege becomes:
ERROR: Access Voilation
while processing win message #0x0

Here's the stack frame from windbg 00 image00400000!D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6the es5theme5Style+0x17 [C:\dmd\src\other\harmonia\ui\window.d 303] 01 image00400000!D8harmonia2ui6widget6Widget5styleFZC8harmonia6the es5theme5Style+0x3f [C:\dmd\src\other\harmonia\ui\widget.d 187] 02 image00400000!D8harmonia2ui7widgets97__T10ScrollableTC8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPanelTZ10Scrollable11clientPlaceFZS8harmonia2g 8geometry4rect+0x48 [C:\dmd\src\other\harmonia\html\view.d 385] 03 image00400000!D8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPan lT4htmlFAaAuZb+0x8f [C:\dmd\src\other\harmonia\html\view.d 143] 04 image00400000!D7samples7testbed7MyFrame5_ctorFZC7samples7testbed7MyFrame+0x91 [browser.d 48] 05 image00400000!D7samples7testbed11_staticCtorFZv14__funcliteral1FZv+0x20 [browser.d 33] 06 image00400000!D8harmonia2ui6native16win32application17NativeApplication10 nitializeFAuZv+0x80 [C:\dmd\src\other\harmonia\ui\native\win32application.d 100] 07 image00400000!WinMain+0xb7 [C:\dmd\src\other\harmonia\ui\native\win32application.d 496] 08 image00400000!WinMainCRTStartup+0xaa WARNING: Stack unwind information not available. Following frames may be wrong. 09 kernel32!RegisterWaitForInputIdle+0x49
Mar 12 2006
parent reply "Andrew Fedoniouk" <news terrainformatica.com> writes:
"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
news:dv0luu$2to5$1 digitaldaemon.com...
 Hasan Aljudy wrote:
 I noticed a comment in the make file ..
 #native\win32.d - do not compile it as it is just a 'header'

 so I looked in the build documentation, and found that inserting
 version(build) { pragma(nolink); }
 will tell build to not link this file, so I added it to
 harmonia/native/win32.d

 and it compiled fine .. BUT
 When I run it, I get an "access voilation" messege and then the program 
 exits.

When I turn on the -debug switch, the messege becomes:
ERROR: Access Voilation
while processing win message #0x0

Here's the stack frame from windbg 00 image00400000!D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6the es5theme5Style+0x17 [C:\dmd\src\other\harmonia\ui\window.d 303]

It is here: return Theme.defaultTheme.themeStyle(id); Seems like module harmonia.themes.pathfinder; was not included by build.exe. It has: static this() { // install this as a default theme defaultTheme = new PathfinderTheme(); } module harmonia.themes.pathfinder; is theme implementation and has no direct external references. You need to tell to build.exe somehow that it must include it.
 01 
 image00400000!D8harmonia2ui6widget6Widget5styleFZC8harmonia6the
es5theme5Style+0x3f 
 [C:\dmd\src\other\harmonia\ui\widget.d   187]
 02 
 image00400000!D8harmonia2ui7widgets97__T10ScrollableTC8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPanelTZ10Scrollable11clientPlaceFZS8harmonia2g
8geometry4rect+0x48 
 [C:\dmd\src\other\harmonia\html\view.d   385]
 03 
 image00400000!D8harmonia4html4view46__T10HtmlPanelTTC8harmonia2ui7widgets7WidgetsZ10HtmlPan
lT4htmlFAaAuZb+0x8f 
 [C:\dmd\src\other\harmonia\html\view.d   143]
 04 
 image00400000!D7samples7testbed7MyFrame5_ctorFZC7samples7testbed7MyFrame+0x91 
 [browser.d   48]
 05 image00400000!D7samples7testbed11_staticCtorFZv14__funcliteral1FZv+0x20 
 [browser.d   33]
 06 
 image00400000!D8harmonia2ui6native16win32application17NativeApplication10
nitializeFAuZv+0x80 
 [C:\dmd\src\other\harmonia\ui\native\win32application.d   100]
 07 image00400000!WinMain+0xb7 
 [C:\dmd\src\other\harmonia\ui\native\win32application.d   496]
 08 image00400000!WinMainCRTStartup+0xaa
 WARNING: Stack unwind information not available. Following frames may be 
 wrong.
 09 kernel32!RegisterWaitForInputIdle+0x49 

Mar 12 2006
parent Hasan Aljudy <hasan.aljudy gmail.com> writes:
Andrew Fedoniouk wrote:
 "Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message 
 news:dv0luu$2to5$1 digitaldaemon.com...
 
Hasan Aljudy wrote:

I noticed a comment in the make file ..
#native\win32.d - do not compile it as it is just a 'header'

so I looked in the build documentation, and found that inserting
version(build) { pragma(nolink); }
will tell build to not link this file, so I added it to
harmonia/native/win32.d

and it compiled fine .. BUT
When I run it, I get an "access voilation" messege and then the program 
exits.

When I turn on the -debug switch, the messege becomes:
ERROR: Access Voilation
while processing win message #0x0

Here's the stack frame from windbg 00 image00400000!D8harmonia2ui6window6Window10childStyleFE8harmonia2ui11definitions11ControlTypeZC8harmonia6the es5theme5Style+0x17 [C:\dmd\src\other\harmonia\ui\window.d 303]

It is here: return Theme.defaultTheme.themeStyle(id); Seems like module harmonia.themes.pathfinder; was not included by build.exe. It has: static this() { // install this as a default theme defaultTheme = new PathfinderTheme(); } module harmonia.themes.pathfinder; is theme implementation and has no direct external references. You need to tell to build.exe somehow that it must include it.

Ah! Thanks! I added an import for harmonia.themes.pathfinder and now it works for half a second (shows a window) but still produces an access voilation!! while processing win mesage #0x200 Any other modules you know which are needed but not referenced?! /me goes to check the call stack .. ok, I think this one is harmonia.ui.tooltip let me try .. (after 20 seconds ...) yup! seems to work fine now!! :D
Mar 12 2006
prev sibling next sibling parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
Now that I got build to work with harmonia, am I allowed to publish my 
modifications to harmonia that allowed its programs to be built with 
"build"?
I tried to read the license, and I didn't find anything in it that 
forbids me from doing that. But I'm just not good with this legal stuff ..
Mar 12 2006
parent reply Dannerbeck Dieter <no.spam.dd gmx.de> writes:
Hasan Aljudy schrieb:
 Now that I got build to work with harmonia, am I allowed to publish my 
 modifications to harmonia that allowed its programs to be built with 
 "build"?
 I tried to read the license, and I didn't find anything in it that 
 forbids me from doing that. But I'm just not good with this legal stuff ..

Sounds nice! I'm pretty sure you are welcome to update it:) ?!
Mar 12 2006
parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
Dannerbeck Dieter wrote:
 Hasan Aljudy schrieb:
 
 Now that I got build to work with harmonia, am I allowed to publish my 
 modifications to harmonia that allowed its programs to be built with 
 "build"?
 I tried to read the license, and I didn't find anything in it that 
 forbids me from doing that. But I'm just not good with this legal 
 stuff ..

Sounds nice! I'm pretty sure you are welcome to update it:) ?!

Actually now that I think of it, the changes are minor, althu it tooks me hours and hours! Here are the modifications I had to make: move the file std\boxer.d to harmonia\boxer.d, and change the first line to: module harmonia.boxer; and, change the following files as indicated: -----------------harmonia\html\html.d----------------- line23: change it to: module harmonia.html.html; -----------------harmonia\io\mmfile.d----------------- line 37: change it to: private import harmonia.native.win32; -----------------harmonia\native\win32.d----------------- line 9:insert the following line: version(build) { pragma(nolink); } I think you can insert it anywhere in the file. -----------------harmonia\ui\controls\all.d----------------- line 25: change it to module harmonia.ui.controls.all; line 27: change it to import harmonia.boxer; -----------------harmonia\ui\controls\buttons.d----------------- line 24: change it to: module harmonia.ui.controls.buttons; line 26: change it to: import harmonia.boxer; -----------------harmonia\ui\application.d----------------- line 17: insert the following block of code: version(build) { pragma( include, "harmonia.themes.pathfinder" ); pragma( include, "harmonia.ui.tooltip" ); } I think you can insert it anywhere in the file. -----------------harmonia\ui\definitions.d----------------- line 26: change it to import harmonia.boxer; -----------------harmonia\ui\widgets.d----------------- line 29: change it to import harmonia.boxer; -----------------harmonia\string.d----------------- line 25: change it to module harmonia.string;
Mar 12 2006
parent Dannerbeck Dieter <no.spam.dd gmx.de> writes:
Hasan Aljudy schrieb:
 Dannerbeck Dieter wrote:
 Hasan Aljudy schrieb:

 Now that I got build to work with harmonia, am I allowed to publish 
 my modifications to harmonia that allowed its programs to be built 
 with "build"?
 I tried to read the license, and I didn't find anything in it that 
 forbids me from doing that. But I'm just not good with this legal 
 stuff ..

Sounds nice! I'm pretty sure you are welcome to update it:) ?!

Actually now that I think of it, the changes are minor, althu it tooks me hours and hours! Here are the modifications I had to make: move the file std\boxer.d to harmonia\boxer.d, and change the first line to: module harmonia.boxer; and, change the following files as indicated: -----------------harmonia\html\html.d----------------- line23: change it to: module harmonia.html.html; -----------------harmonia\io\mmfile.d----------------- line 37: change it to: private import harmonia.native.win32; -----------------harmonia\native\win32.d----------------- line 9:insert the following line: version(build) { pragma(nolink); } I think you can insert it anywhere in the file. -----------------harmonia\ui\controls\all.d----------------- line 25: change it to module harmonia.ui.controls.all; line 27: change it to import harmonia.boxer; -----------------harmonia\ui\controls\buttons.d----------------- line 24: change it to: module harmonia.ui.controls.buttons; line 26: change it to: import harmonia.boxer; -----------------harmonia\ui\application.d----------------- line 17: insert the following block of code: version(build) { pragma( include, "harmonia.themes.pathfinder" ); pragma( include, "harmonia.ui.tooltip" ); } I think you can insert it anywhere in the file. -----------------harmonia\ui\definitions.d----------------- line 26: change it to import harmonia.boxer; -----------------harmonia\ui\widgets.d----------------- line 29: change it to import harmonia.boxer; -----------------harmonia\string.d----------------- line 25: change it to module harmonia.string;

Mar 12 2006
prev sibling parent reply "Derek Parnell" <derek psych.ward> writes:
On Sat, 11 Mar 2006 18:56:05 +1100, Hasan Aljudy <hasan.aljudy gmail.com>  
wrote:

 build expects to see a "main" function inside the file sent to it thru  
 the command line.
 Harmonia doesn't work that way. The main function is somewhere else!!

 How can I get build to realize this fact and properly invoke the linker  
 to build an exe file instead of a lib file?

If you use the "-link" command line switch, it calls the linker rather than the librarian. It normally calls the librarian if it doesn't find 'main' or 'WinMain'. Use -link if the 'main' is to be found in a library rather than any of the source files. Just make sure you link in the library file too, of course. -- Derek Parnell Melbourne, Australia
Mar 18 2006
parent Hasan Aljudy <hasan.aljudy gmail.com> writes:
Derek Parnell wrote:
 On Sat, 11 Mar 2006 18:56:05 +1100, Hasan Aljudy 
 <hasan.aljudy gmail.com>  wrote:
 
 build expects to see a "main" function inside the file sent to it 
 thru  the command line.
 Harmonia doesn't work that way. The main function is somewhere else!!

 How can I get build to realize this fact and properly invoke the 
 linker  to build an exe file instead of a lib file?

If you use the "-link" command line switch, it calls the linker rather than the librarian. It normally calls the librarian if it doesn't find 'main' or 'WinMain'. Use -link if the 'main' is to be found in a library rather than any of the source files. Just make sure you link in the library file too, of course.

The problem was that I put harmonia in the phobos source directory. When I used the -V switch on build, I saw that build ignored all module under phobos, including harmonia. I just moved harmonia somewhere else, and then build saw the main function.
Mar 18 2006