Difference between revisions of "EiffelVision Cocoa"

(FAQ)
(Build instructions)
Line 7: Line 7:
  
 
=Build instructions=
 
=Build instructions=
* Get the latest EiffelStudio for the Mac. If you have MacPorts installed you can do this by typing
+
<ol>
   port install eiffelstudio65
+
<li> Get the latest EiffelStudio for the Mac. If you have MacPorts installed you can do this by typing
* Check out the latest source code from the trunk
+
   <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
* Set your EIFFEL_SRC and ISE_LIBRARY to the directory  
+
   <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
* 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>
 +
</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'
* Compile the C-parts of the library
+
</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
* Now open the .ecf file of your project and add the following line to your target:
+
</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.
* Use ec -experiment (or estudio -experiment) to compile
+
</li>
 +
<li>Use ec -experiment (or estudio -experiment) to compile</li>
 +
</ol>
  
 
= FAQ =
 
= FAQ =

Revision as of 21: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

  1. Get the latest EiffelStudio for the Mac. If you have MacPorts installed you can do this by typing
    port install eiffelstudio65
  2. Check out the latest source code from the trunk
    svn co https://svn.origo.ethz.ch/eiffelstudio/trunk
  3. Set your EIFFEL_SRC and ISE_LIBRARY to the directory
       export EIFFEL_SRC=/directory/to/your/checkout/trunk/Src
       export EIFFEL_SRC=$ISE_LIBRARY
    
  4. 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'
    
  5. 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
    
  6. 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.

  7. 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.