View previous topic :: View next topic |
Author |
Message |
gtbass
Joined: 22 Jul 2004 Posts: 7 Location: Austin, TX
|
Posted: Mon Jan 23, 2006 12:56 pm Post subject: How to build? |
|
|
I'm trying to rebuild Poseidon. I want to change the font to 8pt Courier New (that was easy enough to locate in the code). I'd also like to explore the possibility of other modifications.
So far I've had some trouble.
----------
Step #1: I downloaded the Poseidon and DWT source.
Question #1: How do I specify the DWT import path for build/dmd? Build doesn't seem to have such an option, but I assume it needs to parse the DWT files somehow, right?
Hack #1: I copied the dwt/import/dwt contents to poseidon/src/dwt
----------
Step #2: I opened the poseidon/src project in Poseidon.
Question #2: How do I get poseidon to run build with the <buildOption> specified in the project properties?
Hack #2: I copied the <buildOption> string to the "D Builder (Project based dir)" configuration.
----------
Step #3: I ran the "D Builder (Project based dir)" configuration, which produced output:
Code: | cwd > D:\Code\Compilers\D\tools\poseidon\src
build.exe poseidon.d -gui -clean -full -w -unittest -debug -g -Xdwt -version=OLE_COM
D:\Code\Compilers\D\dmd\bin\..\..\dm\bin\link.exe core\...etc.../noi;
Finished |
Question #3: It looked like it worked, but there's no poseidon.exe in the poseidon/src directory.
----------
Step #4: I tried running the same build command from the command prompt, and I got all sorts of output:
Code: | D:\>cd D:\Code\Compilers\D\tools\poseidon\src
D:\Code\Compilers\D\tools\poseidon\src>build.exe poseidon.d -gui -clean -full -w
-unittest -debug -g -Xdwt -version=OLE_COM
D:\Code\Compilers\D\dmd\bin\..\..\dm\bin\link.exe core\navcache+ui\misc+ui\searc
hdlg+ui\customtool+ui\outline+ui\scintillaex+poseidon+core\executer+ui\packageex
plorer+ak\xml\core+ui\finddlg+ui\statusbar+ui\preference+ui\bottompanel+ui\edito
r+core\project+ak\xml\service+ui\prjproperty+core\misc+util\fileutil,poseidon.ex
e,,olepro32_dwt.lib+oleacc_dwt.lib+dwtd.lib+kernel32_dwt.lib+shell32.lib+gdi32_d
wt.lib+comctl32.lib+ole32.lib+gdi32.lib+user32_dwt.lib+dwtextrad.lib+usp10_dwt.l
ib+advapi32.lib+phobos.lib+shell32_dwt.lib+msimg32_dwt.lib+imm32_dwt.lib+oleaut3
2_dwt.lib+comdlg32.lib+uuid.lib+gdi32.lib+user32+kernel32,poseidon.def/RC:poseid
on.res/co/noi;
OPTLINK (R) for Win32 Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
olepro32_dwt.lib
Warning 2: File Not Found olepro32_dwt.lib
oleacc_dwt.lib
Warning 2: File Not Found oleacc_dwt.lib
dwtd.lib
Warning 2: File Not Found dwtd.lib
kernel32_dwt.lib
Warning 2: File Not Found kernel32_dwt.lib
gdi32_dwt.lib
Warning 2: File Not Found gdi32_dwt.lib
user32_dwt.lib
Warning 2: File Not Found user32_dwt.lib
...etc... |
Question #4: How do I specify the path to the dwt/lib directory?
Hack #4: I tried copying the DWT libs to dmd/lib. That didn't work.
----------
Thanks for reading this far, and thanks in advance for any help you can provide
Regards,
Garett |
|
Back to top |
|
|
Shawn Liu
Joined: 09 Mar 2005 Posts: 104 Location: Shanghai, China
|
Posted: Fri Jan 27, 2006 1:42 am Post subject: |
|
|
extract DWT to some folder. for example:
D:\Code\Compilers\D\tools\dwtproject
the directory structure is like
Code: | D:\Code\Compilers\D\tools\dwrproject\dwt
D:\Code\Compilers\D\tools\dwtproject\lib
then modify the sc.ini in dmd\bin folder, like this:
LIB="?@P?\..\lib";\dm\lib;D:\Code\Compilers\D\tools\dwtproject\lib
DFLAGS="-I?@P?\..\src\phobos;D:\Code\Compilers\D\tools\dwrproject\dwt"
|
build.exe will find the the lib and the imports automatically.
There is a bug in Poseidon when redirect console output to a Text control,
the link error will lost, only the compile errors displayed. I still didn't find the way to resolve. So you can see the link error when build from commandline but Poseidon just says "finished". |
|
Back to top |
|
|
hasan
Joined: 02 May 2005 Posts: 58
|
Posted: Mon Jan 30, 2006 1:32 am Post subject: |
|
|
I also wanted to rebuild becuase the font size was a bit too big for me, one problem I ran into after successfully building, is when I double click an error in the build output window, it doesn't go to the error! because double clicking doesn't seem to select the whole line!! Seems to me like the reason is that a different version of DWT was used to build Posiedon 0.12?
Anyway, after that, I discovered that the font size can be changed with control-minus (or control with mouse-scroll-down) |
|
Back to top |
|
|
gtbass
Joined: 22 Jul 2004 Posts: 7 Location: Austin, TX
|
Posted: Mon Jan 30, 2006 1:35 am Post subject: |
|
|
Thanks for the tip on font size! I still haven't been able to build successfully, but I've been too busy with school work to give it a really good hack. |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Mon Jan 30, 2006 10:00 am Post subject: |
|
|
You need DWT in your path, and the DWT libs in /dm/lib , then double click run-build.bat in the poseidon root directory it should work fine -- you might have to adjust run-build.bat to -I../your/path/to/dwt -- thats easier for me than modifying that hideous sc.ini. |
|
Back to top |
|
|
Shawn Liu
Joined: 09 Mar 2005 Posts: 104 Location: Shanghai, China
|
Posted: Wed Feb 08, 2006 7:55 am Post subject: |
|
|
hasan wrote: | when I double click an error in the build output window, it doesn't go to the error! because double clicking doesn't seem to select the whole line!! Seems to me like the reason is that a different version of DWT was used to build Poseidon 0.12? |
This is because the complexity to process UTF8 string against MBCS/UTF16.
Window platform uses either ANSI(MBCS) or UNICODE(UTF16) APIs. But the internal string type of D as well as DWT is char[] (UTF8). It is always proportion for single byte character set such as English. But things is not that for a multiple byte character set such as Chinese.
for example, the "Chinese" in Chinese "ä¸æ",
When I use ANSI API, I get the length is 4; When use UNICODE API, I get the length is 2. When it is a char[] in D as UTF8, the length is 6.
This makes things difficult especially the position involved methods.
SWT will not encounter this problem because the String in Java is always wchar[] (Java char is 2 byte length).
So the implementation of Text widget in DWT is different from SWT.
And also, Scintilla widget is always set to UTF8 code page to avoid buffer conversion and this kind of position issue. I have mention this before in NG.
The current Text widget will handle length or position correctly. |
|
Back to top |
|
|
negerns
Joined: 08 Jul 2006 Posts: 13
|
Posted: Sat Aug 19, 2006 1:23 pm Post subject: |
|
|
i'm trying to build the trunk-r170 but i get lots of undefined symbol errors like:
Code: |
Error 42: Symbol Undefined _D3dwt5extra9scintilla9TextRange6opCallFiiZS3dwt5extra9scintilla9TextRange
|
What's going on? |
|
Back to top |
|
|
Kuan Hsu
Joined: 15 Apr 2006 Posts: 143 Location: Taiwan
|
Posted: Sun Aug 20, 2006 10:04 am Post subject: |
|
|
Make sure that you've already compiled dwt.lib and dwtextra.lib in your system.
Then use Build to compile/link the Poseidon Project, In my case, I use DMD0.162 + Build2.09 or Build 3.2 in Poseidon.
Hope it helps......
[/img] |
|
Back to top |
|
|
highwing
Joined: 28 Mar 2006 Posts: 10
|
Posted: Thu Sep 28, 2006 2:06 am Post subject: |
|
|
I am trying to build Poseidon r172 with DMD0.167 + Build3.02 in Poseidon.
Too many undefined symbol errors like:
Code: |
OPTLINK (R) for Win32 Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
poseidon\controller\scintillaex.obj(scintillaex)
Error 42: Symbol Undefined __init_3dwt5extra9scintilla9TextRange
...
|
All about scintillaex, why? |
|
Back to top |
|
|
jcc7
Joined: 22 Feb 2004 Posts: 657 Location: Muskogee, OK, USA
|
Posted: Thu Sep 28, 2006 7:03 am Post subject: |
|
|
highwing wrote: | I am trying to build Poseidon r172 with DMD0.167 + Build3.02 in Poseidon.
Too many undefined symbol errors like:
Code: |
OPTLINK (R) for Win32 Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
poseidon\controller\scintillaex.obj(scintillaex)
Error 42: Symbol Undefined __init_3dwt5extra9scintilla9TextRange
...
|
All about scintillaex, why? | Linker Error 42 can mean various problems, but my guess is that you need to provide a .lib or .obj file at the command line (or actually since you're using Build you'd need to add it to the Build script). Maybe something called "scintilla.lib" or "scintillaex.lib". (And this is just a guess.) |
|
Back to top |
|
|
Kuan Hsu
Joined: 15 Apr 2006 Posts: 143 Location: Taiwan
|
Posted: Thu Sep 28, 2006 9:00 am Post subject: |
|
|
I tried to recompile the libs of DWT( Use DMD0.167), the dwtextra.lib and dwtextrad.lib are build error on BUILD3.02 or BUILD3.03( the error is wrong size about these two libs ).
I have no idea what's wrong about it, so I recompile DWT on BUILD2.09, it works.
Then I continue trying build Poseidon on BUILD3.03, still get failure
Finally I use BUILD3.02( already import modified, recompiled ), it works.
When I compiled my DFL program use Build3.03, It got the same error
So I modified poseidon code( commit rev0.173 ) , compiled on DMD( run poseidon, open Posiedon Project, clean all files in files list on Project Property, import all files, compile on DMD with -O -realease -inline -L/exet:nt/su:windows:4.0 flags ), then it works, maybe there are something wrong about BUILD???
------------------------------------------------------------------
I put my DWT( already compiled ) on my webspace, http://myweb.hinet.net/home5/kyovbdx/DWT.rar
maybe guys could test...... |
|
Back to top |
|
|
highwing
Joined: 28 Mar 2006 Posts: 10
|
Posted: Thu Sep 28, 2006 6:26 pm Post subject: |
|
|
I'll try it today! Thanks Kuan Hsu , Jcc7!
I use the DWT lib from un_guru.
http://www.dsource.org/forums/viewtopic.php?t=1661
I modified "import" lines and compied DWT with dmd0.167+ build3.02.
It works well.
BTW: I compiled my program with Build3.03.But It's failed too! |
|
Back to top |
|
|
|