Get the new PortableApps.com Platform 10.0: Gorgeous themes, a full portable app store and advanced functionality
Announcing the World's Best Flash Drive: The PortableApps.com Companion | Did you see a malware warning on Friday?

Compiling and modding Toucan

Markus700 - February 26, 2010 - 9:06am

hey steven,

first i like to thank you for this awesome program.

I like to use the sourcecode to compile a modified version for my needs. My primary goal is hiding some of the tabs and advanced option. I´m going to use the modded version for a part of my thesis in order to get my degree. I hope thats ok for you. No one will ever get this version.

I downloaded the version from your mercurial repository and tried to compile the toucann.cpp with wxdev-cpp (gcc) compiler. failed...

here´s the compiling log:

Although i made a few Java programms, I`m not a expert in programming. So I could need help Smiling

Compiler: Default GCC compiler
Führt g++.exe... aus
g++.exe "C:/Users/Admin/toucan_11monate/toucan.cpp" -o "C:/Users/Admin/toucan_11monate/toucan.exe" -I"C:/Program Files (x86)/Dev-Cpp/lib/gcc/mingw32/3.4.5/include" -I"C:/Program Files (x86)/Dev-Cpp/include/c++/3.4.5/backward" -I"C:/Program Files (x86)/Dev-Cpp/include/c++/3.4.5/mingw32" -I"C:/Program Files (x86)/Dev-Cpp/include/c++/3.4.5" -I"C:/Program Files (x86)/Dev-Cpp/include" -I"C:/Program Files (x86)/Dev-Cpp/" -I"C:/Program Files (x86)/Dev-Cpp/include/3rdparty/wx/plotctrl" -I"C:/Program Files (x86)/Dev-Cpp/include/3rdparty/wx/sheet" -I"C:/Program Files (x86)/Dev-Cpp/include/3rdparty/wx/treemultictrl" -I"C:/Program Files (x86)/Dev-Cpp/include/3rdparty/wx/things" -I"C:/Program Files (x86)/Dev-Cpp/include/3rdparty/wx" -I"C:/Program Files (x86)/Dev-Cpp/include/3rdparty" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/msw" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/generic" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/fl" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/gizmos" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/html" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/mmedia" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/net" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/ogl" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/plot" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/protocol" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/stc" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/svg" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/xml" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx/xrc" -I"C:/Program Files (x86)/Dev-Cpp/include/common/wx" -I"C:/Program Files (x86)/Dev-Cpp/include/common" -L"C:/Program Files (x86)/Dev-Cpp/Lib"
C:/Users/Admin/toucan_11monate/toucan.cpp:22:1: warning: "_WIN32_WINNT" redefined
In file included from C:/Program Files (x86)/Dev-Cpp/include/common/wx/db.h:61,
from C:/Program Files (x86)/Dev-Cpp/include/common/wx/variant.h:30,
from C:/Program Files (x86)/Dev-Cpp/include/common/wx/colour.h:48,
from C:/Program Files (x86)/Dev-Cpp/include/common/wx/bitmap.h:21,
from C:/Program Files (x86)/Dev-Cpp/include/common/wx/generic/splash.h:15,
from C:/Program Files (x86)/Dev-Cpp/include/common/wx/splash.h:15,
from C:/Users/Admin/toucan_11monate/toucan.cpp:8:
C:/Program Files (x86)/Dev-Cpp/include/common/wx/msw/wrapwin.h:43:1: warning: this is the location of the previous definition
C:/Users/Admin/toucan_11monate/toucan.cpp: In member function `virtual bool Toucan::OnInit()':
C:/Users/Admin/toucan_11monate/toucan.cpp:94: error: `wxInitAllImageHandlers' was not declared in this scope

C:/Users/Admin/toucan_11monate/toucan.cpp: In member function `void Toucan::KillConime()':
C:/Users/Admin/toucan_11monate/toucan.cpp:284: error: `wcsnlen' was not declared in this scope
C:/Users/Admin/toucan_11monate/toucan.cpp:286: error: cannot convert `CHAR*' to `const wchar_t*' for argument `1' to `int wcsncmp(const wchar_t*, const wchar_t*, size_t)'
C:/Users/Admin/toucan_11monate/toucan.cpp:286: error: cannot convert `CHAR*' to `const wchar_t*' for argument `1' to `int wcsncmp(const wchar_t*, const wchar_t*, size_t)'

Ausführung beendet
Compilation Failed. Make returned 1


( categories: )

mingw

This is just a top of the iceberg!

You can't compile this version under mingw (which is used by dev-cpp) since it uses libs that not supported by mingw (ccrypt). You'll have to fudge with MSVC.

Try older version, it has less features as you need and it's very easy to compile from the first try (e.g. under mingw):
http://portableapps.svn.sourceforge.net/viewvc/portableapps/toucan/

p.s.
> wxInitAllImageHandlers
You use the stable release of wx (<=2.8.x).
To compile toucan you'll have to get the most recent version of wx controls (>=2.9.0).

Not

strictly true I am afraid! ccrypt is not compiled in by Toucan (and is no longer in the repository) so that is not a problem.

Although wxInitAllImageHandlers does exist in wx2.8 alexl_ru is correct, I would recommend the 2.9.0 release on the wxwidgets homepage for compilation. Hopefully I will get a draft of a guide to compiling done this weekend as there seems to be interest all of a sudden!

'...and do the other things, not because they are easy, but because they are hard...' JFK

would be nice

BTW, my compilation didn't work after all. I think this is related to lua thing (luaopen_toucan() missing).

So, since you got rid of ccrypt, will be there any chance to compile Toucan under mingw? I remember a few uses of Platform SDK, but those didn't look as really necessary things.

So

I have fixed a couple of bugs in mercurial and uploaded a quick guide to compiling here:

http://drop.io/toucantest/asset/toucan-031-pdf

If you have any more question please ask, I only test on Visual Studio and GCC at the moment, although I did use MinGW for a long time!

'...and do the other things, not because they are easy, but because they are hard...' JFK

download

What's the best way to download source files?

My current workaround:
1. goto here
http://portableapps.hg.sourceforge.net/hgweb/portableapps/toucan/file/1c...
2. parse html via regexps;
3. make every link point to raw file;
4. feed url list to wget;
5. apply (2)-(4) steps for the subdirs.

I think you'll need a

I think you'll need a Mercurial client, something like TortoiseHg.

"The question I would like to know, is the Ultimate Question of Life, the Universe and Everything. All we know about it is that the Answer is Forty-two, which is a little aggravating."

what than?

Just installed one.
I think I have to run command like this:
hg.exe pull http://some_url_here

I've tried
hg.exe pull http://portableapps.hg.sourceforge.net/hgweb/portableapps/toucan/file/1c...

Nothing:
abort: There is no Mercurial repository here (.hg not found)!

hg clone

Well, I'm no hg wizard, but let's try using Chris Morgan's hg instructions for PAL, and just change them to work with the Toucan repository.

mkdir launcher
cd launcher
hg clone http://portableapps.hg.sourceforge.net/hgweb/portableapps/toucan/

To update to the latest revision,

hg pull
hg up

"The question I would like to know, is the Ultimate Question of Life, the Universe and Everything. All we know about it is that the Answer is Forty-two, which is a little aggravating."

Nice

Thanks, it works!

hi steven, thank you for the

thank you for the quick guide.

Here is what i´ve done yet:

1. Installed Windows 7 SDK
2. Build and added zlib
3. Exchanged the findwxwidget file.
4. Compiled wxwidgets with cmake for mingw and added the includes-path to compiler (Standard gcc compilerset in wxdev-c++).

Cmake created some files and folders (compilderidc,compileridcxx,cmaketmp,.......). Do i have to use these files in some way? I just added the wx\includes to compiler yet.

5. Added cxxtest to compiler
6. How to install LUA to Compiler? (not even my tutor has a clue) Smiling
7. How to install Swig to Compiler?

Current state of Compiling:
0 Errors, 0 Warnings, but failed

edit:

found errors:

toucan.cpp:82 GetConsoleWindow not declared in this scope
toucan.cpp:279 wcsnlen was not declared in this scope

macro

> toucan.cpp:82 GetConsoleWindow not declared in this scope

Make sure you have macro _WIN32_WINNT defined as 0x0500 (at least).

You

don't need to worry about adding anything to the compiler as CMake sets all of that up for you Smiling As for your other point what alexl_ru said should fix it!

'...and do the other things, not because they are easy, but because they are hard...' JFK

ok defined. But i still have

ok defined.

But i still have the problem with wcsnlen. Its not declared in wchar.h oder string.h.

Ok,

seems it isn't defined in mingw, I won't be able to get a fix pushed tonight but I ought to be able to in the morning, sorry!

EDIT: You could just try a plain wcslen until I get it fixed though!

'...and do the other things, not because they are easy, but because they are hard...' JFK

I

have fixed and pushed the change, should work now!

'...and do the other things, not because they are easy, but because they are hard...' JFK

Ok toucan.cpp in compiling

Ok toucan.cpp in compiling fine.

Now:
20 C:\Users\Admin\toucan_02032010\forms\frmprogress.cpp shobjidl.h: No such file or directory.

found this file in windows sdk includes.I have added this folder to includes and produced a lot more errors Eye-wink

Well

I can't suggest how to fix them unless you tell me what they are Eye-wink

'...and do the other things, not because they are easy, but because they are hard...' JFK

Sorry i put them into a word

Sorry Smiling

i put them into a word file.

http://rapidshare.com/files/357956723/formprogress_errors.docx.html

Just tried to compile various other cpp files, seemes to work except formprogress.

Thanks for your help

I

have pushed a little change to the repository that will basically stop the Windows 7 taskbar stuff being compiled under MinGW until I have dive into what it is doing!

'...and do the other things, not because they are easy, but because they are hard...' JFK

ok

Seems that my former wxwidgets config is not working, have to reinstall it.

just if i did something wrong:

1. install to c:\wxwidgets-2.9.0
2. add c:\wxwidgets-2.9.0 to path.
2. replace findwxwidgets in cmake modules.
3. creating wx libs: mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=0 UNICODE=1 BUILD=debug
4. add c:\wxwidgets-2.9.0\lib\gcc_lib to path.
5. start cmake with cmakelists.txt in toucan rootfolder

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:70 (MESSAGE):
Could NOT find wxWidgets (missing: wxWidgets_FOUND)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindwxWidgets.cmake:877 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:8 (find_package)

Sorry

for the delay on this, has the correct path to wxWidgets been filled in in the CMake gui when this error happens?

'...and do the other things, not because they are easy, but because they are hard...' JFK

cmake

I'm trying to compile Toucan using CMake and stuck with cxxtest.
CXXTEST subtree features 3 variables to set:
1. CXXTEST_INCLUDE_DIR (value = D:\Programs\mingw\cxxtest\cxxtest)
2. CXXTEST_PERL_TESTGEN_EXECUTABLE (value = CXXTEST_PERL_TESTGEN_EXECUTABLE-NOTFOUND)
3. CXXTEST_PYTHON_TESTGEN_EXECUTABLE (value = D:\Programs\mingw\python\python.exe )

Is python required to build the app?
What is Python Testgen executable?
I've installed some Python 2.6.4 from here: http://www.python.org/download/releases/2.6.4/

After generating makefile the build process fails when it gets to test.h

[ 60%] Generating D:/Develop/Toucan/source/toucan_hg/test.cpp
mingw32-make.exe[2]: *** [D:/Develop/Toucan/source/toucan_hg/test.cpp] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/toucan.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2

upd. Solution
0. Set variable (1) above to "D:\Programs\mingw\cxxtest"
1. Set variable (3) above to "D:\Programs\mingw\python\python.exe D:\Programs\mingw\cxxtest\cxxtestgen.py"
2. Configure/Generate
3. Edit file toucan_build\CMakeFiles\toucan.dir\build.make
1) Found string containing python.exe
2) make it look like
"D:\Programs\mingw\python\python.exe" D:\Programs\mingw\cxxtest\cxxtestgen.py -o D:/Develop/Toucan/source/toucan_hg/test.cpp D:/Develop/Toucan/source/toucan_hg/test.h

Yes

you are right, either python or perl is needed, I will hopefully do some more updates to the compiling guide this weekend, sorry it is taking a while, very busy at university at the moment!

'...and do the other things, not because they are easy, but because they are hard...' JFK

A

quick update to the MinGW stuff, I nearly have it compiling, it goes all the way to linking and then fails, but I know why, hopefully I will be able to post fixed working instructions tomorrow.

'...and do the other things, not because they are easy, but because they are hard...' JFK

So

I finally got it all working today and have pushed another fix to the Mercurial repository, this is what I did:

  1. Install Python, then add it to path
  2. Download cxxtest and add it to path
  3. Install MinGW and add it to path
  4. Download SWIG and add it to path
  5. Download wxWidgets 2.9 and build it with
    mingw32-make -f makefile.gcc
  6. Run CMake, it should fill in all the paths apart from the Toucan_Output which you need to fill in. Then generate the makefiles
  7. Navigate to the build folder and run
    mingw32-make
  8. Toucan should build!

There are still a couple if issues, mainly with the manifest, but I think I know how to fix this, hopefully I will get a commit in later to fix it.

'...and do the other things, not because they are easy, but because they are hard...' JFK