Creating a library using EiffelStudio

View: New views
15 Messages — Rating Filter:   Alert me  

Creating a library using EiffelStudio

by David Jenkins-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

How do you create a library using EiffelStudio 6.2 GPL?  The 'New
Project' dialog offers the option of creating one of four types of
applications (basic, .NET, WEL or Vision2), but not a library.  I've
searched the on-line documentation but can't find any mention of
creating a library.


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Parent Message unknown Re: Creating a library using EiffelStudio

by Peter Horan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

David Jenkins wrote:
> How do you create a library using EiffelStudio 6.2 GPL?  The 'New  
> Project' dialog offers the option of creating one of four types of  
> applications (basic, .NET, WEL or Vision2), but not a library.  I've  
> searched the on-line documentation but can't find any mention of  
> creating a library.

Search for "Library" in the on-line documentation (I am using Eiffel  
6.1 - I don't know if on-line documentation is available in the  
pre-release of 6.2).

To quote from the topic "Generating libraries":
=================================================
To generate a dynamically linked C library using Eiffel code:

  - Generate a definition file for this library, via the Dynamic library
    Builder,
  - Open the Project Settings dialog,
  - In the Advanced section, set the Shared Library Definition,
  - Enter the name of the definition you created in the first
    step(including the path if necessary),
  - Compile the current project.

The generated C library should be located in the  
EIFGENs|target_name|W_code directory in the directory of your project.
=================================================
--
Peter Horan             Faculty of Science and Technology
peter@...     Deakin University
+61-4-0831 2116 (Voice) Geelong, Victoria 3217, AUSTRALIA
+61-3-5227 2028 (FAX)   http://www.eit.deakin.edu.au/~peter

-- The Eiffel guarantee: From specification to implementation
-- (http://www.cetus-links.org/oo_eiffel.html)



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by Peter Gummer-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> David Jenkins wrote:
>> How do you create a library using EiffelStudio 6.2 GPL?

And Peter Horan replied:
> To quote from the topic "Generating libraries":
> =================================================
> To generate a dynamically linked C library using Eiffel code:


I suspect David was asking about a class library (i.e., a read-only
collection of clusters with their own .ecf file) rather than a DLL.

I would do it by hand-editing the .ecf file in a text editor, using some of
the existing .ecf library files as an example. But David is right: there
should be an option for this when you create a new project in EiffelStudio.

- Peter Gummer



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Parent Message unknown Re: Creating a library using EiffelStudio

by Peter Horan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Peter Gummer wrote:

>> David Jenkins wrote:
>>> How do you create a library using EiffelStudio 6.2 GPL?
>
> And Peter Horan replied:
>> To quote from the topic "Generating libraries":
>> =================================================
>> To generate a dynamically linked C library using Eiffel code:
>
>
> I suspect David was asking about a class library (i.e., a read-only  
> collection of clusters with their own .ecf file) rather than a DLL.

First, I agree that precompilation should be an option at project creation.

I wondered about precompiling. Perhaps I should have included the  
following, from the same help page.
======================================================
To generate an Eiffel precompiled library:

  - Select the Precompilation Wizard in the Tools menu and follow the
    instructions,

or

  - Launch a new EiffelStudio session,
  - Select your project
  - Change the action to Precompile,
  - Click Open
======================================================
--
Peter Horan             Faculty of Science and Technology
peter@...     Deakin University
+61-4-0831 2116 (Voice) Geelong, Victoria 3217, AUSTRALIA
+61-3-5227 2028 (FAX)   http://www.eit.deakin.edu.au/~peter

-- The Eiffel guarantee: From specification to implementation
-- (http://www.cetus-links.org/oo_eiffel.html)



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by Peter Gummer-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Peter Horan wrote:
>>
>> I suspect David was asking about a class library (i.e., a read-only
>> collection of clusters with their own .ecf file) rather than a DLL.
>
> First, I agree that precompilation should be an option at project
> creation.

You're agreeing with something I didn't say, Peter ;-)

Yes, maybe David was asking how to make a precompiled library, but I suspect
he was asking about a plain, simple, class library: similar to the ones in
$ISE_EIFFEL/library: base.ecf, net.ecf, vision2.ecf, etc.

- Peter Gummer



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by David Jenkins-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Peter,

Yes, I did mean creating an Eiffel library, like the base, time,
store, etc. libraries.  Sorry for not making that clear.

I tried editing (hacking) an existing .ecf file, but wondered if
there weren't a way to create an Eiffel library using the IDE, as you
would for application projects.  The IDE accepts my edited .ecf file,
but for some reason gives an odd result with one of the libraries
(time) that I need my library to reference.  The 'time' library
appears in the cluster view, but when I expand it (click on the '+'),
it displays itself and the other libraries again, not the classes
in 'time'.  Also, my library fails to compile, because classes
in 'time' are not visible that need to be.  This is a long way of
explaining why I wanted to know if it's possible to create a library
with the IDE, expecting that it would do a better job than I have.

(I'm feeling nostalgic for ACE files, which IMHO were easier to
understand and more concise than the XML-implemented .ecf, and could
probably have just as easily, or with just as much difficulty, been
automated by the IDE.)

>
> Peter Horan wrote:
> >>
> >> I suspect David was asking about a class library (i.e., a read-
only
> >> collection of clusters with their own .ecf file) rather than a
DLL.
> >
> > First, I agree that precompilation should be an option at project
> > creation.
>
> You're agreeing with something I didn't say, Peter ;-)
>
> Yes, maybe David was asking how to make a precompiled library, but
I suspect
> he was asking about a plain, simple, class library: similar to the
ones in
> $ISE_EIFFEL/library: base.ecf, net.ecf, vision2.ecf, etc.
>
> - Peter Gummer
>



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Re: Creating a library using EiffelStudio

