PDA

View Full Version : Edyuk : fully-featured, highly flexible and free cross-platform IDE



fullmetalcoder
29th December 2006, 16:54
Hi,

I'm proud to announce you the release of Edyuk 0.7.0. The sources are available on the SVN trunk and as packages. Note that this release is not fully stable yet but brings lots of nice features :


Class browsing (much faster than existing solutions and without external dependency)
Debugging
Compilation
A very good project manager, which for example, handles subdirs, file inclusion, complex scope constructs and is not confused when it encounters functions or operators others than = an += in project files
A powerful text editing framework with syntax highlighting, auto indenting, parenthesis matching, text folding, and all this through generic XML definitions
Designer integration
Assistant integration
Widget dedicated to .qrc files editing
A plugin-based architecture which allow a nearly infinite extension of Edyuk features
A perspective sytem and a modular GUI which allows high flexibility
and more...
The "MOST WANTED" feature, i.e. code completion is not available yet but will be soon.

More than 570 persons have downloaded Edyuk 0.6.0-b, I admit this looks a bit small compared to downloads count of QDevelop but yet it shows some interest and makes me happy. I hope you'll like this new version.

If you feel like testing it please feed me back fast so that I can fix any bug you might encounter before I release Edyuk 0.7.0 as a "stable" package.

Thanks to all the people that already tested Edyuk, to you that took some time to read this announcement and, in advance, to those who will test the new version and feed me back! :)

ksqt
31st December 2006, 16:57
Where can we get it?

grosem
1st January 2007, 11:03
Where can we get it?


At Sourceforge (http://sourceforge.net/project/showfiles.php?group_id=168260)

You can find the link at Edyuk's homepage (http://edyuk.berlios.de/index.php?option=com_frontpage&Itemid=1)

Or SVN: svn checkout https://svn.sourceforge.net/svnroot/edyuk

fullmetalcoder
1st January 2007, 13:07
You can find the link at Edyuk's homepage (http://edyuk.berlios.de/index.php?option=com_frontpage&Itemid=1)
Unfortunately Berlios, which hosts Edyuk homepage seems to be down, use Sourceforge link directly instead...

fullmetalcoder
6th January 2007, 15:33
Edyuk 0.7.0 STABLE packages are now available on Sourceforge.net (http://sourceforge.net/project/showfiles.php?group_id=168260)
They feature lots of bug fixes and some very nice new features, especially concerning debugging.

guestgulkan
7th January 2007, 12:52
Hello FMC,
I'm trying out Edyuk (thanks) but I've come across a problem.
I'm tring to add some includes and libraries to a project using the project options
dialog but this dialog crashes when using the Compilation tab.
http://www.ynk01.dial.pipex.com/edyuk.jpg
When attempting to add for example an include path - if you press CANCEL or OK on the
popup entry or File Dialog box then the program crashes fatally.
The little buttons are also missing their graphics/text

I built the program on Fedora Core 6 Linux using ./build and running the edyuk script.
Qt version is 4.2.1

Apart from that so far very good!

fullmetalcoder
7th January 2007, 13:54
I'm tring to add some includes and libraries to a project using the project options
dialog but this dialog crashes when using the Compilation tab.
http://www.ynk01.dial.pipex.com/edyuk.jpg
When attempting to add for example an include path - if you press CANCEL or OK on the
popup entry or File Dialog box then the program crashes fatally.
The little buttons are also missing their graphics/text

I'll try to fix that soon... Keep an eye on the SVN trunk.



I built the program on Fedora Core 6 Linux using ./build and running the edyuk script.
Qt version is 4.2.1

Apart from that so far very good!
I'm glad to see that you like Edyuk!

fullmetalcoder
22nd January 2007, 11:50
Hi all,

Less than 3 weeks after its release, Edyuk 0.7.0 has already reached more than 400 downloads. As I've been fed back, I was able to fix bugs and add many usability enhancements. Thus Edyuk 0.8.0 is coming soon. If you can't wait to test the code completion and all the new features, check out the SVN trunk : http://sourceforge.net/svn/?group_id=168260

Hoping you'll like it! :)

nimes
22nd January 2007, 16:29
hi, i downloaded svn version. but i didn't compile.
i received this error:
$ sh build
edyuk.pro:7: Unknown test function: warning
edyuk.pro:9: Unknown test function: warning
install.pri:78: Unknown test function: for
install.pri:135: Unknown test function: for
cd src/lib && make -f Makefile
make[1]:`/home/gilan/edyuk/trunk/src/lib' dizinine giriliyor
/usr/qt/3/bin/uic ui/aboutdialog.ui -o ../tmp/ui/aboutdialog.h
uic: File generated with too recent version of Qt Designer (4.0 vs. 3.3.7)
make[1]: *** [../tmp/ui/aboutdialog.h] Hata 1
make[1]: `/home/gilan/edyuk/trunk/src/lib' dizininden çıkılıyor
make: *** [sub-src-lib] Hata 2


i have 2 qt version. qt3 and qt 4.2.2
i tried also qmake-qt4. same error.

fullmetalcoder
22nd January 2007, 16:41
hi, i downloaded svn version. but i didn't compile.
i received this error:
$ sh build
edyuk.pro:7: Unknown test function: warning
edyuk.pro:9: Unknown test function: warning
install.pri:78: Unknown test function: for
install.pri:135: Unknown test function: for
cd src/lib && make -f Makefile
make[1]:`/home/gilan/edyuk/trunk/src/lib' dizinine giriliyor
/usr/qt/3/bin/uic ui/aboutdialog.ui -o ../tmp/ui/aboutdialog.h
uic: File generated with too recent version of Qt Designer (4.0 vs. 3.3.7)
make[1]: *** [../tmp/ui/aboutdialog.h] Hata 1
make[1]: `/home/gilan/edyuk/trunk/src/lib' dizininden çıkılıyor
make: *** [sub-src-lib] Hata 2


i have 2 qt version. qt3 and qt 4.2.2
i tried also qmake-qt4. same error.
The miscompilation is obviously related to your system's configuration... You have to change your environment variables so that qmake, uic, rcc and moc from Qt4 will be used instead of their Qt3 equivalents... Edyuk will compile with Qt4 only (needs Qt 4.1 or newer). Even if you use a symlink or script to Qt4's qmake it won't work properly if $QTDIR does not come first into your $PATH because moc/uic/.. used will be those of Qt 3. To achieve that you have to add the following lines to your ~/.bash_profile :


# note that this path is generic... replace it with the one used in your system...
QTDIR=/usr/local/Trolltech/Qt
PATH=$QTDIR/bin:$PATH

Hoping I'm clear enough... ;)

nimes
22nd January 2007, 17:09
sorry, i don't understand. my qt directory:
/usr/qt/3/ and /usr/qt/4/

how to configure .bash.profile ??

fullmetalcoder
22nd January 2007, 17:20
sorry, i don't understand. my qt directory:
/usr/qt/3/ and /usr/qt/4/

how to configure .bash.profile ??
If you want to compile Qt 4 applications there are several ways :

If you want to be able to compile both Qt 3 (so KDE) and Qt 4 based apps the best way is probably to use scripts to setup env vars in your shell session. In this case, each time you will need to use Qt 4 instead of Qt 3 you will be forced to run a shell script by hand.
If you're only interested in Qt 4 it is probably easier to embed these settings in ~/.bash_profile (if you're using bash as a shell, overwise you'll have to find what file is used by your shell to store such a configuration...) Note that such an embedding require your session to be restarted and even in some cases a rebootIn your case the script will look like this :


#! /bin/sh
# This header is useless when embedding in ~/.bash_profile

export QTDIR=/usr/qt/4
export PATH=$QTDIR/bin:$PATH


Once your environment is set up, compilation should work smoothly. :)

fullmetalcoder
4th February 2007, 20:43
Edyuk 0.8.0-rc1 is out.

It finally brings code completion in Edyuk and features many usability improvements and bug fixes. The completion engine uses an hybrid solution combining a custom lexer/parser which allows completion of classes provided by the openned projects (without any dependency) and a ctags backend which allows completion of Qt 4 classes. If ctags is not found the completion will work but without support of Qt 4 classes. You can get packages (https://sourceforge.net/project/showfiles.php?group_id=168260) from Sf.net or browse the SVN trunk (https://sourceforge.net/svn/?group_id=168260).

Also note that Edyuk's homepage (http://edyuk.sf.net) has moved to a new host (and changed its look at the same occasion : feedback would be very appreciated).

Hoping you'll like it. :)

fullmetalcoder
21st March 2007, 12:54
Spring cleanup has been done in the trunk and, after proper reorganization, I'm back on hard work. If you happen to take a look at the, relocated, trunk (http://edyuk.svn.sourceforge.net/svnroot/edyuk/trunk), the code completion will probably look pleasant :

It no longer needs ctags to complete Qt types
real huge speed improvements have been done (average time taken to display entries, with recursive typing and entries filtering, on my 6years old box : 40ms :cool:)
Many quirks have been fixed which provide a better accuracy
Typedefs are now handled properlyBesides, other bug fixes and improvements have been done in editing, project management and configuration dialogs.

A new rc should be issued soon (as soon as i'll have fixed all the missing features in the new project management module actually ;))

PS :

the new trunk URL for SVN checkout is : http://edyuk.svn.sourceforge.net/svnroot/edyuk/trunk
Edyuk's homepage (http://edyuk.sf.net) now provides RSS newfeeds (http://edyuk.tuxfamily.org/feed.php?option=com_content&view=frontpage&Itemid=1&format=rss)

Burgpflanze
22nd March 2007, 15:21
How can I change the editor font size?

Regards, Burgpflanze

fullmetalcoder
22nd March 2007, 19:02
How can I change the editor font size?
:oI'm afraid there is no UI for editor configuration yet (though I'm working on it) and this setting can't be changed in any other way than modifying the source file where the default font settings are decided : /path/to/edyuk/trunk/3rdparty/qcodeedit/lib/editor/qplaintextedit.cpp line 125 or 127, according to your platform...

Hope this helps. :)

fullmetalcoder
1st April 2007, 18:27
A beta package of Edyuk's next version has just been released. It is actually a snapshot of the soon-to-be-released 0.9.0 version.

What's new :

Code completion, it's not real new but SO fast that it cannot be compared with what it used to be (and it can neither be compared with existing code completions AFAIK :))
A number of slight internal modifications which result in easier plugins writing and more consistent UI. The most important example is the "manager" dock which takes care of a project model and a code model (class browser) in a generic way. As a consequence the project explorer and class browser are now reachable from the Designer perspective which used to be impossible
Many broken features have been implemented (create new file from project tree, add file to project, ..)
A new template manager has been added which makes it much easier to add templates (INI files are used as templates definitions)
A set of brand new dialogs, much more user-friendly, replaced old ones (configuration, project options, creation of new file, ...)
A the "manager" dock now has a much nicer look thanks to the use of a QComboBox instead of tabsAnd what remains the same (apart from bugfixes ;)):

perspective-based GUI
flawless qmake projects parsing/saving
powerful and flexible editing framework
Designer integration
Assistant integration
QRC editing facilities
class browsing
compilation (requires gcc / mingw)
graphical debugging (requires gdb)
dynamic shortcut management
run-time translation
...Looking forward to get some feedback so as to polish the final 0.9.0 release. :)

magland
1st April 2007, 22:00
I tried downloading 0.9.0beta, but when I ran the build.bat program on windows it seemed to go into an infinite recursion.

Edyuk crashes when I load my project in v0.8.0, so I was hoping this problem would be resolved in the latest update.

I'm interested in using Edyuk... but first step is of course to get it installed and working properly.

fullmetalcoder
2nd April 2007, 08:45
I tried downloading 0.9.0beta, but when I ran the build.bat program on windows it seemed to go into an infinite recursion.

Edyuk crashes when I load my project in v0.8.0, so I was hoping this problem would be resolved in the latest update.

I'm interested in using Edyuk... but first step is of course to get it installed and working properly.
The batch file was originally added to workaround a bug/missing feature in Window$ ME which prevented proper compilation of subdirs project. If you are not using this version of Windows you should try the "regular" commands :

$ qmake
$ mingw32-make
Anyway I checked the content of the build.bat file and I didn't see anything that might cause kinda infinite recursion... Maybe you could give me more details.:confused:

magland
2nd April 2007, 12:30
OK thanks. It's possible that it wasn't actually an infinite recursion, but just taking a long time, and I wan't seeing the compilation details.

Anyway now I get the following compilation error: (see end of message). Also, I had to add "#include <QDebug>" to a couple of the .cpp files... qgenericlanguagefactory.cpp, qshortcutmanager.cpp.

Any ideas? I'm using Windows XP SP2, GNU Make 3.80, Qt 4.2.1

....................
....................
qmakemodel\qmakeproject.cpp:507: warning: function 'void QMakeProject::options()
' is defined after prior declaration as dllimport: attribute ignored
qmakemodel\qmakeproject.cpp: At global scope:
qmakemodel\qmakeproject.cpp:513: warning: function 'virtual void QMakeProject::w
rite(QTextStream&, QString, QProjectNode*)' is defined after prior declaration a
s dllimport: attribute ignored
qmakemodel\qmakeproject.cpp: In member function `virtual void QMakeProject::setu
pMenu(QMenu*)':
qmakemodel\qmakeproject.cpp:553: warning: function 'virtual void QMakeProject::s
etupMenu(QMenu*)' is defined after prior declaration as dllimport: attribute ign
ored
qmakemodel\qmakeproject.cpp: In constructor `QMakeProjectPrivate::QMakeProjectPr
ivate()':
qmakemodel\qmakeproject.cpp:612: warning: function 'QMakeProjectPrivate::QMakePr
ojectPrivate()' is defined after prior declaration as dllimport: attribute ignor
ed
qmakemodel\qmakeproject.cpp: In constructor `QMakeProjectPrivate::QMakeProjectPr
ivate()':
qmakemodel\qmakeproject.cpp:615: internal compiler error: in rest_of_handle_fina
l, at toplev.c:2064
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
mingw32-make[2]: *** [..\tmp-default-4.2.1-\obj\debug\qmakeproject.o] Error 1
mingw32-make[2]: Leaving directory `C:/cstuff/edyuk-0.9.0-beta/src/default'
mingw32-make[1]: *** [debug] Error 2
mingw32-make[1]: Leaving directory `C:/cstuff/edyuk-0.9.0-beta/src/default'
mingw32-make: *** [sub-src_default-make_default] Error 2

fullmetalcoder
2nd April 2007, 13:48
Anyway now I get the following compilation error: (see end of message). Also, I had to add "#include <QDebug>" to a couple of the .cpp files... qgenericlanguagefactory.cpp, qshortcutmanager.cpp.

Any ideas? I'm using Windows XP SP2, GNU Make 3.80, Qt 4.2.1

....................
....................
qmakemodel\qmakeproject.cpp:507: warning: function 'void QMakeProject::options()
' is defined after prior declaration as dllimport: attribute ignored
qmakemodel\qmakeproject.cpp: At global scope:
qmakemodel\qmakeproject.cpp:513: warning: function 'virtual void QMakeProject::w
rite(QTextStream&, QString, QProjectNode*)' is defined after prior declaration a
s dllimport: attribute ignored
qmakemodel\qmakeproject.cpp: In member function `virtual void QMakeProject::setu
pMenu(QMenu*)':
qmakemodel\qmakeproject.cpp:553: warning: function 'virtual void QMakeProject::s
etupMenu(QMenu*)' is defined after prior declaration as dllimport: attribute ign
ored
qmakemodel\qmakeproject.cpp: In constructor `QMakeProjectPrivate::QMakeProjectPr
ivate()':
qmakemodel\qmakeproject.cpp:612: warning: function 'QMakeProjectPrivate::QMakePr
ojectPrivate()' is defined after prior declaration as dllimport: attribute ignor
ed
qmakemodel\qmakeproject.cpp: In constructor `QMakeProjectPrivate::QMakeProjectPr
ivate()':
qmakemodel\qmakeproject.cpp:615: internal compiler error: in rest_of_handle_fina
l, at toplev.c:2064
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
mingw32-make[2]: *** [..\tmp-default-4.2.1-\obj\debug\qmakeproject.o] Error 1
mingw32-make[2]: Leaving directory `C:/cstuff/edyuk-0.9.0-beta/src/default'
mingw32-make[1]: *** [debug] Error 2
mingw32-make[1]: Leaving directory `C:/cstuff/edyuk-0.9.0-beta/src/default'
mingw32-make: *** [sub-src_default-make_default] Error 2
:o Not enough testing on Windows (none actually because I don't have any available windows PC to perform them). Sorry... This is actually very easy to fix :

src/default/qmakemodel/qmake.h :

#if defined(_QMAKEMODEL_BUILD_)
should be :

#if defined(_QMAKE_MODEL_BUILD_)

This should solve your troubles building the plugins.

Thanks for reporting this. I'll commit appropriate changes on SVN soon and advance the release of the rc1 to prevent too many people from facing similar troubles.:)

magland
2nd April 2007, 15:32
This should solve your troubles building the plugins.

Yes, thanks.

Now I get the following error (see below). Probably some trivial things, so perhaps we should take this debugging off the forum for now? (Jeremy.Magland at gmail.com)

....................................
Creating library file: ..\..\plugins\libdefault_debug.a
./..\tmp-default-4.2.1-\obj\debug\core.o(.text+0x26cd): In function `ZN11Default
Core15parseCompileLogERK7QString':
C:/cstuff/edyuk-0.9.0-beta/src/default/core.cpp:373: undefined reference to `Edy
uk::makeAbsolute(QString const&, QString const&)'
./..\tmp-default-4.2.1-\obj\debug\core.o(.text$_ZN18CppCallbackHandler5ev entE7QS
tring11QStringList[CppCallbackHandler::event(QString, QStringList)]+0x13e2): In
function `ZN11DefaultCoreD0Ev':
C:/cstuff/edyuk-0.9.0-beta/src/default/core.cpp:223: undefined reference to `Edy
ukTemplateManager::create(QString const&, QString const&, QStringList*, QHash<QS
tring, QString> const*) const'
./..\tmp-default-4.2.1-\obj\debug\core.o(.text$_ZN18CppCallbackHandler5ev entE7QS
tring11QStringList[CppCallbackHandler::event(QString, QStringList)]+0x1425): In
function `ZNK11DefaultCore4iconEv':
C:/cstuff/edyuk-0.9.0-beta/src/default/core.cpp:226: undefined reference to `Edy
ukTemplateManager::create(QString const&, QString const&, QStringList*, QHash<QS
tring, QString> const*) const'
./..\tmp-default-4.2.1-\obj\debug\qrcedit.o(.text+0x616a): In function `ZN7QRCEd
it7addFileEv':
C:/cstuff/edyuk-0.9.0-beta/src/default/qrcedit.cpp:378: undefined reference to `
Edyuk::makeRelative(QString const&, QString const&)'
./..\tmp-default-4.2.1-\obj\debug\qrcedit.o(.text+0x76bb): In function `ZN7QRCEd
it11fileChangedEP15QTreeWidgetItemS1_':
C:/cstuff/edyuk-0.9.0-beta/src/default/qrcedit.cpp:459: undefined reference to `
-- More (7%) --

fullmetalcoder
2nd April 2007, 17:05
Now I get the following error (see below). Probably some trivial things, so perhaps we should take this debugging off the forum for now? (Jeremy.Magland at gmail.com)
Sure, I've send you a solution to this by e-mail and will issue another beta really soon (as soon as you report proper compilation actually ;))

For the others, here comes the solution : the EDYUK_EXPORT macro needs to be added so that several classes/functions get exported properly under windows :

src/lib/edyuktemplatemanager.h :

class EDYUK_EXPORT EdyukTemplateManager

src/lib/edyuk.h :

EDYUK_EXPORT QString settingsPath();
EDYUK_EXPORT QString makeAbsolute(const QString& rel, const QString& abs);
EDYUK_EXPORT QString makeRelative(const QString& src, const QString& ref);

magland
2nd April 2007, 22:35
We worked through the Windows-specific installation problems offline, and everything looks very nice indeed.

Windows users should wait for the corrected version to be released since there were a bunch of small adjustments.

... but I certainly like what I see... thanks for the help!

magland

fullmetalcoder
5th April 2007, 12:46
Here we go! Edyuk 0.9.0 had indeed many compilation problems under Window$ but, thanks to the perseverant feedback of Jeremy Magland, I've been able to fix them and also some potential crash issues.

A second beta is thus available which now feature real "platform independence" and several minor improvements! Enjoy! :)

