Hi all,
# Context:
Most Eiffel Studio users are familiar with the ISE_LIBRARY variable.
You don't have to set it yourself, the ISE tools will compute it usually thanks to the value of $ISE_EIFFEL.
And if you set it yourself, then it will use the value you defined.
In the Eiffel Studio's libraries, the configuration files (.ecf) usually use the $ISE_LIBRARY to reference the location of the various .ecf files
such as $ISE_LIBRARY/library/uuid/uuid.ecf
With the upcoming Eiffel Studio 7.1 release, the ISE tools will also handle the variable EIFFEL_LIBRARY in a very similar way.
If ISE_LIBRARY is NOT defined then
ISE_LIBRARY = EIFFEL_LIBRARY
end
If EIFFEL_LIBRARY is NOT defined then
EIFFEL_LIBRARY = ISE_LIBRARY
end
and if both ISE_LIBRARY and EIFFEL_LIBRARY are not defined, the tools will compute the value usually using $ISE_EIFFEL (or the linux layout path /usr/lib/.... and so on)
I think this is a nice move from Eiffel Software, to help the community.
So far, this is a tiny change, but it allows you to write your .ecf files using a compiler independant variable (i.e EIFFEL_LIBRARY).
I am not yet sure, how this will be used, but myself as a user, I might use it to either put my libraries under Eiffel Studio's installation folder, or directly in a specific folder, and I could then set EIFFEL_LIBRARY.
This topic is then more to see how to best integrate a library with existing environment.
I am using it to update the EWF's ecf files, when I move a folder to a new location. In EWF source code, we are using only relative path, no need for any $EWF or $EIFFEL_LIBRARY for now, but if you want to integrate the EWF libraries in your project, you can decide to use absolute path instead of relative path, and the "ecf_updater" tool will help you for that.
So now that we have $EIFFEL_LIBRARY and this ecf_updater tool.
We should concentrate on how to achieve one on the most important goal of Eiffel Hub: have people sharing their libraries, and make it easy for anyone to reuse them.
This will be a future topic in the group.
For now, I prefer to keep this topic/thread focus on the new EIFFEL_LIBRARY variable.
I hope this might reduce the need to many per-project environment variable (such as GOBO, EPOSIX, ...)
For the various Eiffel project I work on, I will try to write "install" script, to put my libraries in specific location inside EIFFEL_LIBRARY.
Do you have any comment on this ?
Do you think this will help your development process ?
Can you think of any specific usage of it ?
I hope other Eiffel implementor will also support EIFFEL_LIBRARY in their tool, even if one can always define it itself.
If ever Eiffel Hub decides to build an application framework (or collection of libraries), it could use $EIFFEL_LIBRARY instead of having one more $EIFFELHUB
I guess, the community should also make sure there is no conflict of location, having 2 libraries "foo" installing in the same location ...
If you are requiring more stuff to be able to share your libraries easily, let us know.