by Peter Gummer-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

David Jenkins wrote:
>
> (I'm feeling nostalgic for ACE files, which IMHO were easier to
> understand and more concise than the XML-implemented .ecf, and could
> probably have just as easily, or with just as much difficulty, been
> automated by the IDE.)

Me too, David. I was looking at an old ace file the other day, for the first
time in many, many months, and I was struck by how clean and legible it was.
Peering into an ecf file is hard work. Some of us complained about this when
ecf was sprung on us by surprise a couple of years ago, but we were told not
to worry, we would never look at the XML because the Project Settings dialog
would do everything. Well the Project Settings dialog is good, but I usually
edit the XML directly because it's quicker for most mundane tasks. Your
current problem is sadly ironic in this respect.

Someone was looking for JSON support in Eiffel a few days ago. Wouldn't it
be nice if ecf files were JSON rather XML!

David, why don't you paste your ecf XML into an email? Maybe it will be
obvious why the time library part of it isn't working when we see the XML.

- Peter Gummer



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


RE: Re: Creating a library using EiffelStudio

by Emmanuel Stapf [ES] :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> (time) that I need my library to reference.  The 'time'
> library appears in the cluster view, but when I expand it
> (click on the '+'), it displays itself and the other
> libraries again, not the classes in 'time'.  Also, my library

In order to add a library you simplyy need to select the `Add library'
button from the project setting under the `group' entry. Note that libraries
need to have a library target defined which has to be done under the
`System' entry.

Regards,
Manu



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by David Jenkins-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Manu,

Thank you for the reply. I added the 'time' library to my project just
as you explain, but still got the odd behavior from the IDE that I
described.

If you like I could send you the .ecf file that I've created, by hand-
editing to get something to work with, and then revised solely by the
IDE.

<manus@...> wrote:
>
> > (time) that I need my library to reference.  The 'time'
> > library appears in the cluster view, but when I expand it
> > (click on the '+'), it displays itself and the other
> > libraries again, not the classes in 'time'.  Also, my library
>
> In order to add a library you simplyy need to select the `Add library'
> button from the project setting under the `group' entry. Note that
libraries
> need to have a library target defined which has to be done under the
> `System' entry.
>
> Regards,
> Manu
>



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