https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=196690&release_id=499004

hoborg
8th April 2007, 00:05
It's still impossible to compile on FreeBSD 6.1
Reason:
gdbthread.cpp : line with

#ifdef OS_LINUX

should be

#ifdef OS_UNIX (I suppose)
i
I deleted this line wih it's corresponding #endif and the compilation goes well until the end. Sadly, when running edyuk after the 'make install', I get a core dump just a while after the splash screen appears :/

QTmplayer
8th April 2007, 14:05
Hi
I compiled edyuk on windows but with the visual studio compiler and had some compilation problems, too.
After finding some work arounds (which I may post soon after some more tests) the compilation finishes well.
But when I try to start the program I face what I believe is the same problem hoborg has: Right after the splash screen appears the program terminates.

This only happens if the "default.*" library files are in the "\plugins" directory. Edyuk starts when there are no plugin files.

QtmPlayer

hoborg
8th April 2007, 15:26
Thanks for your suggestion, QTmplayer :)
I deleted the .so file from plugins subdirectory and now edyuk starts.
I still can't run it as a normal user - I had to do 'make install' as root and only root can start the environment (when I try as an user, nothing happens, even the splash screen doesn't appear).

------
edit:

Well, I was celebrating too early. The environment launches well but after I select 'Open' it goes down with a core dump (Illegal instruction).

QTmplayer
8th April 2007, 19:28
I must correct my old statement:
This crash occurs only when I build the \lib, \exec and \default one after another and then run the executable.

When I do all these steps together by simply using the .pro file in the main directory it works perfectly after the workarounds have been installed.

I listed all workarounds in the "msvc_fix.txt" file attached to the post.

Hope this helps.

QtmPlayer

PS: Now Edyuk runs I admit that it's really nice work ;) :D

fullmetalcoder
12th April 2007, 19:56
I must correct my old statement:
This crash occurs only when I build the \lib, \exec and \default one after another and then run the executable.

When I do all these steps together by simply using the .pro file in the main directory it works perfectly after the workarounds have been installed.
Sounds weird but my poor knowledge of MSVC won't help here... You might consider reporting the bug to Trolltech...


I listed all workarounds in the "msvc_fix.txt" file attached to the post.

Hope this helps.
This surely does! I'll fix the source as soon as possible. :)



PS: Now Edyuk runs I admit that it's really nice work ;) :D
I'm quite happy to see that my work satisfy you. Hope you'll have fun :D


The environment launches well but after I select 'Open' it goes down with a core dump (Illegal instruction). This is weird but I encountered this issue already under Pardus 2007. For an unknown reason the use of QCompleter (by QFileDialog, among others) seems to cause a crash... I admit I don't know how to fix this... Maybe you can confirm this guess by sending me a gdb backtrace. If it really is what I suggested, I shall report a bug to Trolltech, otherwise I'll try to fix this by hand.

tebessum
16th April 2007, 10:07
I geting this error :

C:\edyuk-0.8.0-rc1\src\exec>mingw32-make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/edyuk-0.8.0-rc1/src/exec'
windres -i edyuk.rc -o ..\tmp\obj\exec\release\edyuk_res.o --include-dir=.
cc1: unrecognized option `-E'
windres: no resources
mingw32-make[1]: *** [..\tmp\obj\exec\release\edyuk_res.o] Error 1
mingw32-make[1]: Leaving directory `C:/edyuk-0.8.0-rc1/src/exec'
mingw32-make: *** [release] Error 2

Please help ...

fullmetalcoder
16th April 2007, 11:51
I geting this error :

C:\edyuk-0.8.0-rc1\src\exec>mingw32-make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/edyuk-0.8.0-rc1/src/exec'
windres -i edyuk.rc -o ..\tmp\obj\exec\release\edyuk_res.o --include-dir=.
cc1: unrecognized option `-E'
windres: no resources
mingw32-make[1]: *** [..\tmp\obj\exec\release\edyuk_res.o] Error 1
mingw32-make[1]: Leaving directory `C:/edyuk-0.8.0-rc1/src/exec'
mingw32-make: *** [release] Error 2

Please help ...
Compilation failed for 0.8.0-rc1 under Windows but if I remember well the error reported was not the one you encounter... I suggest you get Edyuk 0.9.0-beta2 instead (which is know to compile under Windows) or possibly the SVN trunk if you want to try latest enhancements and check your version of MinGW...

Usability
22nd May 2007, 20:33
I tried compiling and running eduyk 0.9.0-beta2 on my Gentoo 64 box and find it just crashes on startup.

Here is the debug output



rebuilding recent files/projects menu...
cleaned previous data...
filled with new data...
Initializing shortcuts...
Initializing plugins...
system plugins path : /home/jeremy/src/edyuk-0.9.0-beta2/plugins/

file : /home/jeremy/src/edyuk-0.9.0-beta2/plugins/libdefault_debug.so
Plugin root created
PluginInterface created : 5615664
CorePlugin created
Segmentation fault

And the line causing the segmentation fault is line 58 of qdesignerperspective.cpp, which looks like this


pDesigner = QDesignerComponents::createFormEditor(this);


This one whistles off into the internals of QT and I cannot track it any further.
I am running QT 4.2.3 with 3.4.5.

Any ideas anyone?

fullmetalcoder
22nd May 2007, 20:57
This one whistles off into the internals of Qt and I cannot track it any further.
I am running Qt 4.2.3 with 3.4.5.
This one is mandatory for Designer integration to work... If Qt Designer runs fine under your box it shouldn't cause any trouble but as it relies on private headers we never know... Try replacing all the private headers in src/default/designer (those ending in *_p.h) by their equivalents available in your Qt sources, recompile and see if it works better....

Usability
22nd May 2007, 21:44
Did that, and it recompiled a few things but it still crashed on invocation.

I just tried the tool on another 64 bit Gentoo machine, and here it works. The main differences between the two are:
gcc version 4.1.1 on the working machine
gcc version 3.4.5 on the broken one.

QT Designer works fine on both. The GUI looks good, you are too hard on yourself.

My top 3 enhancement requests are:

Double clicking a method in the class browser should go to the code for the method, currently all the methods open the header file instead. The class name its self could do that.
A button to toggle between .h and .cpp file for the same class. I am always going back and forth between these two.
Some obvious way of adding a breakpoint. Am I missing something here?


Anyway, I think its an encouraging project. The world really needs an IDE for debugging QT4 programs.

QDevelop locks up on both my Gentoo machines, so you are already ahead there :)

fullmetalcoder
23rd May 2007, 13:57
Did that, and it recompiled a few things but it still crashed on invocation.

I just tried the tool on another 64 bit Gentoo machine, and here it works. The main differences between the two are:
gcc version 4.1.1 on the working machine
gcc version 3.4.5 on the broken one.

QT Designer works fine on both.

Sounds weird. I'm not very familiar with 64bit machines and tracking GCC errors is too hard for me so I guess there's no way I can fix that... If GCC 4.x works fine on some platforms where 3.x fails I'll have to mention it in the readme.


The GUI looks good, you are too hard on yourself.
I must be missing something here... :confused:



My top 3 enhancement requests are:
Double clicking a method in the class browser should go to the code for the method, currently all the methods open the header file instead. The class name its self could do that.
A button to toggle between .h and .cpp file for the same class. I am always going back and forth between these two.
Some obvious way of adding a breakpoint. Am I missing something here? Anyway, I think its an encouraging project. The world really needs an IDE for debugging QT4 programs.

QDevelop locks up on both my Gentoo machines, so you are already ahead there :)

I've thought about that but didn't find time to do it in a proper way yet. It should be added in a feature release but don't ask me when, I'm rather busy ATM.
I was thinking about a context menu for class names to open either header or source. If that's not what you mean could you precise your button idea?
I admit Edyuk lacks documentation and breakpoints are not that obvious... :oThere are currently two ways to set breakpoints :

graphically by right clicking on the leftmost part of the editor (on concerned line) and toggling the breakpoint entry
by hand through the "custom command" entry in Debug menu and typing the corresponding commandNote : the first method currently REQUIRES breakpoints to be set BEFORE starting debugging.

I'm thinking about improving this breakpoint issue (by adding a shortcut, among other things) but, once again, I lack time... Anyway, if I'm lucky and fast enough these three might find their way in the next upcoming release which will be issued before the contest ends.:)

fullmetalcoder
25th May 2007, 23:24
The long-awaited 0.9.0 version of Edyuk has finally been released.

It features many bug fixes and including miscompilation on certain platforms. The most noticeable changes/adds are:

brand new (Unix) build script with auto-detection of qmake, Qt version check (Qt 4.2 or higher now mandatory) and compile output formatting
Drag and drop in the workspace. Tabs are freely movable within the tab bar to let you reorder opened files on the fly. Dropping a file list (dragged from Konqui for instance) cause them to be opened
improved completion (yet again! it's getting near to perfection :)). It is now possible to trigger it at will through an action (default shortcut : Ctrl + Space)
changed the look of some dialogs and much improved configuration
The next version (1.0) is already being worked on and will bring many changes concerning the editing framework :

A brand new language definition format, much more flexible and, I hope, resulting in faster highlighting
A new way of handling breakpoints (which, because of internal deps to 1.0 series, could not be added to this release) that will allow an action to be added (and thus a shortcut) but also breakpoints to be set while debugging already started :)
Improvements of class browsing as asked by Usability
And many other niceties :D
cheers

fmc

fullmetalcoder
30th May 2007, 17:22
Edyuk 0.9.1 has just been released. It is mainly a bugfix release which, above all, fixes compilation under Windows.

https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=191461&release_id=512221

fedcer
20th June 2007, 15:45
Hi, I'm trying to build Edyuk 0.9.1 but I'm getting the following errors:


Processing form ui/createnewdialog.ui
Compiling ../../3rdparty/qpool/qpool.cpp
../../3rdparty/qpool/qpool.cpp:105: error: cast from 'QPool*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:106: error: cast from 'char*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:106: error: cast from 'char*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:106: warning: format '%x' expects type 'unsigned int', but argument 5 has type 'long unsigned int'
../../3rdparty/qpool/qpool.cpp:223: error: cast from 'size_t*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:223: error: cast from 'size_t*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:223: error: cast from 'size_t*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:223: warning: format '%x' expects type 'unsigned int', but argument 4 has type 'long unsigned int'
../../3rdparty/qpool/qpool.cpp:223: warning: format '%i' expects type 'int', but argument 5 has type 'size_t'
../../3rdparty/qpool/qpool.cpp:248: error: cast from 'size_t*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:248: error: cast from 'size_t*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:248: error: cast from 'size_t*' to 'int' loses precision
../../3rdparty/qpool/qpool.cpp:249: warning: format '%x' expects type 'unsigned int', but argument 4 has type 'long unsigned int'
../../3rdparty/qpool/qpool.cpp:249: warning: format '%i' expects type 'int', but argument 5 has type 'size_t'
../../3rdparty/qpool/qpool.cpp:249: warning: format '%x' expects type 'unsigned int', but argument 7 has type 'size_t'
../../3rdparty/qpool/qpool.cpp:249: warning: format '%x' expects type 'unsigned int', but argument 8 has type 'long unsigned int'

and the list of erros continues with more errors of that same kind.

fullmetalcoder
20th June 2007, 16:05
Hi, I'm trying to build Edyuk 0.9.1 but I'm getting the following errors:

and the list of erros continues with more errors of that same kind.
It looks like your compiler is very strict with casts... Apparently I forgot comment out all the qDebug() statements I put in the QPool code and your compiler complain. All you have to do is opening src/3rdparty/qpool/qpool.cpp and comment out the concerned lines... Apologies for this...:o

srikpen
20th June 2007, 18:27
I am getting the following when compiling with the follow error in the following env:

windows 2000 sp4
Qt 4.3.0
C:\qtwork>mingw32-make -v
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.


