Compiling Wesnoth on Windows - pangocairo

Get help with compiling or installing the game, and discuss announcements of new official releases.

Moderator: Forum Moderators

Post Reply
Brilliand
Posts: 80
Joined: July 11th, 2009, 12:15 am

Compiling Wesnoth on Windows - pangocairo

Post by Brilliand »

I've been able to compile older version of Wesnoth, and I've even gotten the Boost library linked in fine, but this pangocairo thing threw me. I've tried downloading it, but the mixture that I ended up with still seems to have parts (that is, header files) missing; I still haven't gotten to the point of finding out if it generates any link errors. Would someone please help me with obtaining a copy of pangocairo that I can use to compile Wesnoth?
You are a Dark Adept: you dimmerse yourself in the dark arts...potentially with great rewards....
-JW's personality quiz
User avatar
Pentarctagon
Project Manager
Posts: 4646
Joined: March 22nd, 2009, 10:50 pm
Location: Earth (occasionally)

Re: Compiling Wesnoth on Windows - pangocairo

Post by Pentarctagon »

Moved to the correct forum.
99 little bugs in the code, 99 little bugs
take one down, patch it around
-2,147,483,648 little bugs in the code
Anonymissimus
Inactive Developer
Posts: 2460
Joined: August 15th, 2008, 8:46 pm
Location: Germany

Re: Compiling Wesnoth on Windows - pangocairo

Post by Anonymissimus »

Well have you tried following one of the guides ? You can choose among MinGw+CodeBlocks, MSVC and MSVC+cmake. You don't need to set up the dependencies yourself, you can just use the according lib packages.
Since MSVC+cmake is partly broken atm I'd recommend CodeBlocks. I got pango and cairo stuff from here: http://www.gtk.org/download/win32.php

just follow projectfiles/CodeBlocks/README.txt
projects (BfW 1.12):
A Simple Campaign: campaign draft for wml startersPlan Your Advancements: mp mod
The Earth's Gut: sp campaignSettlers of Wesnoth: mp scenarioWesnoth Lua Pack: lua tags and utils
updated to 1.8 and handed over: A Gryphon's Tale: sp campaign
Brilliand
Posts: 80
Joined: July 11th, 2009, 12:15 am

Re: Compiling Wesnoth on Windows - pangocairo

Post by Brilliand »

My MinGW+Jam setup started giving me errors about "pthread.h" when I got pangocairo installed properly (maybe because smashing together all of the source files in the directory is no longer sufficient?), so I've switched over to CodeBlocks. I am now getting the following errors:

Code: Select all