RE: Re: Creating a library using EiffelStudio

by Emmanuel Stapf [ES] :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> If you like I could send you the .ecf file that I've created,
> by hand- editing to get something to work with, and then
> revised solely by the IDE.

It would certainly help.

Manu


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by David Jenkins-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Glad to. I'll send it.
--- In eiffel_software@..., "Emmanuel Stapf [ES]"
<manus@...> wrote:
>
> > If you like I could send you the .ecf file that I've created,
> > by hand- editing to get something to work with, and then
> > revised solely by the IDE.
>
> It would certainly help.
>
> Manu
>



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by Greg C :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

--- In eiffel_software@..., "Peter Gummer" <p-gummer@...>
wrote:
[...]

> Someone was looking for JSON support in Eiffel a few days ago.
> Wouldn't it be nice if ecf files were JSON rather XML!

I thought JSON was a serialization mechanism only. Does support the
notions of variable state and flow control? If not, then it won't be
adequate for specifying an Eiffel configuration, since you need to be
able to express things like

   if target_platform.is_windows then
         library_specs.append (WEL)
   end

Ace notation was on the right track, but it was trying to impose an
Eiffel syntax onto the traditional declarative style of makefiles.

Better, I think, would be to use Eiffel itself, though I would like it
to be easier to use the language declaratively for problems like this.  

Greg C



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Creating a library using EiffelStudio

by David Jenkins-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Manu,

I've found the cause of the odd behavior I described. I copied
the .ecf file for the 'time' library, then edited it to start on my
library. I didn't change the 'uuid' attribute in the 'system' tag.
Then I added a reference to the 'time' library to my library.
Apparently the uuid actually means something to the IDE. I changed it
to another value, now EiffelStudio recognizes 'time' in my library
and behaves correctly.

Next time I'll just create a cluster and reuse it if I need to. I'll
leave library creation to the experts!

<manus@...> wrote:
>
> > If you like I could send you the .ecf file that I've created,
> > by hand- editing to get something to work with, and then
> > revised solely by the IDE.
>
> It would certainly help.
>
> Manu
>



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


RE: Re: Creating a library using EiffelStudio

by Emmanuel Stapf [ES] :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Then I added a reference to the 'time' library to my library.
> Apparently the uuid actually means something to the IDE. I
> changed it to another value, now EiffelStudio recognizes
> 'time' in my library and behaves correctly.

The UUID is used to uniquely identify a library. Usually it is best to
discard the UUID part as it is automatically created by EiffelStudio when
you first edit the configuration file.

Manu


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Re: Re: Creating a library using EiffelStudio

by Peter Gummer-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Greg C wrote:
>
> I thought JSON was a serialization mechanism only. Does support the
> notions of variable state and flow control? If not, then it won't be
> adequate for specifying an Eiffel configuration, since you need to be
> able to express things like
>
>   if target_platform.is_windows then
>         library_specs.append (WEL)
>   end

Well, Greg, I imagine you would express the logic inside-out, like the .ecf
XML does. Here's what the above currently looks like in XML:

|  <library name="wel" location="$ISE_LIBRARY\library\wel\wel.ecf">
|    <condition>
|      <platform value="windows"/>
|    </condition>
|  </library>

Now I'm no JSON expert, but after spending all of 30 seconds looking at
http://www.json.org/example.html I imagine it would become something like
this:

|  "LibraryList": {
|    "wel": {
|      "location": "$ISE_LIBRARY\library\wel\wel.ecf",
|      "condition": {
|        "platform": "windows"
|      }
|    }
|  }

> Better, I think, would be to use Eiffel itself, though I would like it
> to be easier to use the language declaratively for problems like this.

Yes indeed!

- Peter Gummer



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/eiffel_software/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/eiffel_software/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:eiffel_software-digest@...
    mailto:eiffel_software-fullfeatured@...

<*> To unsubscribe from this group, send an email to:
    eiffel_software-unsubscribe@...

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/