C:\qtwork\edyuk-0.9.1>build
...
...
.\..\..\Qt\4.3.0\mkspecs\win32-g++" -o ..\tmp-default-4.3.0-win32\obj\release\qm
akevariable.o qmakemodel\qmakevariable.cpp
../../3rdparty/qprojectmodel/qprojectparser.h: In member function `void QProject
Parser::qt_check_for_QOBJECT_macro(const T&) const [with T = QMakeParser]':
../../../../Qt/4.3.0/include/QtCore/../../src/corelib/kernel/qobject.h:411: in
stantiated from `T qobject_cast(QObject*) [with T = QMakeParser*]'
qmakemodel\qmakevariable.cpp:654: instantiated from here
../../3rdparty/qprojectmodel/qprojectparser.h:38: error: void value not ignored
as it ought to be
mingw32-make[1]: *** [..\tmp-default-4.3.0-win32\obj\release\qmakevariable.o] Er
ror 1
mingw32-make[1]: Leaving directory `C:/qtwork/edyuk-0.9.1/src/default'
mingw32-make: *** [release] Error 2

I tried that thing on google
Re: patched!
06/01/2007, 2:28 on content: Edyuk
some little error
must be:

3dparty/qprojectmodel/qprojectparser.h:



#ifndef _QPROJECT_PARSER_H_
#define _QPROJECT_PARSER_H_

#define QT_NO_QOBJECT_CHECK 1

#include "qproject.h"


but no luck there still same error as above.

thanks.

fullmetalcoder
20th June 2007, 18:56
I tried that thing on google
Re: patched!
06/01/2007, 2:28 on content: Edyuk
some little error
must be:

3dparty/qprojectmodel/qprojectparser.h:



#ifndef _QPROJECT_PARSER_H_
#define _QPROJECT_PARSER_H_

#define QT_NO_QOBJECT_CHECK 1

#include "qproject.h"
but no luck there still same error as above.

thanks.
There are two things left to try :

add DEFINES += QT_NO_QOBJECT_CHECK to config.pri (dirty hack)
add Q_OBJECT to QMakeParser declaration in src/default/qmakemodel/qmakeparser.hIf it still fails please let me know. I should anyway release a newer package soon.:)

fedcer
20th June 2007, 20:34
It looks like your compiler is very strict with casts... Apparently I forgot comment out all the qDebug() statements I put in the QPool code and your compiler complain. All you have to do is opening src/3rdparty/qpool/qpool.cpp and comment out the concerned lines... Apologies for this...:o
Thanks, now it copiled fine. By the way, congratulations ! It is a very good IDE.

fullmetalcoder
21st June 2007, 09:25
Thanks, now it copiled fine.
Good news! :)


By the way, congratulations ! It is a very good IDE.
Thanks a lot :) Such feedback is very important when I feel lost within the sources with so many things left to do and so little time to deal with them ;)

srikpen
21st June 2007, 17:16
There are two things left to try :

add DEFINES += QT_NO_QOBJECT_CHECK to config.pri (dirty hack)
add Q_OBJECT to QMakeParser declaration in src/default/qmakemodel/qmakeparser.hIf it still fails please let me know. I should anyway release a newer package soon.:)

Thanks a lot.

adding the Q_OBJECT solved the problem without the dirty hack you mentioned.

With support like this I don't mind being santa's elve for any testing req's on
my triple boot windows 2K, fedora 6 AMD 32-bit, 64-bit system.

How do I build this in debug mode as well, where do the logs go ??
regards
sri.

fullmetalcoder
22nd June 2007, 14:53
adding the Q_OBJECT solved the problem without the dirty hack you mentioned.
This was the clean solution. I mentioned the other one as well because some people happen to be quite lazy... ;)


With support like this I don't mind being santa's elve for any testing req's on
my triple boot windows 2K, fedora 6 AMD 32-bit, 64-bit system.
It's very kind of you :)


How do I build this in debug mode as well, where do the logs go ??
Edit config.pri... You can basically do any find tunning you want in it since it is included by all subdirs. You'll just need to replace CONFIG += release by CONFIG += debug. There used to be a way to redirect debug output to a log file but I think I dropped it... You can anyway bring it back by editing src/lib/edyukapplication.cpp and adding appropriate code within the message handler. :)

srikpen
23rd June 2007, 07:47
After running edyuk-debug I am not able to find the run.log anywhere.
I have diffed the edyukappliation with it's original as below, is it some thing else I am missing?


C:\qtwork\edyuk-0.9.1\src\lib>diff edyukapplication.cpp edyukapplication.cpp.ORG
75c75
< static QTextStream cout(stdout), cerr(stderr), clog;
---
> //static QTextStream cout(stdout), cerr(stderr), clog;
93c93
< clog << type[t] << msg << endl;
---
> //clog << type[t] << msg << endl;
98c98
< clog << "aborting..." << endl;
---
> //clog << "aborting..." << endl;
142c142
< clog.setDevice(pEdyukLogFile);
---
> //clog.setDevice(pEdyukLogFile);


BTW the debug edyuk justs shows up in task manager and no GUI comes up, then terminates after a few seconds. Any Idea?
Just set the debug options as you mentioned i.e.:
CONFIG += debug and
add Q_OBJECT to QMakeParser declaration in src/default/qmakemodel/qmakeparser.h

fullmetalcoder
23rd June 2007, 11:26
After running edyuk-debug I am not able to find the run.log anywhere.
I have diffed the edyukappliation with it's original as below, is it some thing else I am missing?


C:\qtwork\edyuk-0.9.1\src\lib>diff edyukapplication.cpp edyukapplication.cpp.ORG
75c75
< static QTextStream cout(stdout), cerr(stderr), clog;
---
> //static QTextStream cout(stdout), cerr(stderr), clog;
93c93
< clog << type[t] << msg << endl;
---
> //clog << type[t] << msg << endl;
98c98
< clog << "aborting..." << endl;
---
> //clog << "aborting..." << endl;
142c142
< clog.setDevice(pEdyukLogFile);
---
> //clog.setDevice(pEdyukLogFile);

The log file should be placed in Edyuk::settingsPath() which should expand to ~/.Edyuk-$version$/ so in your case ~/.Edyuk-0.9.1 (or ~/.Edyuk-1.0.0-alpha in case you use the SVN trunk)


BTW the debug edyuk justs shows up in task manager and no GUI comes up, then terminates after a few seconds. Any Idea?
It might come from an assert failure... You know Qt uses a lot of Q_ASSERT() macro everywhere and it can result in very different behaviours of debug and release builds... The best way to figure out what's wrong is to run on command line or under gdb. This way you'll know why the debug build fails and we'll be able to fix this :)

srikpen
23rd June 2007, 14:08
Sorry for bothering you much. But I am not a windows guy.
with gdb I'm comfortable on linux.

I feel impaired with the windows thing.
You have any idea how I can get started debugging this with proper tools on windows.
I don't want to start configuring tools to get running, some quicky debugger, ctags(or find, grep) kind of thing on windows?

Just wanted to know, I see you're also not a windows guy but thought you might have some idea.

thanks
sri.

fullmetalcoder
23rd June 2007, 14:44
Sorry for bothering you much. But I am not a windows guy.
I'm a little lost here? Do you mean you're testing under Window$ and facing troubles there that you don't know how to handle?


You have any idea how I can get started debugging this with proper tools on windows.
I don't want to start configuring tools to get running, some quicky debugger, ctags(or find, grep) kind of thing on windows?

Just wanted to know, I see you're also not a windows guy but thought you might have some idea.
Sure! gdb is also available under Window$ (http://downloads.sourceforge.net/mingw/gdb-5.2.1-1.exe?modtime=1045353600&big_mirror=1). You don't need ctags to use Edyuk code completion but I think it is available for Win as well. As for grep/find and other *nix tools I don't think there is any equivalent but you can always have a look at Cygwin (http://www.cygwin.com/)...

Hope this helps :)

srikpen
23rd June 2007, 16:06
Yep I don't know how to traverse the code fast on Windows. I am using gvim for windows. I will try to find the equivalent ctags and also the gdb.

I am finding it painful to find the bug. Just make a change and then recompile it again which takes about 10 mins.
I was just wondering if there's a fast way of doing the debugging?

thanks much.

fullmetalcoder
23rd June 2007, 16:21
Yep I don't know how to traverse the code fast on Windows. I am using gvim for windows. I will try to find the equivalent ctags and also the gdb.
What do you mean by "traverse the code" ?


I am finding it painful to find the bug. Just make a change and then recompile it again which takes about 10 mins.
Which files did you change to get such a long re-compilation? Make normally keep track of dependencies between files to reduce compilation time once an app has been build once...


I was just wondering if there's a fast way of doing the debugging?
It depends on what you mean... Once you have compiled the app in debug mode all you need is to run it within gdb... Note that you can also run an app not build in debug mode within gdb but the output of some commands will be trickier to understand (backtrace for instance) and some commands won't even work... It should anyway be enough to track down the place where Edyuk fails...

fullmetalcoder
27th June 2007, 15:50
Hi all,

After some long days of struggle with model/view quirks, line endings and other tricky issues I've come to something much more stable. Yet, before releasing a package I'd like some tests to be done on other platforms than just UNIX/Linux.

The code is available through SVN : https://edyuk.svn.sf.net/svnroot/edyuk/0.9.0

As I know most Win32 users are not familiar with SVN, a package (http://edyuk.tuxfamily.org/misc/edyuk-0.9.2.tar.gz)is available as well...

vermarajeev
28th June 2007, 06:46
I tried running edyuk but get this error


/home/rajeev/Desktop/edyuk-0.9.2 # ./build -r

--- Checking configuration ---
Qt version : [OK] 4.2.1
qmake command : [OK] qmake
--- Configuration successful ---

--- Building Edyuk ---
Moving to directory src/lib
Moving to directory src/exec
Moving to directory src/default
--- Compilation successful ---

application edyuk not found after trying :
/home/rajeev/Desktop/edyuk-0.9.2/./edyuk.bin
./edyuk.bin

fullmetalcoder
28th June 2007, 09:41
I tried running edyuk but get this error


/home/rajeev/Desktop/edyuk-0.9.2 # ./build -r

--- Checking configuration ---
Qt version : [OK] 4.2.1
qmake command : [OK] qmake
--- Configuration successful ---

--- Building Edyuk ---
Moving to directory src/lib
Moving to directory src/exec
Moving to directory src/default
--- Compilation successful ---

application edyuk not found after trying :
/home/rajeev/Desktop/edyuk-0.9.2/./edyuk.bin
./edyuk.bin
For an unknown reason make doesn't seem to respect return value conventions (or maybe I badly checked for a 0 return value in the script...). Anyway the "compilation successfu" message is not to be trusted unless you show other message about the ongoing build process (such as "Compiling x.cpp", "moc'ing X.H" and "Linking x.so"...). Hopefully the script creates a log file (.compile.log) that you'll find in the main directory and which should explain why compilation failed...

edit : did you check the content of the folder once you had built Edyuk? It just occured to me that I might I left debug as default build mode... Try this command instead of ./build -r :
$ ./edyuk_debug

vermarajeev
28th June 2007, 10:42
Try this command instead of ./build -r :
$ ./edyuk_debug

Yep that works. We'll let you know if any error.

By the way, I just see your profile as fullmentalcoder, can I know your unidentified name. :D

fullmetalcoder
28th June 2007, 10:47
Yep that works. We'll let you know if any error.
Good! I'm looking forward to hearing your comments :)


By the way, I just see your profile as fullmentalcoder, can I know your unidentified name. :D
I thought it was fullmetalcoder (no 'n') :p If you search a bit you won't have troubles to find my name (have a look at the contest page for instance...)

vermarajeev
29th June 2007, 06:08
Hi Luc,
I started using edyuk, I was able to load a project. The IDE is really good. ;) CONGRATS...

I have a problem debugging my programs. I followed these steps.
1) Open the .pro file.
2) Then I couldn't find any shortcut to place a breakpoint, so did by right clicking
3) clicked Debug->Start Debugging
4) Get this error from the Debug.log displayed at bottom

---------- process gdb started ----------
[/home/rajeev/Desktop] gdb --quiet --fullname /home/rajeev/Desktop/edyuk-0.9.2
/home/rajeev/Desktop/edyuk-0.9.2: No such file or directory.
(gdb) start
No symbol table loaded. Use the "file" command.
(gdb) continue
The program is not being run.
(gdb)

Any idea???

One more thing,
In windows, we have shortcuts to
1) place a breakpoint
2) run the debugger with F5
3) Go to next step using F10
etc etc. The life of user is made much easier, rather than going and doing all other stuffs. Cant we provide shortcuts to make Edyup a more user friendly in terms of debugging.

Thanks

fullmetalcoder
29th June 2007, 14:49
I started using edyuk, I was able to load a project. The IDE is really good. ;) CONGRATS...
Thanks. :)




2) Then I couldn't find any shortcut to place a breakpoint, so did by right clicking

There's a toolbar entry and a menu entry to do that which results in a shortcut being "available". I mean, you can set a shortcut through the configure shortucts dialog but there is no default shortcut...



3) clicked Debug->Start Debugging
4) Get this error from the Debug.log displayed at bottom

Any idea???

It looks like the target i.e. executable to debug) hasn't been found... Check that it does exist. Check that you can run it and send me the project file you're using (or is it Edyuk's one?).



In windows, we have shortcuts to
1) place a breakpoint
2) run the debugger with F5
3) Go to next step using F10
etc etc. The life of user is made much easier, rather than going and doing all other stuffs. Cant we provide shortcuts to make Edyup a more user friendly in terms of debugging.

Check out the shortcut configuration dialog... ;)

fullmetalcoder
29th June 2007, 18:18
Edyuk 0.9.2 has just been released after long and tough testings!

It features many (many many!) bugfixes, especially crucial Windows-specific ones and annoying model/view issues. The template manager has been improved and new project templates have been added. The run-time translation now works perfectly (but for some reason you can't fallback to untranslated mode...) and a russian translation has been added.

Hoping you'll like it :) and stay tuned : the 1.0 version is gonna be awesome!!! ;)

vermarajeev
3rd July 2007, 06:58
How to change the default path
/home/rajeev/Desktop/edyuk-0.9.2: to my project. I think the problem is : the fullpath that the compiler takes. How can I change this to my project path.

I also tried setting the target path as you suggested but get the same below error.


---------- process gdb started ----------
[/home/rajeev/Desktop] gdb --quiet --fullname /home/rajeev/Desktop/edyuk-0.9.2
/home/rajeev/Desktop/edyuk-0.9.2: No such file or directory.
(gdb) start
No symbol table loaded. Use the "file" command.
(gdb) continue
The program is not being run.
(gdb)

Pepe
11th July 2007, 03:14
Is there a rpm package? (Or src.rpm or at least a spec file)

fullmetalcoder
12th July 2007, 09:40
Is there a rpm package? (Or src.rpm or at least a spec file)
Nop. All you can get currently is sources from Sf.net dl server or from the SVN... But you're welcome if you wish to create such rpm. (AFAIK there are already similar "spec" files for some distros like Arch Linux...)

fullmetalcoder
29th July 2007, 21:47
Here comes the first beta release of Edyuk 1.0.0 (https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=196690&release_id=528511)

Most noticeable changes are the upgrade of QCodeEdit, the text editing layer (from version 1 to 2, still work in progress), and QCodeModel, the completion/class browsing data backend (same thing but way more mature than QCodeEdit 2). These changes bring a much better user experience by reducing the memory usage by several dozen megs and lowering the loading speed down to 7 seconds on first load and about 2 on next ones (instead of 20 and 10!!!).

Many more or less nasty bugs have been fixed as well and the code completion was improved (once again) a little : it should be able to complete everything (Qt classes, project ones and even designer-generated classes!!!).

The handling of line marks (which includes breakpoints) was improved a great deal. That should make the graphical debugging way smoother, when it will be fiexd because it turns out that there is something broken :o... Thanks vermarajeev for reporting, I'll try to solve this ASAP and schedule a second beta release soon enough...

Despite its "unstable" status it should prove very usable... if you manage to compile it... indeed I was not able to test it under neither Windows nor Mac. Thus, feedback would be highly valued. ;)

happy testing :D

Pepe
30th July 2007, 09:30
I'm afraid compilation fails in Windows (using Qt 4.2.3 opensource):



g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,..\..\plugins\libdefault.a -o "..\..\plugins\default.dll" object_script.default.Release -L"c:\Qt\4.2.3\lib" -L../.. -ledyuk -lQtDesignerComponents4 -lQtDesigner4 -lQtUiTools -lQtXml4 -lQtGui4 -lQtCore4
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\ mingw32\bin\ld.exe: cannot find -ledyuk
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\plugins\default.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Pepe/My Documents/edyuk/edyuk-1.0.0-beta/src/default'
mingw32-make: *** [release] Error 2

fullmetalcoder
30th July 2007, 14:32
I'm afraid compilation fails in Windows (using Qt 4.2.3 opensource):
I'm afraid I would have guessed it... Windows DLL stuff are a bit annoying but the fix should be a one-liner :
Add this line to 3rdparty/qcodeedit2/lib/lib.pri :

DEFINES += _QCODE_EDIT_BUILD_

Please let me know whether build succeeds on Win with this fix.

Pepe
30th July 2007, 15:28
It fails again with the same error than before :(

fullmetalcoder
30th July 2007, 15:31
Are you sure that the makefiles have been re-generated? and that the library has been built properly?

edit : appears that the fix wasn't actually a one-liner... I'm packaging a second beta... :o

Pepe
30th July 2007, 15:40
How can I re-generate the makefiles?
I already tried running "qmake", no success.

BTW, I realized there were other previous errors, although compilation continued:



In file included from ../../3rdparty/qcodeedit2/lib/widgets/qsearchreplacepanel.
h:25,
from ..\..\3rdparty\qcodeedit2\lib\qeditorfactory.cpp:3 3:
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h: In member function `void Ui_Search
Replace::setupUi(QWidget*)':
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:56: error: 'class QVBoxLayout' has
no member named 'setLeftMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:57: error: 'class QVBoxLayout' has
no member named 'setTopMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:58: error: 'class QVBoxLayout' has
no member named 'setRightMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:59: error: 'class QVBoxLayout' has
no member named 'setBottomMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:73: error: 'class QHBoxLayout' has
no member named 'setLeftMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:74: error: 'class QHBoxLayout' has
no member named 'setTopMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:75: error: 'class QHBoxLayout' has
no member named 'setRightMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:76: error: 'class QHBoxLayout' has
no member named 'setBottomMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:169: error: 'class QHBoxLayout' has
no member named 'setLeftMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:170: error: 'class QHBoxLayout' has
no member named 'setTopMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:171: error: 'class QHBoxLayout' has
no member named 'setRightMargin'
../tmp-lib-4.2.3-win32/ui/ui_searchreplace.h:172: error: 'class QHBoxLayout' has
no member named 'setBottomMargin'
mingw32-make[1]: *** [..\tmp-lib-4.2.3-win32\obj\release\qeditorfactory.o] Error
1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Pepe/My Docume
nts/edyuk/edyuk-1.0.0-beta/src/lib'
mingw32-make: *** [release] Error 2
Project MESSAGE: project generated by Edyuk
Project MESSAGE: http://edyuk.sourceforge.net
Project MESSAGE: project generated by Edyuk
Project MESSAGE: http://edyuk.sourceforge.net
Project MESSAGE: project generated by Edyuk
Project MESSAGE: http://edyuk.sourceforge.net
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Documents and Settings/Pepe/My Docum
ents/edyuk/edyuk-1.0.0-beta/src/exec'
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "..\..\edyuk.exe" ..\tm
p-exec-4.2.3-win32\obj\release\main.o -L"c:\Qt\4.2.3\lib" -lmingw32 -lqtmain ..
\tmp-exec-4.2.3-win32\obj\release\edyuk_res.o -L../.. -ledyuk -lQtGui4 -lQtCore4

C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\ mingw32\bin\ld.exe: cannot fin
d -ledyuk
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\edyuk.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Pepe/My Docume
nts/edyuk/edyuk-1.0.0-beta/src/exec'
mingw32-make: *** [release] Error 2

fullmetalcoder
30th July 2007, 15:45
These errors are awkward... The ui file has been generated using Qt designer so there can't be any problem unless new properties have been introduced in Qt 4.3... Would be quite annoying since there apparently is NO way to filter them out and they appear to be added by default...:( If you can afford it try upgrading to Qt 4.3 and see if it works any better...

Edit : Indeed, the margin management of layouts has changed in Qt 4.3... QLayout::setContentsMargin() is preferred and thus used, through new properties, by Qt Designer... Unfortunately, earlier versions of uic can not handle these properties properly... Anyone has an idea on how to fix this???

Pepe
30th July 2007, 16:04
Tried with Qt 4.3.0. I had to add your previous fix because compilation failed in the same place.

After that compilation went on for some minutes more but failed in another point:


mingw32-make[1]: Entering directory `C:/Documents and Settings/Pepe/My Docum
ents/edyuk/edyuk-1.0.0-beta/src/default'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,..\..\plugins\libdefault.a -o "
..\..\plugins\default.dll" object_script.default.Release -L"c:\Qt\4.3.0\lib" -L
../.. -ledyuk -lQtDesignerComponents4 -lQtScript4 -lQtDesigner4 -lQtUiTools -lQt
Xml4 -lQtGui4 -lQtCore4
Creating library file: ..\..\plugins\libdefault.a
./..\tmp-default-4.3.0-win32\obj\release\core.o(.text$_ZN18CppCallbackHan dler5ev
entE7QString11QStringList[CppCallbackHandler::event(QString, QStringList)]+0x1ab
c):core.cpp: undefined reference to `QEditor::staticMetaObject'
./..\tmp-default-4.3.0-win32\obj\release\debuger.o(.text+0x4931):debuger. cpp: un
defined reference to `QEditor::staticMetaObject'
./..\tmp-default-4.3.0-win32\obj\release\debuger.o(.text+0x4959):debuger. cpp: un
defined reference to `QEditor::cursor() const'
./..\tmp-default-4.3.0-win32\obj\release\debuger.o(.text+0x4972):debuger. cpp: un
defined reference to `QDocumentCursor::lineNumber() const'
./..\tmp-default-4.3.0-win32\obj\release\debuger.o(.text+0x498e):debuger. cpp: un
defined reference to `QDocumentCursor::~QDocumentCursor()'
./..\tmp-default-4.3.0-win32\obj\release\debuger.o(.text+0x4b63):debuger. cpp: un
defined reference to `QDocumentCursor::~QDocumentCursor()'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1838) :cppqtp
erspective.cpp: undefined reference to `QCodeEdit::editor() const'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1864) :cppqtp
erspective.cpp: undefined reference to `QCodeEdit::editor() const'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x19c0) :cppqtp
erspective.cpp: undefined reference to `_imp___ZNK14QEditorFactory6editorERK7QSt
ringS2_'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1ceb) :cppqtp
erspective.cpp: undefined reference to `QEditor::staticMetaObject'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1cff) :cppqtp
erspective.cpp: undefined reference to `QEditor::document() const'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1d15) :cppqtp
erspective.cpp: undefined reference to `QDocument::line(int) const'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1d3d) :cppqtp
erspective.cpp: undefined reference to `QEditor::marker() const'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1d86) :cppqtp
erspective.cpp: undefined reference to `QEditor::marker() const'
./..\tmp-default-4.3.0-win32\obj\release\cppcompletion.o(.text+0xde67):cp pcomple
tion.cpp: undefined reference to `QEditor::cursor() const'
./..\tmp-default-4.3.0-win32\obj\release\cppcompletion.o(.text+0xdeb2):cp pcomple
tion.cpp: undefined reference to `QDocumentCursor::~QDocumentCursor()'
./..\tmp-default-4.3.0-win32\obj\release\cppcompletion.o(.text+0x1063f):c ppcompl
etion.cpp: undefined reference to `QDocumentCursor::~QDocumentCursor()'
./..\tmp-default-4.3.0-win32\obj\release\moc_assistant.o(.text+0x1a9):moc _assist
ant.cpp: undefined reference to `Assistant::setupContent()'
./..\tmp-default-4.3.0-win32\obj\release\moc_assistant.o(.text+0x1b9):moc _assist
ant.cpp: undefined reference to `Assistant::setupIndex()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\plugins\default.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Pepe/My Docume
nts/edyuk/edyuk-1.0.0-beta/src/default'
mingw32-make: *** [release] Error 2

