I think you're all missing the point.
As it stands now, MSVC won't even READ most of your resource files because you've decided to write them in a way that violates the .rc standard and that only binres/windres/whatever-you-call-that- incompatible-garbage can parse.
Mark's proposal, apart from fixing all the problems he brought up, will finally allow you to write resource files that both MSVC and your-retarded-rc-compiler-name-goes-here can understand, with minimum effort. Right now, you're all stuck rewriting all your .rc files and creating .msvc.rc files.
By the way Mark, you should extend this to definition files. Once again, MSVC is incompatible with all the ReactOS .def files, which have been tailored so that Mangle32-gcc can understand them, so you'll have to create msvc.def files as well.
The more rbuild can generate independently, the better. You get MSVC files *after* running "make msvc8", and it's that step that would be creating the .def/.rc files for MSVC anyway -- what exaclty is it all you're complaining about regarding "MSVC" compatibility? You don't have it, how the hell can you lose it, and more importantly, why is the only suggestion that will finally let you have it "disliked"?!
You make no sense.
-- Best regards, Alex Ionescu
On 9-Nov-07, at 1:59 PM, Magnus Olsen wrote:
I am usinf visual studio 2003 for I own 5 licen for it. so all vs project must eb avail on build with all version of vs and I am against adding rc file to rbuild like he sugest. I dislike that idea complete
----- Original Message ----- From: "Ged" gedmurphy@gmail.com To: "ReactOS Development List" ros-dev@reactos.org Sent: Friday, November 09, 2007 7:36 PM Subject: Re: [ros-dev] rbuild auto generated resources
My only concern is Visual Studio Whatever you do, you must make sure all projects are able to be fully loaded by Visual Studio 2005/2008 without the interaction of rbuild. As one of the hopes is to make everything in ROS VS compatible and buildable by Visual Studio, I would consider anything moving away from this a regression.
Ged.
Marc Piulachs wrote:
From all changes introduced on my rbuild branch auto generated resources seems to be the most controversial by far so I will try to explain here the design decision behind it
One of my particular obsessions is trying to optimize and automate the maxium ammout of things, if something can be reasonably created automatically why do it by hand?
CURRENT SITUATION
=================
Currently the version common defines REACTOS_STR_FILE_DESCRIPTION , REACTOS_STR_INTERNAL_NAME and REACTOS_STR_ORIGINAL_FILENAME , localized resources and theme manifest are added to [modulename].rc , rsrc.rc or splitted between both.
Problems:
- Theme manifests files "manifest.xml" are architecturedependent (X86)
- Duplicated content, we will have hundreds of identicalmanifest files for every aplication
- No way to compile an aplication without manifest - No way to compile an aplication with only specifiedlocalizations
- Duplicated work, rbuild has all the informationrequired to automatically generate the defines
- If we decide to rename or introduce a new define inthe future we will have to edit all resources by hand.
- Resource localizations are compiled with any control ,the only way to check if they are included is by hand.
Advantatges to my proposal:
- It solve all the above problems. - Reduce man work - Allows future changes in the format (editing theresource generator source code (1 file) vs all resources files on SVN)
- It's the base to other future enchancments , when anew feature is added to rbuild we have just to modify it and all modules will automatically inherit it.
An most important of all , it represents a change of the model to a metadata oriented build process. You describe the content (source code , resources ...) rather than the build , rbuild uses that information to generate the apropiate image (as always) but this information can also be used for multiple other things, analitics , reports , web ....
How does it work?
=================
First of all IT'S OPTIONAL , you can decide to use it or not, your choice.
We will use the eventvwr.rbuild as sample:
<?xml version="1.0"?>
<module name="eventvwr" type="win32gui" installbase="system32" installname="eventvwr.exe">
<include base="eventvwr">.</include> <include base="eventvwr" root="intermediate">.</include>...
<!-- Auto generated stuff --> <automanifest>manifest.xml</automanifest> <autoresource>auto.rc</autoresource> <!-- Authors --> <developer>mpiulachs</developer> <translator>cfinck</translator> <translator>fireball</translator> <translator>mpiulachs</translator> <metadata description="ReactOS Event Log Viewer" /> <!-- Avialable localizations for this module --> <localization isoname="de-DE">lang/de-DE.rc</localization>
<localization isoname="en-US">lang/en-US.rc</localization>
<localization isoname="es-ES">lang/es-ES.rc</localization>
<localization isoname="fr-FR">lang/fr-FR.rc</localization>
<localization isoname="ru-RU">lang/ru-RU.rc</localization>
</module>
to turn auto resources on we have to add the <autoresource> element with the name of the resource that will be created in the INTERMEDIATE folder in this case it will be named "auto.rc".
It will also automatically create the apropiate manifest.xml file for the architecture being build (x86 or PPC) and will reference it in "auto.rc"
Also it will validate and include the localizations, even it has localizations for 5 languages it will only compile those specified on languages.rbuild
See attached files for autogenerated content
I tried to explain the motivation behind my changes and why I think they are positive , of course I'm open to your questions , ideas or comments but please be contructive and argument your point of view , "I don't like it , we won't use it" as someone said is not an expected opinion.
/Marc
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev