[Mono-list] Ideas on prj2make

Simon simon at nureality.ca
Wed Nov 30 20:40:41 EST 2005


Hello all.

During my quest to port my VS.NET winforms application to Mono I have run into a few issues which I thought I would document here. I thought I would throw my ideas here to be on the record and also spur some discussions.

Basically Mono class library is getting much much better at running my application. Things are progressing smoothly. But currently I must compile in VS.NET and copy the binaries to Mono. 

I'm really loving the prj2make tool. Finding it to be great except its not handling my csproj/sln files entirely properly so here are some of the things I've encountered. I don't think maintaining an additional sln file just for Mono or requiring to modify the Makefile is really a good option to force on developers IMO. Time to treat developers first rate and I think prj2make is really close to this. Perhaps my project is a bit odd because of all the subdirs and sub projects.

Here is what I ran into so far:

1. Signed key file. VS.NET goes inside the output dir to do its compiling it looks like, so in the AssemblyInfo.cs file goes up 2 directories to find the .key file which is in the root of the project. Such as:

[assembly: AssemblyKeyFile(@"../../project.key")]

If prj2make could handle this properly and alter the path its trying to compile it in MCS that would be great I think.

2. project Target's. Currently the Makefile contains just 1 output dir for all my 10 sub projects it seems from the looks of the Makefile:

ifndef TARGET
    TARGET=./bin/Debug
else
    TARGET=./bin/$(TARGET)
endif

Quickly looking at my csproj I see in the XML theres clearly build paths for my Debug and Release configurations:
                <Config
                    Name = "Debug"
                    AllowUnsafeBlocks = "false"
                    BaseAddress = "285212672"
                    CheckForOverflowUnderflow = "false"
                    ConfigurationOverrideFile = ""
                    DefineConstants = "DEBUG;TRACE"
                    DocumentationFile = ""
                    DebugSymbols = "true"
                    FileAlignment = "4096"
                    IncrementalBuild = "true"
                    NoStdLib = "false"
                    NoWarn = ""
                    Optimize = "false"
                    OutputPath = "bin\Debug\"
                    RegisterForComInterop = "false"
                    RemoveIntegerChecks = "false"
                    TreatWarningsAsErrors = "false"
                    WarningLevel = "4"
                />

As you can see in this attribute OutputPath = "bin\Debug\" it has my output path. Now whether prj2make picks up the Debug or Release, I'm not sure how that flag should be switched.

I was curious what people think of these ideas and if they are ideally what prj2make should do when converting a VS solution to handle everything smoothly etc.

I would like to start taking a look at prj2make myself but before doing so I would like to know if these ideas seem reasonable.

Thanks and take care,
Simon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20051130/d92811c8/attachment-0001.html


More information about the Mono-list mailing list