fullmetalcoder
30th July 2007, 16:29
Tried with Qt 4.3.0. I had to add your previous fix because compilation failed in the same place.

After that compilation went on for some minutes more but failed in another point:
As I said it appeared that Windows&DLL-specific troubles actually require a little more than a one-liner... A proper package should be available within an hour or so... Sorry for the inconvenience but I can't test under Window$...

This delay is not so bad after all because in the meantime I fixed several annoying bugs, including the debugging failure...:)

fullmetalcoder
30th July 2007, 17:03
Second attempt to release a beta of Edyuk 1.0.0 (https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=196690&release_id=528712)... Will Windows accept it for once?

Apart from the compilation troubles under Windows (solved) and Qt < 4.3 (not solved, bug reported to the Trolls... wait and see) several other issues have been dealt with :

debugging is back :)
a rare but annoying highlighting bug has been solved
many configuration related issues have been fixed (setting alternative commands to gcc/qmake/... will now work)
and more...

Pepe
30th July 2007, 17:29
Bad news, still it fails:



g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,..\..\plugins\libdefault.a -o "
..\..\plugins\default.dll" object_script.default.Release -L"c:\Qt\4.3.0\lib" -L
../.. -ledyuk -lQtDesignerComponents4 -lQtScript4 -lQtDesigner4 -lQtUiTools -lQt
Xml4 -lQtGui4 -lQtCore4
Creating library file: ..\..\plugins\libdefault.a
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1838) :cppqtp
erspective.cpp: undefined reference to `QCodeEdit::editor() const'
./..\tmp-default-4.3.0-win32\obj\release\cppqtperspective.o(.text+0x1864) :cppqtp
erspective.cpp: undefined reference to `QCodeEdit::editor() const'
./..\tmp-default-4.3.0-win32\obj\release\moc_assistant.o(.text+0x1a9):moc _assist
ant.cpp: undefined reference to `Assistant::setupContent()'
./..\tmp-default-4.3.0-win32\obj\release\moc_assistant.o(.text+0x1b9):moc _assist
ant.cpp: undefined reference to `Assistant::setupIndex()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\plugins\default.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Pepe/My Docume
nts/edyuk/edyuk-1.0.0-beta2/src/default'
mingw32-make: *** [release] Error 2

fullmetalcoder
30th July 2007, 18:09
Proposed fix :

in 3rdparty/qcodeedit/lib/qcodeedit.h :
add
#include "qce-config.h"
replace
class QCodeEdit by
class QCE_EXPORT QCodeEdit

in src/default/assistant.h :
remove the two private slots mentionned by the compiler error (those without parameters if it helps you)

It should be OK after that but I'd rather wait for a confirmation before releasing yet another package... ;)

Pepe
30th July 2007, 20:50
With those changes now it compiles, but it crashes when I try to run it, just after the splash screen, when the main window was just going to be shown.

fullmetalcoder
30th July 2007, 21:05
it crashes when I try to run it, just after the splash screen, when the main window was just going to be shown.
Any chance that you send me a backtrace? Windows is definitely a troublesome platform to support...

Pepe
30th July 2007, 23:23
There are no symbols, so I think it will useless:



(gdb) bt
#0 0x01590b82 in ?? ()
#1 0x01591a34 in ?? ()
#2 0x015a0053 in ?? ()
#3 0x015a0133 in ?? ()
#4 0x015c557e in ?? ()
#5 0x6a2f4e62 in _size_of_stack_reserve__ ()
#6 0x6a2fdfd6 in _size_of_stack_reserve__ ()
#7 0x6a2fe06c in _size_of_stack_reserve__ ()
#8 0x6a2f744b in _size_of_stack_reserve__ ()
#9 0x6510aced in _size_of_stack_reserve__ ()
#10 0x6510aef7 in _size_of_stack_reserve__ ()
#11 0x6a2df993 in _size_of_stack_reserve__ ()
#12 0x6a30ae11 in _size_of_stack_reserve__ ()
#13 0x7e418734 in _libkernel32_a_iname ()
#14 0x7e418816 in _libkernel32_a_iname ()
#15 0x7e4189cd in _libkernel32_a_iname ()
#16 0x7e418a10 in _libkernel32_a_iname ()
#17 0x6a30efc1 in _size_of_stack_reserve__ ()
#18 0x6517c240 in _size_of_stack_reserve__ ()
#19 0x6a2df38d in _size_of_stack_reserve__ ()
#20 0x6a2df59a in _size_of_stack_reserve__ ()
#21 0x6a2e523b in _size_of_stack_reserve__ ()
#22 0x100be20e in _size_of_stack_reserve__ ()
---Type <return> to continue, or q <return> to quit---
#23 0x00401428 in _size_of_stack_reserve__ ()
#24 0x0040198b in _size_of_stack_reserve__ ()
#25 0x0040162a in _size_of_stack_reserve__ ()
#26 0x004011e7 in _size_of_stack_reserve__ ()
#27 0x00401258 in _size_of_stack_reserve__ ()
#28 0x7c816fd7 in _libkernel32_a_iname ()
(gdb)

fullmetalcoder
31st July 2007, 10:31
There are no symbols, so I think it will useless:
Well it looks useless indeed... I guess I'll have to try to find a Windows PC somewhere (I *might* manage to do this) and lead tests on my own... BTW, did you perform a make clean after the last suggested changes? (it appears that qmake badly handles dependencies of the default plugin so when an header of the core lib is modified the plugin is not always rebuilt accordingly...) This may help AFAIK.

Pepe
31st July 2007, 14:19
BTW, did you perform a make clean after the last suggested changes?

Yes. I even deleted the source tree, uncompressed again, applied your changes and compiled it. No changes. Edyuk crashes just when the main window appears or it's about to.

I tried to compile it with debug info, adding "debug" to the CONFIG in the pro files, but then linking fails.

fullmetalcoder
31st July 2007, 14:43
I tried to compile it with debug info, adding "debug" to the CONFIG in the pro files, but then linking fails.


To set to debug you need not modifying all project files but only the config.pri file
To compile in debug mode under Windows you'll need debug build of Qt libs which is not distributed... If you want to do that you first need to recompile Qt in debug mode...

Pepe
31st July 2007, 16:10
Mmm, I tried to compile Qt in debug mode, but there's problems.

I chose the option "Qt 4.3.0 Build Debug Libraries" in the Windows menu, but I think it didn't build, I think it only compiled qmake. There's an error at the end:

mingw32-make: *** No rule to make target `debug'. Stop.

Anyway I tried to compile Edyuk in debug mode, changing config.pri, but it fails with:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -shared -Wl,--out-implib,..\..\plugins\libdefault_debug.a -o "..\..\plugins\default_debug.dll" object_script.default_debug.Debug -L"c:\Qt\4.3.0\lib" -L../.. -ledyuk_debug -lQtDesignerComponentsd4 -lQtScriptd4 -lQtDesignerd4 -lQtUiToolsd -lQtXmld4 -lQtGuid4 -lQtCored4
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\ mingw32\bin\ld.exe: cannot find -ledyuk_debug
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\plugins\default_debug.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Pepe/My Documents/edyuk/edyuk-1.0.0-beta2/src/default'
mingw32-make: *** [debug] Error 2

fullmetalcoder
31st July 2007, 16:12
it crashes when I try to run it, just after the splash screen, when the main window was just going to be shown.
Well, I've just managed to find a XP box to test Edyuk (this post has been written from it actually). Here is my config :
Windows XP Home edition
fresh Qt 4.3.0 install
fresh MinGW install (the one fetched by Qt installer)
fresh Subversion 1.4.4 installI did a checkout of the SVN trunk, typed qmake && make in the command line, waited for compilation to finish, typed edyuk in the command line and...

... it just worked! No crash, no bugs as far as I tested, except a failure of the completion backend to find Qt headers : Edyuk does look usable to me.

I don't believe I fixed the bug you faced in the last few commits but that's how it looks... Could you please try to compile and run the content of the SVN trunk and tell me whether it works or still fails somewhere?

edit : It actually looks like there is an annoying bug... The first launch is OK but following one fails because of completion backend... As sources where not parsed properly on first launch, the tag file is malformed and causes a segfault when Edyuk tries to parse it... I'll investigate this. In the meantime just remove the Qt.tag file from %HOME%\.Edyuk-1.0.0-alpha each time you want to re-launch Edyuk.

Pepe
31st July 2007, 16:22
How can I get a "SVN trunk"?

(Sorry for the silly question but I've never used SVN)

fullmetalcoder
31st July 2007, 16:40
How can I get a "SVN trunk"?

(Sorry for the silly question but I've never used SVN)
That's not silly... Few people use SVN often... To get started you'll need to grab a client. If command line fits you can fetch bins from http://subversion.tigris.org otherwise google for TortoiseSVN.

Then you'll need to do a "checkout" of this URL : http://edyuk.svn.sf.net/svnroot/edyuk/trunk
(into the directory you want...)

The command line way to achieve this is : $ svn co http://edyuk.svn.sf.net/svnroot/edyuk/trunk edyuk

And I finally was able to fix the bug! The SVN will work on Win now. A package will come soon :)

Pepe
31st July 2007, 17:03
I compiled the SVN, but the program still crashes:

http://img515.imageshack.us/img515/9968/edyuk2gu5.th.jpg (http://img515.imageshack.us/my.php?image=edyuk2gu5.jpg)

I uninstalled Qt 4.3, installed again but this time allowing it to download mingw (instead of using the old one), but no way.

fullmetalcoder
31st July 2007, 17:06
I compiled the SVN, but the program still crashes
That's puzzling... There indeed were some bugs under Win but after the fix I committed on SVN everything went fine for me under the vanilla XP test system... Are you using vista BTW?

Pepe
31st July 2007, 17:20
No, I'm using Windows XP Media Center.

Maybe could be something about the locale? My system is in Spanish.

fullmetalcoder
31st July 2007, 17:39
Maybe could be something about the locale? My system is in Spanish.
I don't think so but I can't be sure... The only thing I'm sure is that it works perfectly under both my linux box and the XP Home box I briefly had access to...

magland
1st August 2007, 12:04
I still get compilation errors from the SVN version:



g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQNFA_BUILD -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT
-I"c:\Qt\opensource\4.3.0\include\QtCore" -I"c:\Qt\opensource\4.3.0\include\QtC
ore" -I"c:\Qt\opensource\4.3.0\include\QtGui" -I"c:\Qt\opensource\4.3.0\include\
QtGui" -I"c:\Qt\opensource\4.3.0\include\QtXml" -I"c:\Qt\opensource\4.3.0\includ
e\QtXml" -I"c:\Qt\opensource\4.3.0\include" -I"." -I"document" -I"language" -I"w
idgets" -I"qxs" -I"qnfa" -I"..\..\qpluginsystem" -I"c:\Qt\opensource\4.3.0\inclu
de\ActiveQt" -I".build" -I".build" -I"c:\Qt\opensource\4.3.0\mkspecs\win32-g++"
-o .build\qcodeedit.o qcodeedit.cpp
qcodeedit.cpp:10: error: definition of static data member 'QCodeEdit::m_instance
s' of dllimport'd class.
qcodeedit.cpp: In member function `void QCodeEdit::sendPanelCommand(const QStrin
g&, const char*, const QList<QGenericArgument>&)':
qcodeedit.cpp:57: warning: function 'QList<QPanel*> QCodeEdit::panels() const' i
s defined after prior declaration as dllimport: attribute ignored
mingw32-make[2]: *** [.build\qcodeedit.o] Error 1
mingw32-make[2]: Leaving directory `C:/cstuff/edyuk/3rdparty/qcodeedit2/lib'
mingw32-make[1]: *** [debug] Error 2
mingw32-make[1]: Leaving directory `C:/cstuff/edyuk/3rdparty/qcodeedit2/lib'
mingw32-make: *** [sub-lib-make_default] Error 2

fullmetalcoder
1st August 2007, 12:40
I still get compilation errors from the SVN version:
If you're sure that you're using SVN HEAD (last revision) of the trunk then you should try this :
$ make distclean && qmake && make

magland
1st August 2007, 13:01
If you're sure that you're using SVN HEAD (last revision) of the trunk then you should try this :
$ make distclean && qmake && make

Got the same type of error (below)... it tells me that I am "at revision: 229"... is it the latest?



....
edyuksettings.cpp:83: error: definition of static data member 'EdyukSettings::PA
TH_VAR' of dllimport'd class.
edyuksettings.cpp:124: warning: function 'virtual void EdyukSettings::setDefault
()' is defined after prior declaration as dllimport: attribute ignored
edyuksettings.cpp:275: warning: function 'void EdyukSettings::buildRecents()' is
defined after prior declaration as dllimport: attribute ignored
edyuksettings.cpp:275: warning: 'void EdyukSettings::buildRecents()' defined loc
ally after being referenced with dllimport linkage
mingw32-make[2]: *** [..\tmp-lib-4.3.0-win32\obj\release\edyuksettings.o] Error
1
mingw32-make[2]: Leaving directory `C:/cstuff/edyuk/src/lib'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `C:/cstuff/edyuk/src/lib'
mingw32-make: *** [sub-src-lib-make_default] Error 2

C:\cstuff\edyuk>

fullmetalcoder
1st August 2007, 13:42
Got the same type of error (below)... it tells me that I am "at revision: 229"... is it the latest?
It is the latest but the error occurs at another place. It looks like the project file of the corelib got mixed up when I last saved it... just put DEFINES += _EDYUK_CORELIB_BUILD_ in src/lib/lib.pro and it should compile...

magland
1st August 2007, 13:56
It is the latest but the error occurs at another place. It looks like the project file of the corelib got mixed up when I last saved it... just put DEFINES += _EDYUK_CORELIB_BUILD_ in src/lib/lib.pro and it should compile...

Okay, progress, now I get



