Merge branch 'bugfix-main-thread-root'
[mono.git] / msvc / scripts / README
1 Visual Studio Build Setup for Mono's Managed Code
2 =================================================
3
4 The scripts in this directory are used to create the various .csproj
5 for each one of the modules in Mono.  To avoid accidentally making
6 changes on the Makefile system that is not reflected on the csproj
7 system, the .csproj files are generated from the actual Makefile
8 settings.
9
10 This requires a couple of steps: 
11
12         * Extract the order, compiler and compilation flags for all
13           managed code in Mono on Linux by using the existing Makefile
14           system.
15
16         * Generate csproj files from the previous step
17
18 The idea is to ensure that we do not miss any compilation flag,
19 define, resource, reference, icon or any other element that might be
20 necessary to build the Mono class libraries.
21
22 * Extracting the Compilation Metadata
23
24         The first step is to extract the compilation metadata from the
25         existing Makefiles.  This is done in stages, first a fully
26         working Mono compilation setup is required, and second the data
27         is extracted.
28
29         The extraction is done like this, from the toplevel Mono
30         directory run:
31
32                   make update-csproj
33
34         With this input, it is possible to generate an XML file, to do
35         this do:
36
37                   make package-inputs
38
39         This will generate order.xml, this contains the ordered list in
40         which directories must be compiled as well as the command line
41         options used to build it.
42
43 * Generate csproj files
44
45         Run the genproj.exe executable in this directory.
46
47