Difference between revisions of "EiffelVision Cocoa"
(→FAQ) |
(→Build instructions) |
||
Line 7: | Line 7: | ||
=Build instructions= | =Build instructions= | ||
− | + | <ol> | |
− | port install eiffelstudio65 | + | <li> Get the latest EiffelStudio for the Mac. If you have MacPorts installed you can do this by typing |
− | + | <pre>port install eiffelstudio65</pre></li> | |
− | svn co https://svn.origo.ethz.ch/eiffelstudio/trunk | + | <li> Check out the latest source code from the trunk |
− | + | <pre>svn co https://svn.origo.ethz.ch/eiffelstudio/trunk</pre></li> | |
+ | <li>Set your EIFFEL_SRC and ISE_LIBRARY to the directory | ||
+ | <pre> | ||
export EIFFEL_SRC=/directory/to/your/checkout/trunk/Src | export EIFFEL_SRC=/directory/to/your/checkout/trunk/Src | ||
export EIFFEL_SRC=$ISE_LIBRARY | export EIFFEL_SRC=$ISE_LIBRARY | ||
− | + | </pre> | |
+ | </li> | ||
+ | <li>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: | ||
+ | <pre> | ||
ccflags='-ObjC -pipe -no-cpp-precomp -fno-common -fPIC' | ccflags='-ObjC -pipe -no-cpp-precomp -fno-common -fPIC' | ||
− | + | </pre> | |
+ | </li> | ||
+ | <li>Compile the C-parts of the library | ||
+ | <pre> | ||
cd $ISE_LIBRARY/experimental/library/objc_base/Clib | cd $ISE_LIBRARY/experimental/library/objc_base/Clib | ||
finish_freezing -library | finish_freezing -library | ||
cd $ISE_LIBRARY/experimental/library/cocoa/Clib | cd $ISE_LIBRARY/experimental/library/cocoa/Clib | ||
finish_freezing -library | finish_freezing -library | ||
− | + | </pre> | |
+ | </li> | ||
+ | <li>Now open the .ecf file of your project and add the following line to your target: | ||
+ | <pre> | ||
<variable name="vision_implementation" value="cocoa"/> | <variable name="vision_implementation" value="cocoa"/> | ||
+ | </pre> | ||
alternatively you can add another target which will allow you to easily compile both, a GTK+ and a Cocoa version of your application: | alternatively you can add another target which will allow you to easily compile both, a GTK+ and a Cocoa version of your application: | ||
+ | <pre> | ||
<target name="cocoa" extends="classic"> | <target name="cocoa" extends="classic"> | ||
<variable name="vision_implementation" value="cocoa"/> | <variable name="vision_implementation" value="cocoa"/> | ||
</target> | </target> | ||
+ | </pre> | ||
If you want to compile Eiffel Studio there is already a target called "bench_cocoa" which you can select. | If you want to compile Eiffel Studio there is already a target called "bench_cocoa" which you can select. | ||
− | + | </li> | |
+ | <li>Use ec -experiment (or estudio -experiment) to compile</li> | ||
+ | </ol> | ||
= FAQ = | = FAQ = |
Revision as of 22:19, 20 August 2009
Overview
This project was created with the goal of running Eiffel Studio natively on the Mac and succeeds the previous Carbon based EiffelVision implementation.
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 to the directory
export EIFFEL_SRC=/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
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 above).
Contact
If you run into any problems or have any other feedback I'll be happy to hear from you.