Creating library file: ..\..\libedyuk.a
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x1630):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication8InstanceEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x1641):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication15shortcutManagerEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x18e5):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication8InstanceEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x18f6):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication15shortcutManagerEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x1b9a):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication8InstanceEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x1bab):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication15shortcutManagerEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x1e4f):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication8InstanceEv'
./..\tmp-lib-4.3.0-win32\obj\release\qeditor.o(.text+0x1e60):qeditor. cpp: undefined reference to `_imp___ZN16EdyukApplication15shortcutManagerEv'
...

fullmetalcoder
1st August 2007, 14:11
If the editor.cpp file had been build BEFORE the change in lib.pro this linking error wouldn't have shown up... perform a dummy edit in 3rdparty/qcodeedit2/lib/qeditor.cpp to force make to re-compile it and the linking should succeed.

magland
1st August 2007, 15:04
If the editor.cpp file had been build BEFORE the change in lib.pro this linking error wouldn't have shown up... perform a dummy edit in 3rdparty/qcodeedit2/lib/qeditor.cpp to force make to re-compile it and the linking should succeed.

Thanks that worked (and no crashes!).

Editor has very wierd behaviour (probably windows-specific I am guessing)
page-up, page-down do not work
slow-ish scrolling
"|" symbols sometimes appear at end of lines when scrolling
Code completion is EXTREMELY FAST (congrats), but I couldn't get it to work for locally declared variables.
How do I get the nifty options such as collapse/expand to work?
Edit->find does not work

I think QCodeEdit needs more work before it's useful on Windows.

fullmetalcoder
1st August 2007, 15:20
Editor has very wierd behaviour
Keep in mind that this is just a beta : QCodeEdit 2 is still work in progress...


page-up, page-down do not work
I got to investigate this because the related cursor move operation are implemented properly...


slow-ish scrolling
Really? Well, wasn't slow as far as I tested... big files with a lot of highlighted blocks (e.g. rcc output) can lead to slow scrolling but most files don't...


(probably windows-specific I am guessing)

"|" symbols sometimes appear at end of lines when scrolling
When I tested QCodeEdit 2 under Windows I myself experimented a few display bugs which never showed up under Linux... I must admit that I'm a bit puzzled about that...


Code completion is EXTREMELY FAST (congrats)
Thanks :) It is also extremely efficient since it can complete chain of tokens (e.g. widget->geometry().normailzed().bottomRight() ...) just as fast. :D


but I couldn't get it to work for locally declared variables.
Do you mean variables/functions declared in a source file out of any function context? Then it's normal (though I may solve it someday...) Otherwise I'd appreciate a better description so as to be able to fix this...


How do I get the nifty options such as collapse/expand to work?:confused: What do you mean? Don't the little rectangles with plus/minus signs appear in the left panel of the editor? And don't clicking on them do anything?


Edit->find does not workWell, it shows a panel so it's not bad... ;) This is work in progress as well (and in real progress since I'm working on it right now and have already committed some code to the SVN...)


I think QCodeEdit needs more work before it's useful on Windows.It surely does, but not only under Windows. That's why I'm looking for testers (and possibly even coders willing to patch things...) in order to improve it.

magland
1st August 2007, 15:54
Do you mean variables/functions declared in a source file out of any function context? Then it's normal (though I may solve it someday...) Otherwise I'd appreciate a better description so as to be able to fix this...

For example the following do not work within a function:


QString str;
str.
QWidget *widget;
widget->


correction: QWidget works, but not QString



:confused: What do you mean? Don't the little rectangles with plus/minus signs appear in the left panel of the editor? And don't clicking on them do anything?

Nope... no little rectangles. No line numbers either.




It surely does, but not only under Windows. That's why I'm looking for testers (and possibly even coders willing to patch things...) in order to improve it.

Perhaps I'll take a look sometime.

fullmetalcoder
1st August 2007, 16:13
For example the following do not work within a function:


QString str;
str.
QWidget *widget;
widget->
correction: QWidget works, but not QString

The thing is that Qt types are a little problematic... Under Linux/Mac Qt headers are installed through a make install command which copies GOOD OLD HEADERS : *.h contains the actual definitions and those of the form QSomeClass points to qsomeclass.h. However, under Windows, as both source and bins are packed together, the "system" headers point to sources one so all headers in $QDTIR/include are just one-liners... This used to cause complete failure of completion for Qt types but when I spotted it yesterday I implemented a quick hack to try to handle this. I f you can complete QWidget it means that it worked but if QString still fails then there are still cases not properly handled by that hack...



Nope... no little rectangles. No line numbers either.
:eek: That's pretty weird... The panels should be shown... When I tried yesterday under Win XP I didn't have any problem with them...
Could you post a screenshot? Here's how it (the editor widget) should look : http://www.qtcentre.org/forum/attachment.php?attachmentid=1438&d=1185885187



Perhaps I'll take a look sometime.
You'd be welcome. :)

magland
1st August 2007, 18:57
:eek: That's pretty weird... The panels should be shown... When I tried yesterday under Win XP I didn't have any problem with them...
Could you post a screenshot? Here's how it (the editor widget) should look : http://www.qtcentre.org/forum/attachment.php?attachmentid=1438&d=1185885187


Maybe this is the issue:
The edyuk compilation reported no problem. However, when I try to compile 3rdparty/qcodeedit2, I get the following error:



cd lib\ && mingw32-make -f Makefile
mingw32-make[1]: Entering directory `C:/cstuff/edyuk/3rdparty/qcodeedit2/lib'
mingw32-make -f Makefile.Debug
mingw32-make[2]: Entering directory `C:/cstuff/edyuk/3rdparty/qcodeedit2/lib'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQNFA_BUILD -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT
-I"c:\Qt\opensource\4.3.0\include\QtCore" -I"c:\Qt\opensource\4.3.0\include\QtC
ore" -I"c:\Qt\opensource\4.3.0\include\QtGui" -I"c:\Qt\opensource\4.3.0\include\
QtGui" -I"c:\Qt\opensource\4.3.0\include\QtXml" -I"c:\Qt\opensource\4.3.0\includ
e\QtXml" -I"c:\Qt\opensource\4.3.0\include" -I"." -I"document" -I"language" -I"w
idgets" -I"qxs" -I"qnfa" -I"..\..\qpluginsystem" -I"c:\Qt\opensource\4.3.0\inclu
de\ActiveQt" -I".build" -I".build" -I"c:\Qt\opensource\4.3.0\mkspecs\win32-g++"
-o .build\qcodeedit.o qcodeedit.cpp
qcodeedit.cpp:10: error: definition of static data member 'QCodeEdit::m_instance
s' of dllimport'd class.
qcodeedit.cpp: In member function `void QCodeEdit::sendPanelCommand(const QStrin
g&, const char*, const QList<QGenericArgument>&)':
qcodeedit.cpp:57: warning: function 'QList<QPanel*> QCodeEdit::panels() const' i
s defined after prior declaration as dllimport: attribute ignored
mingw32-make[2]: *** [.build\qcodeedit.o] Error 1
mingw32-make[2]: Leaving directory `C:/cstuff/edyuk/3rdparty/qcodeedit2/lib'
mingw32-make[1]: *** [debug] Error 2
mingw32-make[1]: Leaving directory `C:/cstuff/edyuk/3rdparty/qcodeedit2/lib'
mingw32-make: *** [sub-lib-make_default] Error 2

C:\cstuff\edyuk\3rdparty\qcodeedit2>

fullmetalcoder
1st August 2007, 19:12
Maybe this is the issue:
The edyuk compilation reported no problem. However, when I try to compile 3rdparty/qcodeedit2, I get the following error:
I really don't think so... This error means (unless I missed something) that you are still using revision 229. The necessary defines (which prevents this error and thus allow compilation under Windows is present in 3rdparty/qcodeedit2/lib/lib.pri but not in lib.pro and until revision 231 lib.pro did not rely on lib.pri (which was quite stupid BTW...)

Just do a svn update, compile QCodeEdit 2 separately and run the example, e.g. :
$ example/example lib/qeditor.cpp
or
$ example/example qxs/xml.qnfa
or whatever file you fell like viewing...

Then , please send me a screen shot and any other relevant information so that I may be able to solve this weird display bug if it still occurs...

magland
1st August 2007, 19:32
Just do a svn update, compile QCodeEdit 2 separately and run the example, e.g. :
$ example/example lib/qeditor.cpp
or
$ example/example qxs/xml.qnfa
or whatever file you fell like viewing...

Then , please send me a screen shot and any other relevant information so that I may be able to solve this weird display bug if it still occurs...

Okay, qcodeedit2 now compiles and runs... and the panel does appear, with +/- boxes, etc. However, when I paste in a large amount of text, it hangs and then crashes.

Edyuk still does not load with the panel, and I've attached a screenshot.

fullmetalcoder
1st August 2007, 19:39
Okay, qcodeedit2 now compiles and runs... and the panel does appear, with +/- boxes, etc.

Edyuk still does not load with the panel, and I've attached a screenshot.
That sounds quite weird... I guess I'll have to investigate this... even though I don't quite know where to start... :(


However, when I paste in a large amount of text, it hangs and then crashes.
How large? Can you send it to me so that I can try reproducing this behavior? Any backtrace available? BTW as it seems we're talking more about QCodeEdit than Edyuk itself I'd suggest we move the discussion to the appropriate thread...

Pepe
1st August 2007, 23:15
I got the latest SVN and edyuk still crashes for me.

I managed to compile Qt 4.3 and edyuk in debug mode.

This is the backtrace:


C:\Documents and Settings\Pepe\My Documents\edyuk\edyuk\trunk>gdb edyuk_debu
g.exe
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-mingw32"...
(gdb) run
Starting program: C:\Documents and Settings\Pepe\My Documents\edyuk\edyuk\tr
unk/edyuk_debug.exe
---Type <return> to continue, or q <return> to quit---
warning: rebuilding recent files/projects menu...

warning: cleaned previous data...

warning: filled with new data...


Program received signal SIGSEGV, Segmentation fault.
0x065e1e15 in QMap<QString, QString>::detach (this=0xc)
at c:/Qt/4.3.0/include/QtCore/../../src/corelib/tools/qmap.h:146
146 inline void detach() { if (d->ref != 1) detach_helper(); }
Current language: auto; currently c++
(gdb) bt
#0 0x065e1e15 in QMap<QString, QString>::detach (this=0xc)
at c:/Qt/4.3.0/include/QtCore/../../src/corelib/tools/qmap.h:146
#1 0x065e1de5 in QMap<QString, QString>::begin (this=0xc)
at c:/Qt/4.3.0/include/QtCore/../../src/corelib/tools/qmap.h:310
#2 0x064e8aaf in AssistantIndexModel::filter (this=0x0, s=@0x22ce3c,
real=@0x22ce4c) at assistant.cpp:98
#3 0x064ec477 in Assistant::setupIndex (this=0x9ae5228, lv=0x55a81c8)
at assistant.cpp:353
#4 0x064fbbae in CppQtPerspective::setProfile (this=0x55800c0, p=@0x22ceec)
at cppqtperspective.cpp:327
#5 0x064fbae1 in CppQtPerspective::setDefaultProfile (this=0x55800c0)
at cppqtperspective.cpp:315
#6 0x0651e2bf in CppQtPerspective::qt_metacall (this=0x55800c0,
_c=InvokeMetaMethod, _id=2, _a=0x22d434)
at ../tmp-default-4.3.0-win32/moc/moc_cppqtperspective.cpp:80
#7 0x00728e09 in QMetaObject::activate (sender=0xc7f2400,
from_signal_index=4, to_signal_index=4, argv=0x0)
at kernel/qobject.cpp:3066
#8 0x00729195 in QMetaObject::activate (sender=0xc7f2400, m=0x7e431c,
local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3125
#9 0x0072dd39 in QSingleShotTimer::timeout (this=0xc7f2400)
at tmp/moc/debug_shared/qtimer.moc:73
#10 0x0072dc3b in QSingleShotTimer::timerEvent (this=0xc7f2400)
---Type <return> to continue, or q <return> to quit---
at kernel/qtimer.cpp:283
#11 0x00723dbc in QObject::event (this=0xc7f2400, e=0x22da8c)
at kernel/qobject.cpp:1074
#12 0x0140635b in QApplicationPrivate::notify_helper (this=0x3da000,
receiver=0xc7f2400, e=0x22da8c) at kernel/qapplication.cpp:3538
#13 0x014043ae in QApplication::notify (this=0x22fdb0, receiver=0xc7f2400,
e=0x22da8c) at kernel/qapplication.cpp:3097
#14 0x0070fad4 in QCoreApplication::notifyInternal (this=0x22fdb0,
receiver=0xc7f2400, event=0x22da8c) at kernel/qcoreapplication.cpp:509
#15 0x00760cb3 in QCoreApplication::sendEvent (receiver=0xc7f2400,
event=0x22da8c)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:186
#16 0x0073a19c in qt_internal_proc (hwnd=0xc03fa, message=275, wp=98, lp=0)
at kernel/qeventdispatcher_win.cpp:298
#17 0x7e418734 in USER32!GetDC () from C:\WINDOWS\system32\user32.dll
#18 0x000c03fa in ?? ()
#19 0x00000113 in ?? ()
#20 0x00000062 in ?? ()
#21 0x00000000 in ?? () from
#22 0x00739d76 in qt_fast_timer_proc ()
at ../../include/QtCore/../../src/corelib/kernel/qobject.h:408
#23 0x7e418816 in USER32!GetDC () from C:\WINDOWS\system32\user32.dll
#24 0x00739d76 in qt_fast_timer_proc ()
---Type <return> to continue, or q <return> to quit---
at ../../include/QtCore/../../src/corelib/kernel/qobject.h:408
#25 0x7e4189cd in USER32!GetWindowLongW () from C:\WINDOWS\system32\user32.dll
#26 0x00000000 in ?? () from
#27 0x00739d76 in qt_fast_timer_proc ()
at ../../include/QtCore/../../src/corelib/kernel/qobject.h:408
#28 0x7e418a10 in USER32!DispatchMessageW ()
from C:\WINDOWS\system32\user32.dll
#29 0x0022dcd0 in ?? ()
#30 0x00000000 in ?? () from
#31 0x0022fa68 in ?? ()
#32 0x0073b858 in QEventDispatcherWin32::processEvents (this=0x22dcd0,
flags=0x22dcd0) at kernel/qeventdispatcher_win.cpp:517
#33 0x0073b858 in QEventDispatcherWin32::processEvents (this=0x3d9c88,
flags=0x22fa90) at kernel/qeventdispatcher_win.cpp:517
#34 0x01463a36 in QGuiEventDispatcherWin32::processEvents (this=0x3d9c88,
flags=@0x22fad0) at kernel/qapplication_win.cpp:965
#35 0x0070d34c in QEventLoop::processEvents (this=0x22fc30, flags=0x22fb70)
at kernel/qeventloop.cpp:126
#36 0x0070d48a in QEventLoop::exec (this=0x22fc30, flags=0x22fc10)
at kernel/qeventloop.cpp:172
#37 0x0070ffd6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:729
#38 0x014040b4 in QApplication::exec () at kernel/qapplication.cpp:3035
#39 0x100ba574 in EdyukApplication::exec (this=0x22fdb0)
---Type <return> to continue, or q <return> to quit---
at edyukapplication.cpp:420
#40 0x0040159d in qMain (argc=1, argv=0x3d9e30) at main.cpp:80
#41 0x00401c0f in WinMain (instance=0x400000, prevInstance=0x0, cmdShow=10)
at qtmain_win.cpp:105
#42 0x0040179a in main ()
at c:/Qt/4.3.0/include/QtCore/../../src/corelib/arch/qatomic_windows.h:204
(gdb)

fullmetalcoder
2nd August 2007, 10:45
I got the latest SVN and edyuk still crashes for me.

I managed to compile Qt 4.3 and edyuk in debug mode.

This is the backtrace:
Thanks for your help! The bug obviously occurs in the Assistant integration. What I can infer is that you've run assistant already, thus making it fill a content database but you've never switched to the "Index" tab of the dock widget so the index database was not populated. Hopefully the fix is a one-liner and will be committed in the next few minutes, at last... :)

@magland : I've tried copying a very large amount of C++ code into a QCodeEdit widget (about 36k lines by blocks of 2k...) and I got no crash...

elcuco
2nd August 2007, 11:21
I do not undertand how can you call some application 1.0-beta2 when it does not compile for some, and for others it compiles and crashes on statup. People cannot even measure the quality of the application - it does not work at all for them.

Please don't tell me "its only a few people". Version 1.0 means it's ready to mass consumption, and your application is clearly not in that state.

fullmetalcoder
2nd August 2007, 12:08
I do not undertand how can you call some application 1.0-beta2 when it does not compile for some, and for others it compiles and crashes on statup. People cannot even measure the quality of the application - it does not work at all for them.

Please don't tell me "its only a few people". Version 1.0 means it's ready to mass consumption, and your application is clearly not in that state.
Versioning conventions are not "standard" ... Anyway, the beta here should notify everyone that the code still requires a bunch of testing... Also I'd like to point out that Edyuk now compiles on every platform... It just required some testing that I was unable to do alone. And crashes are solved as well. Maybe you can provide me with a proper computer with Windows installed so that such a thing never happen again? :rolleyes:

BTW elcuco, I'd be pleased if you could go rant somewhere else... I welcome bug reports, suggestions, criticism, etc... because they prove useful to improve Edyuk. A comment such as the one above doesn't sound that useful to me...

Pepe
2nd August 2007, 14:09
Thanks for your help! The bug obviously occurs in the Assistant integration. What I can infer is that you've run assistant already, thus making it fill a content database but you've never switched to the "Index" tab of the dock widget so the index database was not populated. Hopefully the fix is a one-liner and will be committed in the next few minutes, at last... :)

I've compiled SVN and yes, now it works, no crashes :)

I've just took a quick look at it but I've got some questions:
When I open a project, the open dialog shows all files, wouldn't it be better to set a filter to "*.pro"?
Why don't you use the windows native open dialog?

When I double click on a function member in the class browser, the file where it is doesn't open. I don't know if it's a bug or if it's the intended behavior.

The code completion seems that doesn't work. For example I type QLabel l. and nothing happens. I'm testing also HiQt and it shows a list of members when I do this.

fullmetalcoder
2nd August 2007, 18:11
I've compiled SVN and yes, now it works, no crashes :)
Good to hear! I've just released a third beta package.


When I open a project, the open dialog shows all files, wouldn't it be better to set a filter to "*.pro"?
It would but the plugin architecture require a little more than just adding a single line of code and unfortunately I won't be able to work on Edyuk in the next two weeks so you'll have to wait a bit ...


Why don't you use the windows native open dialog?
I do use QFileDialog so I'm not responsible for the behavior... the thing is that I wanted to keep track of path used by the user and the static functions (which do call native dialogs) did not allowed that...


When I double click on a function member in the class browser, the file where it is doesn't open. I don't know if it's a bug or if it's the intended behavior.
Previous version of Edyuk had this feature (though not as complete as one would have wished) but the complete rewrite of completion backend wiped it out. It will of course make it into 1.0.0 final release and probably even earlier, in a pre-release. Yet, it is currently not a "bug" but rather a missing feature...


The code completion seems that doesn't work. For example I type QLabel l. and nothing happens. I'm testing also HiQt and it shows a list of members when I do this.
The code completion do work but what you suggest is an invalid construct... You must have a variable declared before accessing it :

QLabel l; l. should work, however I can't be sure that it will since I haven't been able to test the nasty hack requested to complete Qt types under Windows...

elcuco
2nd August 2007, 20:19
I have tested the application, and this is what I found:

it takes a lot of time to compile (7m49.694s), while Qdevelop for example takes 4m33.836s and HiQt-0.1.14 takes 5m45.433s.

The implementation of the class browser is non intuitive. For example, it took me a while to find it. Then, I found that it does not interact with the user, for example clicking a class will not open the implementation (or definition).

The project handling is also badly implemented. I have this sub dir project (which BTW get loaded perfectly) and I select one of the sub projects. Then I choose project options, and I get the configuration dialog for he top level project, not the active one. Right clicking it does work as expected. The command "run" on that sub-project did not work. I get no indication about whats wrong. Just does not work.

The editor has a lot of usability problems as well. For example, I could not set the tab width to 8. I could not change the font size (I want it much smaller). The find widget just does not work (ctrl+f, type something it writes to the editor, ctrl+f again its not closed, esc, not closed). The replace widget does not work at all (the second line edit is disabled).

I am also very confused by your implementation of the prespectives. I don't understand why do I get the prespective of the designer is open when I edit c/c++ code, or why do I see the class list when I am editing GUI.

Lets assume I have this project opened, and I have several files opened. What happens if I am in the designer perspective...? I see no visual indication about the change. Not only the class/file browser is not see (and I cannot see the files of the new project), but the files are still opened, and it feels like I am still working with the old project. That is, until I move to the editor perspective, and see that the files have changed. Now I have to close all the opened files.

....

I will not continue on, even tough I can (adding files to projects is a mess, open/save dialog do not save the path, the help integration is not finished yet, no default shortcuts for most used actions, debug log does not scroll,breakpoitns in code are not working for me, etc). What I am saying is:

The issue is: the application has too much problems and design flaws (which can be easily fixed) to be called version 1.0. It does not feel like a product, it needs much more work. That is, if you do want to follow CodeBlock's path : always on beta, never release (use our latest nightly build!).

If you think I am just trashing you, you are completely wrong. I do know how much you have been working on this application. I do know how hard is to make what you did (specially since part of my code is in that application :p ).

I am just saying: "this is not version 1.0".

