View previous topic :: View next topic |
Author |
Message |
ShprotX
Joined: 28 Aug 2007 Posts: 24 Location: Ukraine
|
Posted: Sun Dec 16, 2007 11:17 am Post subject: |
|
|
Pse wrote: | Where should I commit these changes? Anonymous git? |
if you are using kaarna's branch then
kaarna wrote: | If you already know git, there's a branch named mob that you can push your changes anonymously. |
|
|
Back to top |
|
|
Pse
Joined: 13 Dec 2007 Posts: 36
|
Posted: Sun Dec 16, 2007 1:32 pm Post subject: |
|
|
Done, compilation with DSSS should work from the root of the project. Demos should work too, but DSSS invocation should be done from within the demos folder and after gtkD is properly installed. Building with Tango is not tested, if problems arise I'll try to fix them. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 1:40 pm Post subject: |
|
|
Yes, there appears to be enough interest in gtkD to justify maintaining it in trunk. I don't think Ant would mind anyway. I think I'll go ahead and update the svn trunk (I assume the git repository is the best source for this?).
I may also look into starting a new simpler/cleaner branch of gtkD. The loader itself needs some revamping too... it seems to have hardly been touched over the years. There are a few new D features that could simplify some things in gtkD.
About dsss... pse, would you be able to add some simple instructions to a text file indicating how to use dsss on gtkD? Seems this isn't always clear to some.
Something like:
Code: |
Build gtkd.lib or libgtkd.a:
dsss build
Install the library and headers for dsss use:
dsss install
Build the demos:
cd demos\<folder>
dsss build |
If that's correct?
-JJR |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 2:25 pm Post subject: |
|
|
Pse wrote: | Done, compilation with DSSS should work from the root of the project. Demos should work too, but DSSS invocation should be done from within the demos folder and after gtkD is properly installed. Building with Tango is not tested, if problems arise I'll try to fix them. |
I assume you updated the dsss.conf in the git repository? I did a checkout of gtkd from git and dsss.conf for building the main library still doesn't work on windows (it just spits out the three build sections and leaves no error message). Are you using linux? |
|
Back to top |
|
|
Pse
Joined: 13 Dec 2007 Posts: 36
|
Posted: Sun Dec 16, 2007 3:06 pm Post subject: |
|
|
JJR wrote: | Pse wrote: | Done, compilation with DSSS should work from the root of the project. Demos should work too, but DSSS invocation should be done from within the demos folder and after gtkD is properly installed. Building with Tango is not tested, if problems arise I'll try to fix them. |
I assume you updated the dsss.conf in the git repository? I did a checkout of gtkd from git and dsss.conf for building the main library still doesn't work on windows (it just spits out the three build sections and leaves no error message). Are you using linux? |
Yes, I'm on linux. Did you do the checkout from the mob branch? I don't have commit access to HEAD.
I have added README_DSSS to the mob branch with instructions on how to build gtkD with DSSS and its demos. I've also updated the README and INSTALL files with references to DSSS.
JJR, would you mind posting the output of your DSSS build process? I'll see what I can do. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 3:20 pm Post subject: |
|
|
Ah, I see. No I didn't know there was a "mob" branch. I guess I'll try checking that out. Using the HEAD branch, nothing is working on windows other than compgtkD.bat (which builds the gtkD.lib). But I can't even use a source based build (using rebuild) to make a demo -- there are errors in phobos link stage and one undefined symbol from gtk-Widget.obj (even though all symbols that are undefined do seem to exist in the object/lib files).
I'll try the "mob" branch and let you know how it goes.
the output of "dsss build" for HEAD is:
Code: | src => gtkD
srcgl => gtkDgl
srcgstreamer => gstreamerD] |
which ends quickly, results in no object files, and gives no error. I'm using dmd 1.024 with phobos.
It could be my configuration, but, like I said earlier, some other projects build fine in the same configuration/environment (eg. guisterax project, which has a dsss.conf file). |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 4:02 pm Post subject: |
|
|
Basically the same problem with "mob" branch. The output of "dsss build":
Code: | atk => DD-atk
cairoLib => DD-cairoLib
gdk => DD-gdk
gdkpixbuf => DD-gdkpixbuf
glade => DD-glade
glib => DD-glib
gobject => DD-gobject
gthread => DD-gthread
gtk => DD-gtk
gtkc => DD-gtkc
pango => DD-pango |
Seems windows just doesn't like the dsss setup. I'll look at the file and play with a few settings. |
|
Back to top |
|
|
Pse
Joined: 13 Dec 2007 Posts: 36
|
Posted: Sun Dec 16, 2007 4:16 pm Post subject: |
|
|
JJR wrote: | Basically the same problem with "mob" branch. The output of "dsss build":
Code: | atk => DD-atk
cairoLib => DD-cairoLib
gdk => DD-gdk
gdkpixbuf => DD-gdkpixbuf
glade => DD-glade
glib => DD-glib
gobject => DD-gobject
gthread => DD-gthread
gtk => DD-gtk
gtkc => DD-gtkc
pango => DD-pango |
Seems windows just doesn't like the dsss setup. I'll look at the file and play with a few settings. |
You may try running DSSS with "-n -v" as arguments:
Code: | dsss distclean
dsss build -n -v |
That should flood you with details, hopefully pointing to what's wrong.
What version of DSSS are you running? |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 4:25 pm Post subject: |
|
|
Uh... hold on for a bit... I think the problem might be my fault (my configuration). I have my compiler directories and some project directories set up with "periods" as deliminators (eg. C:\compiler\dmd.v1 and C:\projects\d.v1.phobos\<project>). I'm not certain but this may confuse dsss and/or dmd because namesapces replace slashes with periods. I'll fix this and try again. I'm not sure why guiesterax works... maybe just because it's not as complicated a project. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 5:19 pm Post subject: |
|
|
Ok, I downloaded the dsss binaries again and reinstalled. I also simplified my dmd configuration drastically and reinstalled dmd 1.024.
dsss is 0.73 (as it was before, but last time I was using an svn build; it seems rebuild was not behaving)
Now... the gtkD lib's build properly with dmd/phobos/dsss. *phew*
I then tried doing a "dsss build" in the demos directory. Almost worked except that the link process failed... seems the linker can't find the win32 registry functions even though they exist in phobos
Code: | C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegQueryValueExA@24
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegCloseKey@4
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegQueryInfoKeyA@48
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegCreateKeyExA@36
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegOpenKeyExA@20
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegOpenKeyA@12
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegDeleteKeyA@8
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegSetValueExA@24
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegDeleteValueA@8
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegFlushKey@4
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegEnumKeyExA@32
C:\compiler\dmd\bin\..\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegEnumValueA@32
--- errorlevel 12
Command C:\compiler\dsss\bin\rebuild.exe returned with code -1, aborting.
Error: Command failed, aborting. |
These are the same errors I had before. I'm not sure what's wrong here. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 5:36 pm Post subject: |
|
|
Ah, I think I've figured it out.
It looks like I have to link with advapi32.lib in order to resolve those symbols. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 5:47 pm Post subject: |
|
|
Example Cairo clock now compiles and links.
I just needed to add "-lladvapi32" to dsss.conf's buildflags section.
The executable won't run without failing, at the moment; but this is a good start.
Looks like "libiconv_set_relocation_prefix" doesn't exist in iconv.dll... strange. |
|
Back to top |
|
|
Pse
Joined: 13 Dec 2007 Posts: 36
|
Posted: Sun Dec 16, 2007 6:02 pm Post subject: |
|
|
JJR wrote: | Example Cairo clock now compiles and links.
I just needed to add "-lladvapi32" to dsss.conf's buildflags section.
The executable won't run without failing, at the moment; but this is a good start.
Looks like "libiconv_set_relocation_prefix" doesn't exist in iconv.dll... strange. |
Something must be wrong if the needed libs are not getting automatically appended to the commands being executed by rebuild. I just wonder what that might be...
Once you've sorted out the necessary buildflags, a "version (Windows)" section could be added to the dsss.conf file to handle this automatically. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 9:58 pm Post subject: |
|
|
Yes, a version statement is likely a necessary addition.
So far so good. I've tracked down the problem with iconv.dll... it's the typical horrid dll version issue in windows. There are other pieces of software that add their binary directory to the environment PATH. They have older versions of iconv.dll in them.. those get loaded first and, as a result, fail.
Some offenders with iconv.dll are subversion, cvs, mercurial... the installer for all these programs add their location to the path (and thus the associated iconv.dll in each directory). Mercurial is a little more deadly because it has all the gtk dll's as well.
The way to fix it was to put the GTK directory first in the path and hope it doesn't mess with those pieces... or to remove all these from the path and ensure that each has it's own set of GTK dll's (as needed). What a pain!
Anyway... cairo_clock now runs great... gladetest is compiling but failing on line 25 with an ArrayBounds error. Looking good, otherwise.
I'll continue to test these and clean things up. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Sun Dec 16, 2007 10:01 pm Post subject: |
|
|
oh.. and I see why line 25 exited with an ArrayBounds error.
Seems you need to submit a commandline argument for gladeTest. |
|
Back to top |
|
|
|