Hi!

Ok, I have managed to resolve my Mac packaging problems now.

First problem was synfig-core compilation error (on OSX Lion only):

libtool: compile:  g++ -DHAVE_CONFIG_H -I../.. -I../../src
-I../../libltdl ... -DNDEBUG -O2 -W -Wall -MT libsynfig_la-color.lo
-MD -MP -MF .deps/libsynfig_la-color.Tpo -c color.cpp  -fno-common
-DPIC -o .libs/libsynfig_la-color.o
color.cpp: In function 'C blendfunc_HARD_LIGHT(C&, C&, float) [with C
= synfig::CairoColor]':
color.cpp:1070: warning: unused variable 'ac'
color.cpp: At global scope:
color.cpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char,
_Traits = std::char_traits<char>, _Alloc = std::allocator<char>]':
color.cpp:149:   instantiated from here
color.cpp:149: error: explicit instantiation of
'std::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char,
_Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but
no definition available
color.cpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char,
_Traits = std::char_traits<char>, _Alloc = std::allocator<char>]':
color.cpp:149:   instantiated from here
color.cpp:149: error: explicit instantiation of
'std::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char,
_Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but
no definition available
color.cpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char,
_Traits = std::char_traits<char>, _Alloc = std::allocator<char>]':
color.cpp:149:   instantiated from here
color.cpp:149: error: explicit instantiation of
'std::basic_ostream<_CharT, _Traits>&
std::operator<<(std::basic_ostream<_CharT, _Traits>&, const
std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char,
_Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but
no definition available
make[2]: *** [libsynfig_la-color.lo] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1

As pointed here
http://stackoverflow.com/questions/11764216/qtcreator-build-system-is-broken-after-osx-upgrade
, there are several solutions for this:
1) Drop MACOSX_DEPLOYMENT_TARGET=10.5 option. That way we're loosing
extended compatibility for binaries. Not desirable.
2) Add "-fpermissive" flag for CPPFLAGS
3) Change the color.cpp file by adding ".c_str()" to the std::string
elements passed for std::ostringstream.

The problem with solution (3) is that the same error appears in many
places of synfig-core when "<<" operator is used together with
std::string. I have no time to fix all that now, so I have end up with
solution (2).

Second problem appears when building studio on both Lion and Snow Leopard:

g++ -DHAVE_CONFIG_H  ...  -DNDEBUG -O2 -W -Wall -MT
synfigstudio-layertreestore.o -MD -MP -MF
.deps/synfigstudio-layertreestore.Tpo -c -o
synfigstudio-layertreestore.o `test -f 'trees/layertreestore.cpp' ||
echo './'`trees/layertreestore.cpp
In file included from trees/keyframetreestore.cpp:34:
./trees/keyframetreestore.h:208: error: invalid use of incomplete type
'struct Glib::Class'
/tmp/skl/SynfigStudio.app/Contents/Resources/include/glibmm-2.4/glibmm/object.h:52:
error: forward declaration of 'struct Glib::Class'
trees/keyframetreestore.cpp: In member function 'const Glib::Class&
studio::KeyframeTreeStore_Class::init()':
trees/keyframetreestore.cpp:170: error: 'gtype_' was not declared in this scope
trees/keyframetreestore.cpp:172: error: 'class_init_func_' was not
declared in this scope
trees/keyframetreestore.cpp:189: error: 'get_type' was not declared in
this scope
trees/keyframetreestore.cpp:191: error: invalid initialization of
reference of type 'const Glib::Class&' from expression of type
'studio::KeyframeTreeStore_Class'
make[2]: *** [synfigstudio-keyframetreestore.o] Error 1
make[2]: *** Waiting for unfinished jobs....
mv -f .deps/synfigstudio-layergrouptreestore.Tpo
.deps/synfigstudio-layergrouptreestore.Po
mv -f .deps/synfigstudio-layerparamtreestore.Tpo
.deps/synfigstudio-layerparamtreestore.Po
mv -f .deps/synfigstudio-layertreestore.Tpo .deps/synfigstudio-layertreestore.Po
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1

There is a simple solution here: Add "#include <glibmm/class.h>" at
top of the keyframetreestore.h
On the other hand, it looks like KeyframeTreeStore_Class isn't used
anywhere, so I've just removed it.

That's it.

The package script is going to be committed into main repo as
synfigstudio-osx-build.sh inside of the "autobuild" dir.
K.

--
http://morevnaproject.org/

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to