fullmetalcoder
2nd August 2007, 21:24
it takes a lot of time to compile (7m49.694s), while Qdevelop for example takes 4m33.836s and HiQt-0.1.14 takes 5m45.433s.
Overhead of plugin-based architecture... It's a bit longer to compile but allow much more flexibility...


The implementation of the class browser is non intuitive. For example, it took me a while to find it. Then, I found that it does not interact with the user, for example clicking a class will not open the implementation (or definition).
That's right, the combobox is probably not the best way separate project management and class browsing and I shall fix that soon (when I'm back from holidays that start tomorrow...) and the code navigation will come at the same time...

[/quote] The project handling is also badly implemented. I have this sub dir project (which BTW get loaded perfectly) and I select one of the sub projects. Then I choose project options, and I get the configuration dialog for he top level project, not the active one.[/quote]
That's a pretty good suggestion. :)


The command "run" on that sub-project did not work. I get no indication about whats wrong. Just does not work.
Can you send me the project used? BTW if it is Edyuk project then it's normal because instance limitation is enabled by default to allow file association...


The editor has a lot of usability problems as well. For example, I could not set the tab width to 8. I could not change the font size (I want it much smaller). The find widget just does not work (ctrl+f, type something it writes to the editor, ctrl+f again its not closed, esc, not closed). The replace widget does not work at all (the second line edit is disabled).
You can easily change the font size using CTRL + wheel, as for the tabs there is no config dialog yet (beta...) but you can always change the hard-coded default (3rdparty/qcodeedit2/document/qdocument.cpp, look for QDocumentPrivate ctor)...


I am also very confused by your implementation of the prespectives. I don't understand why do I get the prespective of the designer is open when I edit c/c++ code, or why do I see the class list when I am editing GUI.

:confused: Do you mean that there is no perspective auto-switch when you edit switch to a C++ file? Well, that's an issue I'm thinking about... As for the class list being visible in Designer perspective YOU asked me to allow the project management dock to be visible in this perspective and the implementation currently doesn't allow separating project management and class browsing... You can always hide that dock using the buttons on the status bar...


Lets assume I have this project opened, and I have several files opened. What happens if I am in the designer perspective...? I see no visual indication about the change. Not only the class/file browser is not see (and I cannot see the files of the new project), but the files are still opened, and it feels like I am still working with the old project. That is, until I move to the editor perspective, and see that the files have changed. Now I have to close all the opened files.
May you make yourself a little clearer?


adding files to projects is a mess
Any suggestion on how to improve this?


the help integration is not finished yet
Talking about the Assistant? What else do you want?


no default shortcuts for most used actions
Which actions do lack shortcuts in your opinion?


breakpoitns in code are not working for me
i.e. ? you can't set breakpoints or debugging does not take them into account?


The issue is: the application has too much problems and design flaws (which can be easily fixed) to be called version 1.0.
If there are other flaws you spotted and did not mention please do. And if you consider them as easy to fix please share your ideas.


I do know how much you have been working on this application. I do know how hard is to make what you did (specially since part of my code is in that application :p ).
I'm not sure you do... Probably more than many people here but still... I'm still a student with little room for programming, stuck on a very old computer with only one system to lead tests... You can't even imagine how depressing it is to get miscompilation/crash reports every time you release a new version that ran flawlessly on your computer... I've spent hours doing little bug fixes and it's not enough to make Edyuk look "polished" yet...:crying:


I am just saying: "this is not version 1.0".
It's surely not 1.0 yet! It's 1.0 beta... It'll take at least a couple weeks (not including holidays and such) before I come to a pre-release and a couple more before it becomes a final version. The bad thing is that this couple week will very probably span over monthes because school will start way too soon and that year is gonna be AWFULLY busy...

elcuco
2nd August 2007, 22:13
Sit down and code a small application. A pure Qt one, without the fancy-shmancy stuff we always see. Use your IDE as a test, and think - how can I make it better. Don't think as the application developer - think as a user. Don't look at the code. Write down problems on a paper and then deal with them.

You will see that there are 10 times more problems then I described.

Pepe
3rd August 2007, 00:13
The code completion do work but what you suggest is an invalid construct... You must have a variable declared before accessing it :

QLabel l; l. should work, however I can't be sure that it will since I haven't been able to test the nasty hack requested to complete Qt types under Windows...

My mistake, but I also tried valid constructs, like


QLabel *l = new QLabel("Text");
l->


It doesn't work either.

BTW, I managed to compile the beta-3 in linux, using Qt 4.2.3. The problem with the ui files has been fixed by opening them in designer and save them again. There was another problem, the compiler complained about NodeType to be defined twice in 3rdparty/qcodemodel2/qcodenode.h, one as enum and another as non enum. I fixed by renaming one of them.

But after compilation the program crashes on startup:



GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...Using host libthread_db library "
/lib/tls/libthread_db.so.1".

(gdb) run
Starting program: /tmp/temp/edyuk-1.0.0-beta3/edyuk_debug.bin
[Thread debugging using libthread_db enabled]
[New Thread 1091492544 (LWP 14011)]
[New Thread 1093835696 (LWP 14014)]
[Thread 1093835696 (LWP 14014) exited]
rebuilding recent files/projects menu...
cleaned previous data...
filled with new data...
Initializing editing framework...
Initializing shortcuts...
Initializing plugins...
system plugins path : /tmp/temp/edyuk-1.0.0-beta3/plugins/

file : /tmp/temp/edyuk-1.0.0-beta3/plugins/libdefault_debug.so
Plugin root created
PluginInterface created : 135479112
CorePlugin created
[New Thread 1093835696 (LWP 14015)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1091492544 (LWP 14011)]
0x40ed7b68 in vtable for __cxxabiv1::__si_class_type_info ()
from /usr/lib/libstdc++.so.5
(gdb) bt
#0 0x40ed7b68 in vtable for __cxxabiv1::__si_class_type_info ()
from /usr/lib/libstdc++.so.5
#1 0x408374c4 in QCompleter::setModel (this=0x83456b8, model=0x0)
at qcompleter.cpp:884
#2 0x40837b11 in QCompleterPrivate::init (this=0x833aeb0, m=0x0)
at qcompleter.cpp:693
#3 0x40837f10 in QCompleter (this=0x83456b8, parent=0x833fff0)
at qcompleter.cpp:806
#4 0x40671124 in QComboBox::setAutoCompletion (this=0x833e240, enable=true)
at qpointer.h:48
#5 0x40671a85 in QComboBox::setLineEdit (this=0x833e240, edit=0x833fff0)
at qcombobox.cpp:1437
#6 0x40675d4c in QComboBox::setEditable (this=0x833e240, editable=true)
at qcombobox.cpp:1394
#7 0x4069a2bc in QFontComboBox (this=0x833e240, parent=0x0)
at qfontcombobox.cpp:288
#8 0x41a76b0a in qdesigner_internal::WidgetFactory::createWidget (
this=0xbfffe810, widgetName=@0xbfffe870, parentWidget=0x0)
at widgets.table:48
#9 0x41a779fd in qdesigner_internal::WidgetDataBase::defaultPropert yValues (
this=0x817ff40, name=@0xbfffe870) at widgetdatabase.cpp:322
#10 0x41a77bf9 in qdesigner_internal::WidgetDataBase::grabDefaultPro pertyValues
(this=0x817ff40) at widgetdatabase.cpp:346
---Type <return> to continue, or q <return> to quit---
#11 0x41823991 in QDesignerComponents::initializePlugins (core=0x82ae000)
at qdesigner_components.cpp:97
#12 0x4153a6a0 in QDesignerPerspective (this=0x81714f8, m=0x8133910,
c=0x80d8e60) at qdesignerperspective.cpp:101
#13 0x41586545 in DefaultCore (this=0x8133f48, p=0x8133a30) at core.cpp:243
#14 0x41585583 in DefaultRoot (this=0x8133a30, p=0x81334c8) at root.cpp:34
#15 0x41585927 in edyuk_plugin_instance (o=0x81334c8) at root.cpp:65
#16 0x4018d580 in EdyukPluginManager::scanPlugins (this=0x81334c8)
at edyukpluginmanager.cpp:199
#17 0x4018bebc in EdyukPluginManager (this=0x81334c8, s=0x80aa970)
at edyukpluginmanager.cpp:71
#18 0x4015f766 in EdyukApplication (this=0xbfffeee0, argc=@0xbfffef40,
argv=0xbfffefc4) at edyukapplication.cpp:175
#19 0x08048c51 in main (argc=1, argv=0xbfffefc4) at main.cpp:75
(gdb)

Methedrine
3rd August 2007, 20:44
Just a little heads-up to fullmetalcoder: I appreciate the afford he is putting into Edyuk. QCodeEdit is certainly a cool control, and the IDE ain't bad either (even though, admittedly, I prefer working with eclipse, codeblocks and visual studio).

fullmetalcoder
27th August 2007, 16:19
Hi all,

After a long week of work, the Edyuk team (i.e. caduel and I), are proud to announce that we've made significant progress towards a stable release :) :

Most issues reported here have been dealt with
Dozens of bugs have been fixed
There's been significant performance enhancement in display update of large files (more than 1Mb...)
Usability has been improved a great deal
Error reporting has been improved as well : you'll no longer be puzzled if compilation fails because you distro uses "qmake4" instead of "qmake" because it'll tell you to update your configuration
A proper (though minimalistic) configuration widget has been added to fine tune the look of the editing widget (font family, font size, tab width, display of whitespaces, ...)Yet, Edyuk still needs a bunch of testing and thus, some volunteers, willing to spend some time using an unstable soft and feeding back the dev team. If you are interested, just do a SVN checkout and send your feedback, either here, directly to me by e-mail or to the edyuk-devel mailing list (edyuk-devel@lists.sf.net).

