Difference between revisions of "EiffelVision Cocoa"
m |
|||
Line 22: | Line 22: | ||
<li> Check out the latest source code from the trunk | <li> Check out the latest source code from the trunk | ||
<pre>svn co https://svn.origo.ethz.ch/eiffelstudio/trunk</pre></li> | <pre>svn co https://svn.origo.ethz.ch/eiffelstudio/trunk</pre></li> | ||
− | <li>Set your EIFFEL_SRC and ISE_LIBRARY | + | <li>Set your EIFFEL_SRC and ISE_LIBRARY like this |
<pre> | <pre> | ||
− | export | + | export ISE_LIBRARY=/directory/to/your/checkout/trunk/Src |
export EIFFEL_SRC=$ISE_LIBRARY | export EIFFEL_SRC=$ISE_LIBRARY | ||
</pre> | </pre> |
Revision as of 05:37, 3 September 2009
Contents
Overview
This project was created with the goal of running Eiffel Studio natively on the Mac and succeeds the previous Carbon based EiffelVision implementation.
Screenshots
Build instructions
- Get the latest EiffelStudio for the Mac. If you have MacPorts installed you can do this by typing
port install eiffelstudio65
- Check out the latest source code from the trunk
svn co https://svn.origo.ethz.ch/eiffelstudio/trunk
- Set your EIFFEL_SRC and ISE_LIBRARY like this
export ISE_LIBRARY=/directory/to/your/checkout/trunk/Src export EIFFEL_SRC=$ISE_LIBRARY
- Locate EiffelStudio's config.sh file (probably /Applications/MacPorts/Eiffel65/studio/spec/macosx-x86/include/config.sh) and add the flag -ObjC to the definition of the ccflags, like this:
ccflags='-ObjC -pipe -no-cpp-precomp -fno-common -fPIC'
- Compile the C-parts of the library
cd $ISE_LIBRARY/experimental/library/objc_base/Clib finish_freezing -library cd $ISE_LIBRARY/experimental/library/cocoa/Clib finish_freezing -library
- Now open the .ecf file of your project and add the following line to your target:
<variable name="vision_implementation" value="cocoa"/>
alternatively you can add another target which will allow you to easily compile both, a GTK+ and a Cocoa version of your application:
<target name="cocoa" extends="classic"> <variable name="vision_implementation" value="cocoa"/> </target>
If you want to compile Eiffel Studio there is already a target called "bench_cocoa" which you can select.
- Use ec -experiment (or estudio -experiment) to compile
FAQ
Problem
C compilation yields syntax errors:
Compiling C code in C190 In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:12, from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12, from ns6299.c:27, from big_file_C191_c.c:54: /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:124: error: stray '@' in program /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:124: error: syntax error before 'NSString' /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:126: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:127: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:129: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:130: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:132: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:132: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:133: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:133: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:137: error: syntax error before '*' token /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:138: error: syntax error before '*' token In file included from /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:6, from /System/Library/Frameworks/Foundation.framework/Headers/NSAffineTransform.h:5, from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:13, from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12, from ns6299.c:27, from big_file_C191_c.c:54: /System/Library/Frameworks/Foundation.framework/Headers/NSZone.h:8: error: stray '@' in program
Solution
Make sure your config.sh was changed to allow compiling Objective-C (see step 4 above).
Problem
C compilation yields an linker error (symbols not found):
Compiling C code in C1 Compiling C code in E1 Undefined symbols: "_bridge_void_general", referenced from: _bridge_void_general$non_lazy_ptr in Cobj160.o "_bridge_void_ptr_ptr", referenced from: _bridge_void_ptr_ptr$non_lazy_ptr in Cobj160.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [ec] Error 1
Solution
Make sure you compiled the C-parts of the libraries (see step 5 above).
Contact
If you run into any problems or have any other feedback I'll be happy to hear from you.