[Mono-list] update on Nant & building mcs class

Jeroen Janssen japj@darius.demon.nl
Tue, 10 Dec 2002 23:22:12 +0100


This is a multi-part message in MIME format.
--------------040303020501090708050304
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

I'm currently working on using Nant to build the mcs class 
directories/assemblies/etc.

I just committed several fixes to the .build files.

Here is the current state:
(note that I currently only worked on getting everything compiling with 
csc, I will try to work on getting mcs specific updates in the near future)

* almost everything compiles 'out of the box' now. I do get several 
warnings (see attached gzipped build logfile) and I am unable to build 
both System.Design and Mono.Directory.LDAP with csc (see seperate logs 
with errors attached)

* some assemblies depend on others to be build first. I'm not sure how 
to deal with that correctly, currently the build order is arranged for 
this to be ok, but it is not ideal

* clean/build/mcs-build/test are all targets with similar behaviour, 
except for their nant task (csc, mcs, etc). I would like to make this 
more generic someway (but for now I will just duplicate the information 
for the different targets, until I am more familiar with Nant)

* Tests : some assemblies do(n't) provide them. It would be easier if 
every assembly provided test in a similar way

That's it for now... heading for bed,
---
Jeroen Janssen

--------------040303020501090708050304
Content-Type: text/plain;
 name="design.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="design.txt"

Buildfile: file:///D:/mono/mcs/class/System.Design/System.Design.build

build:
      [csc] Compiling 13 files to D:\mono\mcs\class\lib\System.Design.dll
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(9,14): error CS0234: The type or namespace name 'CodeDom' does not exist in the class or namespace 'System' (are you missing an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\ICodeDomDesignerReload.cs(9,14): error CS0234: The type or namespace name 'CodeDom' does not exist in the class or namespace 'System' (are you missing an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\IDesignerLoaderHost.cs(14,41): error CS0246: The type or namespace name 'IDesignerHost' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\IDesignerLoaderHost.cs(14,56): error CS0246: The type or namespace name 'IServiceContainer' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\INameCreationService.cs(16,22): error CS0246: The type or namespace name 'IContainer' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\IDesignerSerializationManager.cs(18,3): error CS0246: The type or namespace name 'PropertyDescriptorCollection' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\ICodeDomDesignerReload.cs(16,30): error CS0246: The type or namespace name 'CodeCompileUnit' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(30,95): error CS0246: The type or namespace name 'CodeExpression' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(36,79): error CS0246: The type or namespace name 'CodeStatement' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(44,74): error CS0246: The type or namespace name 'CodeStatementCollection' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(50,78): error CS0246: The type or namespace name 'CodeStatementCollection' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(56,89): error CS0246: The type or namespace name 'CodeStatementCollection' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(75,13): error CS0246: The type or namespace name 'CodeExpression' could not be found (are you missing a using directive or an assembly reference?)
D:\mono\mcs\class\System.Design\System.ComponentModel.Design.Serialization\CodeDomSerializer.cs(81,13): error CS0246: The type or namespace name 'CodeExpression' could not be found (are you missing a using directive or an assembly reference?)


BUILD FAILED
D:\mono\mcs\class\System.Design\System.Design.build(10,4): External program returned errors, see build log for details.
Try 'nant -help' for more information

--------------040303020501090708050304
Content-Type: text/plain;
 name="ldap.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ldap.txt"

Buildfile: file:///D:/mono/mcs/class/Mono.Directory.LDAP/Mono.Directory.LDAP.build

build:
      [csc] Compiling 2 files to D:\mono\mcs\class\lib\Mono.Directory.LDAP.dll
D:\mono\mcs\class\Mono.Directory.LDAP\Mono.Directory.LDAP\LDAPMessage.cs(73,4): error CS0246: The type or namespace name 'MonoTODO' could not be found (are you missing a using directive or an assembly reference?)


BUILD FAILED
D:\mono\mcs\class\Mono.Directory.LDAP\Mono.Directory.LDAP.build(9,4): External program returned errors, see build log for details.
Try 'nant -help' for more information

--------------040303020501090708050304
Content-Type: application/gzip;
 name="build_log.txt.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="build_log.txt.gz"

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