Note : Edyuk has syndicated to CIA.vc, you can be informed of SVN commits (http://cia.vc/stats/project/edyuk/.rss) through your favorite aggregator. :)

fullmetalcoder
8th September 2007, 15:44
A lot more work done including huge usability improvements. Both coders feeling like browsing the source and users expecting a neat interface should like this version more than the older ones. However, some breaking changes were needed and Edyuk is currently in a beta test phase (i.e. no package will be released... only SVN can give you an idea of what's going on) and several functionalities have been turned off (project modification (e.g adding files), completion, debugging, assistant and designer integration).

Here comes some screenshots for those who won't checkout the SVN repository... ;)

fullmetalcoder
11th November 2007, 14:22
I'm pleased to announce the immediate availability of Edyuk 1.0.0-pre1.

This release is NOT intended as a fully stable one but rather as one of the very last steps towards final 1.0.0 version. Lots of changes have been made which address the vast majority of reported issues but Edyuk still needs some polishing and I'd like to ensure that it builds and run on all platforms.

Before I get complaints I'd like to point out that two important features have been disabled in this release :

Graphical debugging (a better gdb driver is being worked on)
Modifications of the project settings through the dialog of the same nameDon't worry, they'll be back soon. The thing is I'd like to make sure all backends are working fine before starting the big work on frontends...

You can get the packages from the downloads page (https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=196690&release_id=553358). :)

I'm looking forward to hearing your (hopefully constructive ;)) feedback.

magland
12th November 2007, 21:04
I get the following error in windows upon compilatoin. Seems like there would be an easy fix. Is there?

On qmake:


Project LOAD(): Feature ..\..\..\installs\features\qplugin_from_scheme.prf cannot be found.

fullmetalcoder
13th November 2007, 20:33
I get the following error in windows upon compilatoin. Seems like there would be an easy fix. Is there?

On qmake:


Project LOAD(): Feature ..\..\..\installs\features\qplugin_from_scheme.prf cannot be found.

I'm pretty sure the .prf file is present in the correct location and referenced correctly from the projects so I don't quite see what could be wrong... Anyway it shouldn't cause much harm for this prf file is responsible for generating plugin.h and plugin.cpp for each plugins, from a xml file. Hopefully these autogenerated files have been kept in the packages so it should build even if qmake somehow fails to locate the .prf file. :)

magland
13th November 2007, 20:51
I'm pretty sure the .prf file is present in the correct location and referenced correctly from the projects so I don't quite see what could be wrong... Anyway it shouldn't cause much harm for this prf file is responsible for generating plugin.h and plugin.cpp for each plugins, from a xml file. Hopefully these autogenerated files have been kept in the packages so it should build even if qmake somehow fails to locate the .prf file. :)

I commented out that line in the default.pro file and now I get the following error:



C:\jer\edyuk-1.0.0-pre1\src\plugins\default>qmake

C:\jer\edyuk-1.0.0-pre1\src\plugins\default>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/jer/edyuk-1.0.0-pre1/src/plugins/default
'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,../../../plugins/libdefault.a -
o "../../../plugins/default.dll" object_script.default.Release -L'c:/Qt/4.3.2/l
ib' -L../../.. -ledyuk -lQtGui4 -lQtCore4
Creating library file: ../../../plugins/libdefault.a
./.build/4.3.2-win32/obj/release/qmakebuilder.o(.text$_ZNK12QMakeCommand7command
ERK7QStringS2_S2_[QMakeCommand::command(QString const&, QString const&, QString
const&) const]+0x87):qmakebuilder.cpp: undefined reference to `DefaultPlugin::m_
keys'
./.build/4.3.2-win32/obj/release/qmakebuilder.o(.text$_ZNK12QMakeCommand7command
ERK7QStringS2_S2_[QMakeCommand::command(QString const&, QString const&, QString
const&) const]+0x99):qmakebuilder.cpp: undefined reference to `DefaultPlugin::m_
keys'
./.build/4.3.2-win32/obj/release/qmakebuilder.o(.text$_ZNK12QMakeCommand7command
ERK7QStringS2_S2_[QMakeCommand::command(QString const&, QString const&, QString
const&) const]+0xb1):qmakebuilder.cpp: undefined reference to `DefaultPlugin::m_
keys'
./.build/4.3.2-win32/obj/release/qmakebuilder.o(.text$_ZNK12QMakeCommand7command
ERK7QStringS2_S2_[QMakeCommand::command(QString const&, QString const&, QString
const&) const]+0xda):qmakebuilder.cpp: undefined reference to `DefaultPlugin::m_
keys'
./.build/4.3.2-win32/obj/release/qmakebuilder.o(.text$_ZNK12QMakeCommand7command
ERK7QStringS2_S2_[QMakeCommand::command(QString const&, QString const&, QString
const&) const]+0xfe):qmakebuilder.cpp: undefined reference to `DefaultPlugin::m_
keys'
./.build/4.3.2-win32/obj/release/qmakebuilder.o(.text$_ZNK12QMakeCommand7command
ERK7QStringS2_S2_[QMakeCommand::command(QString const&, QString const&, QString
const&) const]+0x291):qmakebuilder.cpp: more undefined references to `DefaultPlu
gin::m_keys' follow
collect2: ld returned 1 exit status
mingw32-make[1]: *** [../../../plugins/default.dll] Error 1
mingw32-make[1]: Leaving directory `C:/jer/edyuk-1.0.0-pre1/src/plugins/default'

mingw32-make: *** [release] Error 2

C:\jer\edyuk-1.0.0-pre1\src\plugins\default>

fullmetalcoder
14th November 2007, 20:25
I commented out that line in the default.pro file and now I get the following error:
The best option would definitely be to fix the path issue if you can (I'm afraid I can't test Edyuk under win so I can't be of much help with this...). If you fail or don't feel like trying you only need to :

comment out the load() functions, as you already did
add "SOURCES += plugin.cpp"This should allow you to build Edyuk smoothly:).

P.S : I'd be extremely grateful if you could try to fix that path issue and tell me what's needed to deal with it...

magland
15th November 2007, 11:23
P.S : I'd be extremely grateful if you could try to fix that path issue and tell me what's needed to deal with it...

I replaced the relative path with absolute path:



....
#QMAKE_QPLUGIN_GENERATOR = ../../../qplugin_generator
QMAKE_QPLUGIN_GENERATOR = c:\jer\edyuk-1.0.0-pre1\qplugin_generator

load(../../../installs/features/qplugin_from_scheme.prf)


and now it compiles. I think windows doesn't like the initial ".." in the program name :(. Not sure what is the best way to make this system-independent.

fullmetalcoder
17th November 2007, 18:18
Would this work by any chance?


....
#QMAKE_QPLUGIN_GENERATOR = ../../../qplugin_generator
QMAKE_QPLUGIN_GENERATOR = ..\..\..\qplugin_generator

load(../../../installs/features/qplugin_from_scheme.prf)


Note : you'll probably need to perform a "make distclean" to ensure the validity of the fix...

Methedrine
9th December 2007, 20:26
I have just grabbed the latest svn source for edyuk and tried building it on Windows. During the process I fixed the supplied build.bat which still tried to build a "default" folder that does no longer exist, created a vcproj.bat and a vcbuild.bat as little helpers to create visual studio projects for edyuk, and to build edyuk with msvc from command-line. My custom batch files are attached.

While trying to compile edyuk with Visual Studio 2005 I discovered that there are a few warnings, some lead to Visual Studio's linker being unable to link edyuk, as such I fixed those which broke the linker and some more, see the attached .diff file.

fullmetalcoder
11th December 2007, 18:07
I have just grabbed the latest svn source for edyuk and tried building it on Windows. During the process I fixed the supplied build.bat which still tried to build a "default" folder that does no longer exist, created a vcproj.bat and a vcbuild.bat as little helpers to create visual studio projects for edyuk, and to build edyuk with msvc from command-line. My custom batch files are attached.

While trying to compile edyuk with Visual Studio 2005 I discovered that there are a few warnings, some lead to Visual Studio's linker being unable to link edyuk, as such I fixed those which broke the linker and some more, see the attached .diff file.
Thanks a lot. I'll apply the patch as soon as possible (by next week end... or before if some generous donator sends me a laptop... ;)) and add your batch files at the same time.

fullmetalcoder
3rd January 2008, 19:03
In case some people are still interested Edyuk 1.0.0-pre2 (https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=196690&release_id=565667) is available.

It features many many bugfixes but also :
a couple of handy features in QCodeEdit (see the dedicated thread for more info) : column selection, cursor mirrors, line change panel and more...
the possibility to switch between two qmake parser subset : one that preserves the structutre and allows on the fly graphical modification and another that uses qmake sources to produce HaiQ like project treees
An improved build engine which allows easy build target switching@Methedrine : I've added your batch files and applied the patches you suggested. Please let me know if there are still win-specific issues.

Darhuuk
9th January 2008, 01:00
Hm, I can't compile it on Windows XP SP 2. When I start the batch.bat file I get the following error:


*** No rule to make target '.build\4.3.3-win32\ui\ui_shortcutdialog.h', needed by '..\..\edyuk_debug.dll'. Stop

And then about 15 more errors, but I'm guessing it's due to this one. Any idea what might be causing this?

fullmetalcoder
9th January 2008, 11:41
Hm, I can't compile it on Windows XP SP 2. When I start the batch.bat file I get the following error:


*** No rule to make target '.build\4.3.3-win32\ui\ui_shortcutdialog.h', needed by '..\..\edyuk_debug.dll'. Stop

And then about 15 more errors, but I'm guessing it's due to this one. Any idea what might be causing this?
Tried with Qt 4.3.3 on XP and got the same error : looks like qmake produces buggy makefiles where ui files rules use Unix-like path and are called through Win-like ones which confuses make (for it only does a simple string comparison obviously...). I got rid of this fixing the pathes by hand in the makefile but I guess using Win pathes inside the project file would do as well. BTW this bug is new AFAIK for previous versions of Qt did not produce such makefile and I hope future ones won't... anyone tried with 4.4.0-tp1 ??? or earlier 4.3 ? Before I submit a bug report to the tracker I'd like to know which versions are concerned...

cheers

edit : as I went further in the compilation I noticed another win-specific trouble
in each plugin project file replace :


QMAKE_QPLUGIN_GENERATOR = ../../../qplugin_generator

with :


win32:QMAKE_QPLUGIN_GENERATOR = ..\..\..\qplugin_generator.exe
else:QMAKE_QPLUGIN_GENERATOR = ../../../qplugin_generator


edit 2 : I thought these lines, added at the bottom of config.pri would do... Bad luck, the bug lies deep inside qmake...


win32 {
TMPDIR = $$replace(TMPDIR,"/", "\\")
UI_DIR = $$replace(UI_DIR,"/", "\\")
MOC_DIR = $$replace(MOC_DIR,"/", "\\")
RCC_DIR = $$replace(RCC_DIR,"/", "\\")
OBJECTS_DIR = $$replace(OBJECTS_DIR,"/", "\\")
}

Thus, the simple solution is to put all the intermediate build files among sources so that no slash confuses make : add "UI_DIR = " at the bottom of config.pri to clear the content of this variable and get a proper makefile...

edit 3 : last, the compiler will complain about an undefined reference to project_builtin_regx()... Just comment out the content of the usage() function in src/plugins/default/qmake/option.cpp and everything will compile fine :)

note : looks like Qt classes are not loaded properly... I'll have to investigate this later on... :( Why is m$-win so troublesome...

Darhuuk
9th January 2008, 12:26
I tried editing all the .pro files, but that didn't seem to work. Now I'm getting this error:


D:\<path stuff>\mingw32\bin\ld.exe: cannot find -ledyuk_debug

This right after the mingw32-make for edyuk_debug.exe, which doesn't give any errors, however, it also seems like it doesn't make any executable.

* Edit: Argh, just tried it again and now I'm getting the first error again. Would you mind sending me your .pro (or Make) files?

* Edit 2: Edited the .pri files as well, still the first error.

* Edit 3: Just read your edits, I'll try late to see if I can get it to work. Time to eat now :). Thanks for trying to help me out!

* Edit 4: It started compiling & everthing looked ok, but now I'm getting a "Generating code from scheme <...>.xml ... is not recognized as an internal or external task, program or batch file" (or something like that, I had to translate it from Dutch, not sure how the error message would exactly be in English). This seems to be some kind of PATH error, but both Mingw & Qt are in my PATH, so that can't be it. Any ideas?

Darhuuk
10th January 2008, 16:40
I found a lame solution to the problem (which is that uic isn't compiling any of the .ui files). Just run this php file (don't forget to edit the path on line 44).


<?php

// Sample function to recursively return all files within a directory.
// http://www.pgregg.com/projects/php/code/recursive_readdir.phps

$n = 0;

function listdir($start_dir='.') {
global $n;

$files = array();
if (is_dir($start_dir)) {
$fh = opendir($start_dir);
while (($file = readdir($fh)) !== false) {
# loop through the files, skipping . and .., and recursing if necessary
if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
$filepath = $start_dir . '/' . $file;
if ( is_dir($filepath) )
{
$files = array_merge($files, listdir($filepath));
} else {
// Check if file is .ui file & if so, execute uic
$extOffsetPos = strlen($file) - 4;
if (strpos($file, '.ui', $extOffsetPos))
{
// Execute uic
$uiFile = realpath($filepath);
echo "Compiled - $uiFile\n";
$outputFile = str_replace($file, "ui_" . basename($file, ".ui") . ".h", $uiFile);
system("uic -o $outputFile $uiFile", $crap);
$n++;
}
}
}
closedir($fh);
} else {
# false if the function was called with an invalid non-directory argument
$files = false;
}

return $files;
}

$files = listdir('C:\Progs\Edyuk');
echo "Done - Compiled $n files\n";
?>

If you run qmake & mingw32-make now, you'll get the same error as before. However, this is because the generated ui_....h files are in the wrong directory. The php file gives you a list of created .h files, copy them to "<Edyuk path>\src\lib\.build\4.3.3-win32\ui" (except for ui_shortcutdialog.h from the qcumber directory, there seem to be 2 shortcutdialog.ui files, copy the one from "<Edyuk path>\src\lib\ui" instead. There's a ui_....h file in plugins\default that needs to be copied to plugins\default\.built\4.3.3-win32\ui as well.

I'm still compiling, so I can't be sure it's working, but so far so good (been compiling for 15-20 min now). I'll update this post in case I encounter any more errors.

* Edit: Argh, 2 minutes later and it fails: "Generating code from <xml file here> ... not recognized as intern or extern function, program or batch file". Time for more detective work.

Aha, stubbornness prevails! fullmetalcoder actually already pointed this out. The hard way:

In every .pro file, change the QMAKE_QPLUGIN_GENERATOR line to:

win32:QMAKE_QPLUGIN_GENERATOR = ..\..\..\qplugin_generator.exe
else:QMAKE_QPLUGIN_GENERATOR = ../../../qplugin_generator

Easy way: Do the same, but in qplugin_from_scheme.prf, which is found in "installs\features" (remove the isEmpty clause).

Now, go into: "<Edyuk path>\src\qplugin_generator" and run qmake & mingw32-make from there. Otherwise for reason, qmake_generator.exe won't be build yet and the compilation will fail again.

Also, as fullmetalcoder said:

last, the compiler will complain about an undefined reference to project_builtin_regx()... Just comment out the content of the usage() function in src/plugins/default/qmake/option.cpp and everything will compile fine

Now run build in the Edyuk main dir again.

** Edit 2: Hm, not sure if this is my doing or a small bug in the build.bat file, but mine (that I've been messing with for a while now) had some errors with regards to relative paths (eg. "cd ..\plugins\assistant" which should have been "cd ..\assistant").

Ok, no more errors. Although also no .exe, I guess I'll have to do a make clean first. Ugh...

Ah, also, in the build.bat file, I put -recursive after every qmake, not sure if it matters, but I' m not about to test now that everything is almost working :).

Aaargh, no, damn you, stupid windows bugs. No exe :(. Don't know what's wrong, my command line buffer wasn't long enough, didn't see any errors.

fullmetalcoder
11th January 2008, 20:14
Ok, no more errors. Although also no .exe, I guess I'll have to do a make clean first. Ugh...

Ah, also, in the build.bat file, I put -recursive after every qmake, not sure if it matters, but I' m not about to test now that everything is almost working :).
Important note : the build.bat is provided for platforms where a syntax like "qmake && make" is not supported (e.g. Win 9x/ME). Those running XP/Vista should not need to use them. A "make distclean" is generally recommended instead of a "make clean" as it forces a regeneration of makefiles (but maybe this Makefile target is not available under win...)


Aaargh, no, damn you, stupid windows bugs. No exe :(. Don't know what's wrong, my command line buffer wasn't long enough, didn't see any errors.
Consider using the redir tool from MinGW utils (http://www.mingw.org/MinGWiki/index.php/mingw-utils)to redirect the build log to a file and post it here. Also if your linker complains about missing debug libs use "make release" instead of just make which sometimes appear to default to "make debug"...

cheers

fullmetalcoder
27th January 2008, 17:30
I'm pleased to announce the immeadiate availability of Edyuk 1.0.0-rc1 (https://sourceforge.net/project/showfiles.php?group_id=168260&package_id=191461&release_id=571747)

It is pretty stable and usable as far as I've tried, even though debugging has not been brought back yet.

This release won't be announced everywhere right now(e.g. neither on Qt/KDE apps.org, nor on freshmeat, ...) for I didn't have the opportunity to test the latest code under Windows and Mac even though it is expected to work on both...

I'm thus impatiently waiting for your feedback.

cheers

fullmetalcoder
22nd April 2008, 22:37
I've been working hard on Edyuk lately. It is now a lot more stable and polished than it used to be. I am about to release new packages but I'd appreciate some feedback about how well (or bad) the trunk behaves on various systems (I can only test Edyuk under Linux and Vista ATM...).

1.0.0-rc2 release (to be) highlights :

debugging is back. It still lack some features, such as backtrace display, variables watches, ... but the basics are there and the rest should come soon
improved project management. The user may choose between two parsers (in Tools|Configure Edyuk|Plugins|QMake project parser) : "default" which keeps the structure intact and allows modifications to be done simply (drag and drop and in-model editing) or "interpreter" which uses qmake code to compute a list of files. Both modes allow the project file to be edited manually. In this case, the project will be reloaded upon saving. A "detailed" mode has also been added so that all variables/comments/functions/... are visible to the user. It can be toggled on/off in the project menu
much improved code browsing. when a method is activate in the code browser the corresponding file is opened and the cursor is placed at the start of the method. This is not perfect yet and if your method signature span over several lines it is likely to fail and leave the cursor at the beginning but in most cases it should do...
much improved completion (yes, it was possible). Just try it out and if you manage to find some "chains" it cannot complete properly please notify me ;) (abuse of macros and use of "using" are the only limitations I've found so far)
added a way to manage the external completion databases (default one being Qt headers) through Tools|Configure Edyuk|Plugins|C++ completion. Note that you can also fine tune the scope of the completion to increase speed.
improved C++ parser in many ways. Most noticeably added a way for the user to define a list of macros to ignore/expand (single words) in the plugin options. A default list of macros is provided to ease the parsing of Qt headers, std headers and wxWidget headers (collaboration with the author of CodeLite as been extremely interesting and led to neat achievements :))
improved Assistant integration. It loads databases only when required and tell the user when these are not found, suggesting to run Qt Assistant so as to generate them.
many many bug fixes and a couple of speed improvementsTo lazy windows users :rolleyes: : once the testing phase is over there shall be binaries again for I am now able to build some on my shiny new laptop. :)

fullmetalcoder
2nd May 2008, 13:49
As I promised, the second release candidate is out (http://sourceforge.net/project/platformdownload.php?group_id=168260).

I'm looking forward to getting some feedback from you.

fullmetalcoder
27th June 2008, 14:32
Edyuk 1.0.0 is coming soon. There's only some polishing left to do, and of course I got to wait for Sourceforge.net upload server to be back...

I the meantime I'd appreciate feedback on the new graphical debugging which has been vastly improved lately. Here is a quick list of supported things :


breakpoints
variable watches (with optional auto-refresh)
register view (with optional auto-refresh)
backtrace
watchpoints
memory view
expression evaluator (equivalent to gdb print)
disassembly

What's left to do for the debugger :


threads management
pretty printing of complex variables (e.g QString) (work in progress)

Also, to ensure the best possible user experience it would be good to have some translations bundled in 1.0.0 packages. If you wish to help for this please contact me.

fullmetalcoder
20th July 2008, 23:31
The long awaited 1.0.0 release (http://edyuk.org/index.php) finally made it to the download repository (http://downloads.tuxfamily.org/edyuk/).

I spent quite a while polishing it and I am quite satisfied with the result but I am probably not the best judge so your comments are welcome.

fullmetalcoder
24th July 2008, 12:09
I've just discovered that some distros already have packages for Edyuk 1.0.0
Neat! :)

Gentoo ebuild : dev-util/edyuk (http://bugs.gentoo.org/show_bug.cgi?id=212545)
Slackware 12.1 : http://repository.slacky.eu/slackware-12.1/development/edyuk/1.0.0

Arch Linux also have a package in its repo (AUR) but it is a bit outdated (looks like updating the version number from 1.0.0-beta3 to 1.0.0 and changing the download link would do though).

magland
24th July 2008, 12:43
Hi fmc,
Thanks for creating a windows installer (.exe file), it make it easier to quickly check on what is the status.

I ran the program, and found already 4 serious problems in less than one minute, which means I estimate that the program has at least 150 serious problems altogether :p.

1. When I loaded a simple project it gave me way too many folders called "SOURCES" and "HEADERS"... it was like I had to guess what was behind each mystery door.
2. Although I specified one location for my Qt installation during installation, it disregarded, and used a different location.
3. I went into the source to test completion, I typed "this->", which brought up a nice list of functions, so I chose one, then it added that function with an open close parenthesis, then I had to press the left arrow to fill in the arguments... non-intuitive.
4. When I typed "(" after a funciton, it brought up the function hint window, but there were some wierd symbols in the function hint.

So almost everything I tried gave me problems.

fullmetalcoder
24th July 2008, 13:17
Edyuk's default parser shows you the exact structure of your pro file, if you want something more readable (at the expanse of being read only) you can change the project parser settings to use qmake code (just like Haiq) : open the configuration dialog, go to the plugin tab and edit the settings of the QMake project parser (change parser subset from "default" to "interpreter")
The directory supplied during installation is used only in case you choose to install Edyuk plugin SDK (a couple of .prf files, headers, ...). Edyuk relies on QLibraryInfo for almost every Qt-related envirnment variable. However you can force it to use a psecific version of qmake and to build completion db for specific headers (all in plugin config)
Easy to fix. Thanks for reporting it
Could you be more precise? The calltip support is a Work In Progress and requires more testing. The only "weird symbols" that could appear next to the call tips would be arrows to indicate that there are other entries available (use up and down arrow keys to navigate)

Please do report the 146 other problems as soon as you find them.

magland
24th July 2008, 13:25
Okay, thanks for your satisfactory answers. I tried the read-only project-parser and it seemed to work. I'll take a more serious look when I have a chance.
Looking much better than in the past!
Cheers.



Edyuk's default parser shows you the exact structure of your pro file, if you want something more readable (at the expanse of being read only) you can change the project parser settings to use qmake code (just like Haiq) : open the configuration dialog, go to the plugin tab and edit the settings of the QMake project parser (change parser subset from "default" to "interpreter")
The directory supplied during installation is used only in case you choose to install Edyuk plugin SDK (a couple of .prf files, headers, ...). Edyuk relies on QLibraryInfo for almost every Qt-related envirnment variable. However you can force it to use a psecific version of qmake and to build completion db for specific headers (all in plugin config)
Easy to fix. Thanks for reporting it
Could you be more precise? The calltip support is a Work In Progress and requires more testing. The only "weird symbols" that could appear next to the call tips would be arrows to indicate that there are other entries available (use up and down arrow keys to navigate)

Please do report the 146 other problems as soon as you find them.

sadjoker
2nd August 2008, 17:13
c:\qt\edyuk-1.0.0\src\lib\qdebuggingengine.h(34) : warning C4099: 'QLineMark' : type name first seen using 'struct' now seen using 'class'
..\..\3rdparty\qcodeedit2\lib\qlinemarksinfocenter .h(43) : see declaration of 'QLineMark'
edyukcreatedialog.cpp
edyukconfigdialog.cpp
edyukapplication.cpp
..\..\3rdparty\qcodeedit2\lib\qlinemarksinfocenter .h(43) : warning C4099: 'QLineMark' : type name first seen using 'class' now seen using 'struct'
c:\qt\edyuk-1.0.0\src\lib\qdebuggingengine.h(34) : see declaration of 'QLineMark'
edyukaboutdialog.cpp
actiongrouplist.cpp
actiongroup.cpp
Generating Code...
Linking...
Creating library ..\..\edyuk.lib and object ..\..\edyuk.exp
moc_qdebuggingengine.obj : error LNK2019: unresolved external symbol "private: void __thiscall QDebuggingEngine::lineMarkRemoved(class QLineMark const &)"
(?lineMarkRemoved@QDebuggingEngine@@AAEXABVQLineMa rk@@@Z) referenced in function "public: virtual int __thiscall QDebuggingEngine::qt_metacall(enum
QMetaObject::Call,int,void * *)"
(?qt_metacall@QDebuggingEngine@@UAEHW4Call@QMetaOb ject@@HPAPAX@Z)
moc_qdebuggingengine.obj : error LNK2019: unresolved external symbol "private: void
__thiscall QDebuggingEngine::lineMarkAdded(class QLineMark const &)"
(?lineMarkAdded@QDebuggingEngine@@AAEXABVQLineMark @@@Z) referenced in function "public: virtual int __thiscall QDebuggingEngine::qt_metacall(enum
QMetaObject::Call,int,void * *)" (?qt_metacall@QDebuggingEngine@@UAEHW4Call@QMetaOb ject@@HPAPAX@Z)
..\..\edyuk.dll : fatal error LNK1120: 2 unresolved externals

Any idea what causes it? Trying to compile src/lib first on WinXP, QT4.4.0, VC++ 9.0 Express

fullmetalcoder
3rd August 2008, 14:51
Open src/lib/qdebuggingengine.h and replace

class QLineMark;
with :

struct QLineMark;
It will get rid of the warnings and *should* get rid of the linking errors as well (please tell me if it does not).

thanks for reporting this.

sadjoker
4th August 2008, 19:07
Yeh, that fixed it. But another one popped in and linkage errors after it:


c:\qt\edyuk-1.0.0\src\plugins\default\qmakebackend.h(119) : warning C4099: 'QMak
eModel::INode' : type name first seen using 'class' now seen using 'struct'
c:\qt\edyuk-1.0.0\src\plugins\default\qmakeparser.h(31) : see declaratio
n of 'QMakeModel::INode'
c:\qt\edyuk-1.0.0\src\plugins\default\qmakebackend.h(294) : warning C4099: 'QMak
eModel::INode' : type name first seen using 'struct' now seen using 'class'
c:\qt\edyuk-1.0.0\src\plugins\default\qmakebackend.h(119) : see declarat
ion of 'QMakeModel::INode'
c:\qt\edyuk-1.0.0\src\plugins\default\qmakebackend.h(328) : warning C4099: 'QMak
eModel::INode' : type name first seen using 'struct' now seen using 'class'
c:\qt\edyuk-1.0.0\src\plugins\default\qmakebackend.h(119) : see declarat
ion of 'QMakeModel::INode'

Changed line 294 & 328 in qmakebackend.h to struct and line 31 of qmakeparser.h to struct but still linking errors.
Then changed line 25 of cppcompletion.h to struct QCodeNode;
Compiled OK.

sadjoker
4th August 2008, 19:32
After that compiling Designer plugin:


.\qdesignerclient.cpp(53) : warning C4100: 'object' : unreferenced formal parame
ter
qdesignerperspective.cpp
.\qdesignerperspective.cpp(268) : error C2039: 'windowList' : is not a member of
'QWidget'
c:\qt\4.4.0\include\qtgui\../../src/gui/kernel/qwidget.h(120) : see decl
aration of 'QWidget'
.\qdesignerperspective.cpp(268) : error C2227: left of '->i' must point to class
/struct/union/generic type
.\qdesignerperspective.cpp(268) : error C2039: 'windowList' : is not a member of
'QWidget'
c:\qt\4.4.0\include\qtgui\../../src/gui/kernel/qwidget.h(120) : see decl
aration of 'QWidget'
.\qdesignerperspective.cpp(268) : error C2227: left of '->brk' must point to cla
ss/struct/union/generic type
.\qdesignerperspective.cpp(268) : error C2039: 'windowList' : is not a member of
'QWidget'
c:\qt\4.4.0\include\qtgui\../../src/gui/kernel/qwidget.h(120) : see decl
aration of 'QWidget'
.\qdesignerperspective.cpp(268) : error C2227: left of '->brk' must point to cla
ss/struct/union/generic type

There is windowList in QWidgetList QWorkspace::windowList ( WindowOrder order = CreationOrder ) const; but no windowList in QWidget.

Then compiling gdb plugin:


gdbdriver.cpp
.\gdbdriver.cpp(86) : warning C4100: 'c' : unreferenced formal parameter
.\gdbdriver.cpp(299) : warning C4100: 'language' : unreferenced formal parameter

.\gdbdriver.cpp(420) : error C2040: 'i' : 'QTreeWidgetItem *' differs in levels
of indirection from 'int'
.\gdbdriver.cpp(427) : error C2088: '<<' : illegal for class
gdbdriverui.cpp
.\gdbdriverui.cpp(37) : warning C4100: 'parent' : unreferenced formal parameter
.\gdbdriverui.cpp(293) : warning C4100: 'column' : unreferenced formal parameter

.\gdbdriverui.cpp(293) : warning C4100: 'i' : unreferenced formal parameter
.\gdbdriverui.cpp(528) : warning C4189: 'length' : local variable is initialized
but not referenced
gdbdriverthread.cpp
.\gdbdriverthread.cpp(663) : warning C4189: 'wpt' : local variable is initialize
d but not referenced
.\gdbdriverthread.cpp(778) : warning C4100: 'e' : unreferenced formal parameter
.\gdbdriverthread.cpp(787) : warning C4100: 'exitStatus' : unreferenced formal p
arameter
.\gdbdriverthread.cpp(787) : warning C4100: 'exitCode' : unreferenced formal par
ameter

I guess i`ll use it without Designer and gdb lol :)

fullmetalcoder
4th August 2008, 20:40
Thanks again for the report. I've updated the code to make it compile with VC++

To get compile the designer plugin you'll need to open src/plugins/designer/qdesignerperspective.cpp at line 268
replace "QWidget *w" in the foreach statement with "QWidget *cw" and replace the occurence of "w" on next line with "cw".

As for the GDB plugin open src/plugins/gdb/gdbdriver.cpp and find GDBDriver:: processResult. The is a for loop using index "i" and inside that loop a QTreeWidgetItem named "i" is created. Rename either of these to avoid ambiguity.

I'm about to release a bugfix release (1.0.1) and I hope I will be able to ship source code that compile on all major platform/compiler combinations, at last.

If anyone is willing to help the translation effort you're welcome. Translation files available on the SVN repo (accessible via a web browser) at : http://edyuk.svn.sf.net/svnroot/edyuk/trunk/translations
French and Russian translations are almost finished. German and Spanish are out of date but started. Others can be added by getting a copy of the "untranslated" ones, renaming them and sending them to me.

sadjoker
4th August 2008, 20:50
One more thing, in project settings i check the auto incrementing the version number when compiling but it never saves the version to the project file nor it is auto-increasing. Is it working for you or not?

fullmetalcoder
4th August 2008, 22:52
I suppose everything compiles fine then.:)

Version numbering of qmake projects is known not to work properly and it is on the TODO list.:o

sadjoker
5th August 2008, 08:00
I suppose everything compiles fine then.:)


Nope ;) gdb compiles but designer gives linker error again.
Changed line 268 in qdesignerperspective.cpp to "foreach ( QWidget *cw, w->windowList() )"
and line 270 to QDesignerClient *c = qobject_cast<QDesignerClient*>(cw);
The result is:


link /LIBPATH:"c:\Qt\4.4.0\lib" /NOLOGO /INCREMENTAL:NO /DLL /OUT:..\..\
..\plugins\designer.dll @C:\DOCUME~1\sadjoker\LOCALS~1\Temp\nm12C.tmp
Creating library ..\..\..\plugins\designer.lib and object ..\..\..\plugins\de
signer.exp
qdesignerperspective.obj : error LNK2001: unresolved external symbol "public: vi
rtual void __thiscall qdesigner_internal::QDesignerIntegration::updatePr operty(c
lass QString const &,class QVariant const &)" (?updateProperty@QDesignerIntegrat
ion@qdesigner_internal@@UAEXABVQString@@ABVQVarian t@@@Z)
..\..\..\plugins\designer.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : return code '0x2'
Stop.

No warnings or other errors during compile. Just

.\qdesignerclient.cpp(53) : warning C4100: 'object' : unreferenced formal parame
ter

fullmetalcoder
5th August 2008, 10:43
The linking error is weird because the symbol lies somewhere in Qt Designer core lib (or Qt Designer Components lib anyway...) and this symbol is not referenced by Edyuk designer plugin (at least not directly). So it is either a missing lib in the LIBS variables (which may indicate a problem in some .prf file in %QTDIR%/mkspecs/features) or a missing lib in your Qt installation or another linking quirk I can't think about...

Updating the private header files (those ending in "_p.h") in src/plugins/designer with their equivalents from your Qt installation may help but that's not guaranteed.

sadjoker
5th August 2008, 15:45
Don`t worry :) i`m not using Designer plugins anyway. I`m used to separate Designer not included in the IDE.

fullmetalcoder
28th August 2008, 14:07
First bugfix for the 1.0 branch available : Edyuk 1.0.1 addresses all reported issues so far (which included a couple of well-hidden crashes and severe usability issues).

Source and binary packages (including, for the first time, a standalone installer for windows which comes with all needed MinGW and Qt libs) available on Sourceforge (http://sourceforge.net/project/showfiles.php?group_id=168260) or TuxFamily (http://downloads.tuxfamily.org/edyuk/).

Announcement on the site (http://edyuk.org).

Mac and Unbuntu packages should come soon.

fullmetalcoder
29th August 2008, 10:34
Ubuntu package available (scheduled for intrepid but not yet on the official repos) : https://launchpad.net/~e-stealth/+archive

GuL
2nd September 2008, 18:18
Anyone has used those repositories from https://launchpad.net/~e-stealth/+archive:

apt sources.list entries

deb http://ppa.launchpad.net/e-stealth/ubuntu hardy main
deb-src http://ppa.launchpad.net/e-stealth/ubuntu hardy main

I saw there and there is another QT. I want to install Edyuk, but I don't want to mess with my QT version already installed ( from ubuntu 8.04 repositories)

Renan

whyisosad
27th September 2008, 11:47
I checkout the latest code and try to compile it with the vcbuild.bat. But all the projects in the plugins folder failed to compile. The build log of the assistant plugin is:

"D:\Program Files\Microsoft Visual Studio 8\VC\BIN\nmake.exe" -f Makefile.Release all
Generating code from scheme assistant.xml
d:\Qt\bin\uic.exe search.ui -o .build\4.3.3-win32\ui\ui_search.h
D:\Qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -D_MSC_VER=1400 -DWIN32 assistantclient.cpp -o .build\4.3.3-win32\moc\assistantclient.moc
D:\Qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -D_MSC_VER=1400 -DWIN32 index.h -o .build\4.3.3-win32\moc\moc_index.cpp
D:\Qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -D_MSC_VER=1400 -DWIN32 assistant.h -o .build\4.3.3-win32\moc\moc_assistant.cpp
D:\Qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -D_MSC_VER=1400 -DWIN32 assistantclient.h -o .build\4.3.3-win32\moc\moc_assistantclient.cpp
D:\Qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -D_MSC_VER=1400 -DWIN32 assistantperspective.h -o .build\4.3.3-win32\moc\moc_assistantperspective.cpp
D:\Qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -D_MSC_VER=1400 -DWIN32 qrcedit.h -o .build\4.3.3-win32\moc\moc_qrcedit.cpp
d:\Qt\bin\rcc.exe -name plugin plugin.qrc -o .build\4.3.3-win32\rcc\qrc_plugin.cpp
cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -Fo.build\4.3.3-win32\obj\release\ @F:\Temp\nm1CA.tmp
extra.cpp
index.cpp
assistant.cpp
f:\game\edyuk\trunk\src\plugins\assistant\index.h( 60) : warning C4099: 'IndexKeyword' : type name first seen using 'class' now seen using 'struct'
f:\game\edyuk\trunk\src\plugins\assistant\assistan t.h(31) : see declaration of 'IndexKeyword'
f:\game\edyuk\trunk\src\plugins\assistant\index.h( 81) : warning C4099: 'ContentItem' : type name first seen using 'class' now seen using 'struct'
f:\game\edyuk\trunk\src\plugins\assistant\assistan t.h(32) : see declaration of 'ContentItem'
assistantclient.cpp
assistantperspective.cpp
.\assistantperspective.cpp(509) : warning C4100: 'p' : unreferenced formal parameter
.\assistantperspective.cpp(536) : warning C4100: 'p' : unreferenced formal parameter
.\assistantperspective.cpp(619) : warning C4100: 'url' : unreferenced formal parameter
.\assistantperspective.cpp(626) : warning C4100: 'urls' : unreferenced formal parameter
qrcedit.cpp
plugin.cpp
Generating Code...
cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -Fo.build\4.3.3-win32\obj\release\ @F:\Temp\nm1CB.tmp
moc_index.cpp
moc_assistant.cpp
moc_assistantclient.cpp
moc_assistantperspective.cpp
moc_qrcedit.cpp
Generating Code...
cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -D_EDYUK_ -D_QMDI_ -D__QMDI__ -D_QCUMBER_ -D_QCODE_EDIT_ -D_QCODE_MODEL_ -D_QPROJECT_MODEL_ -D_QSAFE_SHARED_SETTINGS_ -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"d:\Qt\include\QtUiTools" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtCore" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtGui" -I"d:\Qt\include\QtXml" -I"d:\Qt\include\QtXml" -I"d:\Qt\include" -I"..\..\..\3rdparty\qpluginsystem" -I"..\..\..\3rdparty\qmdi" -I"..\..\..\3rdparty\qcumber" -I"..\..\..\3rdparty\qcodeedit2\lib" -I"..\..\..\3rdparty\qcodeedit2\lib\document" -I"..\..\..\3rdparty\qcodeedit2\lib\language" -I"..\..\lib" -I"d:\Qt\include\ActiveQt" -I".build\4.3.3-win32\moc" -I".build\4.3.3-win32\ui" -I"d:\Qt\mkspecs\default" -Fo.build\4.3.3-win32\obj\release\ @F:\Temp\nm1CC.tmp
qrc_plugin.cpp
link /LIBPATH:"d:\Qt\lib" /NOLOGO /INCREMENTAL:NO /MANIFESTFILE:".build/4.3.3-win32/obj/release\assistant.intermediate.manifest" /OUT:..\..\..\plugins\assistant.lib @F:\Temp\nm1CD.tmp
Creating library ..\..\..\plugins\assistant.lib and object ..\..\..\plugins\assistant.exp
LINK : fatal error LNK1104: cannot open file '..\..\..\plugins\assistant.lib'

I'm using Qt4.3.3 and VS2005.

const
30th September 2008, 16:04
Hello!

I try to build Edyuk-1.0.1 on Mac OS X Tiger 10.4.11 with Qt 4.4.1.

qmake -spec macx-g++ -o Makefile
make

Linker returns me an error:

collect2: ld returned 1 exit status
make[2]: *** [../../edyuk_debug.bin] Error 1
make[1]: *** [debug] Error 2
make: *** [sub-src-exec-exec-pro-make_default] Error 2

Is it possible to build Edyuk on Mac OS X Tiger? Does anybody have the universal binary of Edyuk? I need it!

Thank you!

fullmetalcoder
30th September 2008, 21:20
@whyisosad :
I am not very versed in MSVC error messages so I doubt I can help as there does not seem to be any compilation error and I do not use anything special inside the qmake project to get dlls to compile... A search in a MSVC manual/forum/... may help to locate the source of the problem and then I will be able to fix things.

@const :
Unfortunately you removed the relevant part of the log so I cannot guess where the build stopped and what caused the compilation to fail. Please send me a complete build log so that I may find out what went wrong. Oh and yes it is possible to build Edyuk under Mac. Several people reported success already.

fullmetalcoder
31st October 2008, 18:38
Edyuk 1.1.0 is available for download (http://downloads.tuxfamily.org/edyuk). Full announcement on the website (http://edyuk.org).

ComaWhite
2nd November 2008, 10:26
Does Edyuk support CMake? If not when will it or will it? Can you make a Gentoo ebuild?

fullmetalcoder
2nd November 2008, 12:07
Edyuk does not support CMake yet but this is on my TODO list.

As for packages I cannot make one for each distro and I especially can't make one for the distros I don't use.

There are a couple of user-contributed packages (or package creation files) available on the web, as I've mentioned in an earlier post but AFAIK the only there are no distro which provide them in their official repositories yet (though Slackware and Arch Linux and Alt Linux appear to have outdated packages (1.0.1) in extra repositories) :


Gentoo : http://bugs.gentoo.org/show_bug.cgi?id=212545
Ubuntu : https://launchpad.net/~e-stealth/+archive (https://launchpad.net/%7Ee-stealth/+archive)
Mandriva : https://qa.mandriva.com/show_bug.cgi?id=43309

ComaWhite
3rd November 2008, 06:28
Oh just a suggestion. Have you thought of using CMake for building Edyuk?

fullmetalcoder
3rd November 2008, 14:42
My experience of CMake until now is limited to basic syntax (just enough to fix a CMakeList.txt when KDE 4 fails to build on my laptop) so I have not yet considered supporting CMake as a build system for Edyuk itself. If anyone is interested in contributing this that will be welcomed but one thing is certain : qmake project files won't be dropped.

ComaWhite
8th November 2008, 19:52
Well I started working on a cmake build of it. Almost have atleast 50% give or take finished. But boy is it confusing as fudge :eek::o:D

fullmetalcoder
9th November 2008, 21:51
If you can make it work that'd be great for sure.

AFAIK the most difficult part to "port" will probably be the custom tool used to autogenerate some plugins code (the part that handles communication between plugin system and plugins themselves). I have no idea how that may be done in CMake (is it even possible?)

ComaWhite
10th November 2008, 02:44
Well there is one part that I had to change the name of the libedyuk dll to libedyukmain because it wouldn't allow to projects to have the same name.

What really confused me was the 3rd directory which I thought those were dll's too.

fullmetalcoder
10th November 2008, 20:45
the 3rdparty directory contains modules which are independent from Edyuk (and can be build as dlls) but are embedded in it to make build simpler and allows proper depedency tracking.

If you have to rename the library, edyukcore would probably be a better fit than edyukmain. Another possibility is to change the name of the executable (e.g edyukapp).

ComaWhite
10th November 2008, 23:47
Is there a way you can tells me which folder depends on which, and which should be built as dll or as an executable?

Edit: Somehow cmake doesn't like the way you have your qmake done. So its being a more of a pain to do :mad::crying:
Edit2: I think the only way to go around this would be to rearrange the project around. Because the ui files in the 3rdparty directory. When I try to mimic the pri files. They build in like src/lib causing them to not compile in the 3rdparty directory. And someone cmake won't build unless those directories are dlls or executables.

fullmetalcoder
12th November 2008, 18:32
The most pri files use shortened pathes, which works because the DEPENDPATH variable of the pro files which include them is set accordingly. I don't know if CMake allows such a thing (the best would be a $PWD variable that would hold the path of the file being interpreted (i.e the pri not the pro) but qmake does not appear to have that).

The layout is as such :


core library : DLL built from files in src/lib and 3rdparty/*
executable (simple main() func calling corelib functions to launch the app) : built from files in src/exec
tool used to generate plugin code : executable built from files in src/qplugin_generator (could probably be moved to a tools/ directory)
plugins : each folder in src/plugins/ generates a DLL

ktk
12th November 2008, 22:51
The most pri files use shortened pathes, which works because the DEPENDPATH variable of the pro files which include them is set accordingly. I don't know if CMake allows such a thing (the best would be a $PWD variable that would hold the path of the file being interpreted (i.e the pri not the pro) but qmake does not appear to have that).


Last time I looked (and that was about a minute ago) qmake had that
variable, and it was called --- $$PWD!

In fact, for various reasons, it is usually advisable not to use relative paths
in .pro/.pri files at all, but to prefix every such occurrence with $$PWD.

fullmetalcoder
13th November 2008, 19:08
Last time I looked (and that was about a minute ago) qmake had that
variable, and it was called --- $$PWD!
Well, last time I tried, and that was a couple of monthes ago, it did not behave as expected. I'll give it another try.

fullmetalcoder
20th July 2009, 12:42
Edyuk (http://edyuk.org) 1.1.1 is available for download (https://sourceforge.net/projects/edyuk/files/), at last. I have only uploaded source packages right now but windows binaries will follow soon.

This release fix all the reported issues of Edyuk 1.1.0 and now sports QCodeEdit (http://qcodeedit.edyuk.org) 2.2.3 which means code snippets, configuration of the editor formatting scheme and more...

Feedback is welcome as always.