||warning: duplicate section `.rdata$_ZTISs[typeinfo for std::basic_string<char, std::char_traits<char>, std::allocator<char> >]' has different size|
||warning: duplicate section `.data$_ZZN5boost9function1IvPN4gui27twidgetEE9assign_toIPFvS3_EEEvT_E13stored_vtable[void boost::function1<void, gui2::twidget*>::assign_to<void (*)(gui2::twidget*)>(void (*)(gui2::twidget*))::stored_vtable]' has different size|
...clipped...
||warning: duplicate section `.data$_ZGVZN5boost15program_options10validators17get_single_stringIcEERKSbIT_St11char_traitsIS3_ESaIS3_EERKSt6vectorIS7_SaIS7_EEbE5empty[guard variable for std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)::|
||warning: duplicate section `.data$_ZZN5boost15program_options10validators17get_single_stringIcEERKSbIT_St11char_traitsIS3_ESaIS3_EERKSt6vectorIS7_SaIS7_EEbE5empty[std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)::empty]' has different|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(zlib.o):zlib.cpp|| undefined reference to `__gxx_personality_sj0'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(zlib.o):zlib.cpp|| undefined reference to `_Unwind_SjLj_Register'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(zlib.o):zlib.cpp|| undefined reference to `_Unwind_SjLj_Unregister'|
...clipped...
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(zlib.o):zlib.cpp|| undefined reference to `_Unwind_SjLj_Unregister'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(zlib.o):zlib.cpp|| undefined reference to `_Unwind_SjLj_Resume'|
::clone() const]+0x12)||undefined reference to `__gxx_personality_sj0'|
::clone() const]+0x2e)||undefined reference to `_Unwind_SjLj_Register'|
::clone() const]+0x12e)||undefined reference to `_Unwind_SjLj_Unregister'|
...clipped...
::rethrow() const]+0x3a)||undefined reference to `_Unwind_SjLj_Register'|
::rethrow() const]+0x112)||undefined reference to `_Unwind_SjLj_Resume'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(gzip.o):gzip.cpp|| undefined reference to `__gxx_personality_sj0'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(gzip.o):gzip.cpp|| undefined reference to `_Unwind_SjLj_Register'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(gzip.o):gzip.cpp|| undefined reference to `_Unwind_SjLj_Unregister'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_iostreams.a(gzip.o):gzip.cpp|| undefined reference to `_Unwind_SjLj_Resume'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_regex.a(regex.o):regex.cpp|| undefined reference to `__gxx_personality_sj0'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_regex.a(regex.o):regex.cpp|| undefined reference to `_Unwind_SjLj_Register'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_regex.a(regex.o):regex.cpp|| undefined reference to `_Unwind_SjLj_Unregister'|
...clipped...
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_regex.a(regex.o):regex.cpp|| undefined reference to `__gxx_personality_sj0'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_regex.a(regex.o):regex.cpp|| undefined reference to `_Unwind_SjLj_Register'|
C:\cygwin\home\Silas\wesnoth-dependencies\lib\libboost_regex.a(regex.o):regex.cpp|| undefined reference to `_Unwind_SjLj_Resume'|
A quick search on the Internet suggested that I might need an older version of GCC (before 4.4 - I'm using 4.5.2). I'm setting up 4.3.5 right now (compiling from source), but it would help if I knew which version the libraries linked to by the readme in the codeblocks project folder were compiled with.
You are a Dark Adept: you dimmerse yourself in the dark arts...potentially with great rewards....
-JW's personality quiz
Anonymissimus
Inactive Developer
Posts: 2460
Joined: August 15th, 2008, 8:46 pm
Location: Germany

Re: Compiling Wesnoth on Windows - pangocairo

Post by Anonymissimus »

Brilliand wrote:A quick search on the Internet suggested that I might need an older version of GCC (before 4.4 - I'm using 4.5.2). I'm setting up 4.3.5 right now (compiling from source), but it would help if I knew which version the libraries linked to by the readme in the codeblocks project folder were compiled with.
$ gcc --version
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
In the cygwin bash shell I used to compile the boost libraries. I don't know why the compiler is so old, there's no newer one in the repository I used to install. It worked and I'm basically happy with anything that does. The compiler to compile wesnoth itsself then is however:
gcc (tdm-1) 4.5.2
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
You may just as well compile the boost .a files yourself: ./bootstrap.sh; ./bjam --with-program-options (for instance)

I know for sure that the guide works since Exasperation followed it successfully lately.
projects (BfW 1.12):
A Simple Campaign: campaign draft for wml startersPlan Your Advancements: mp mod
The Earth's Gut: sp campaignSettlers of Wesnoth: mp scenarioWesnoth Lua Pack: lua tags and utils
updated to 1.8 and handed over: A Gryphon's Tale: sp campaign
Brilliand
Posts: 80
Joined: July 11th, 2009, 12:15 am

Re: Compiling Wesnoth on Windows - pangocairo

Post by Brilliand »

Ah, my fault for thinking that TDM was just another MinGW distro, and hence any MinGW 4.5.2 would be just as good. Apparently tdm-gcc 4.5.2 includes sjlj support, which mainline gcc removed in 4.4. After switching to TDM-GCC, and installing OpenMP support, Wesnoth successfully compiled, albeit with warnings. Thank you for your help.
You are a Dark Adept: you dimmerse yourself in the dark arts...potentially with great rewards....
-JW's personality quiz
Post Reply