Build System for OpenPetra: Difference between revisions
Jump to navigation
Jump to search
Line 14: | Line 14: | ||
* The goal is to remove the project (csproj) and solution (sln) files from VCS, and to generate those files. | * The goal is to remove the project (csproj) and solution (sln) files from VCS, and to generate those files. | ||
* This way we can support several formats of project files, and we won't need <code>nant fixProjectFiles</code> anymore. | * This way we can support several formats of project files, and we won't need <code>nant fixProjectFiles</code> anymore. | ||
* We also want to be able to generate a solution for the client and for the server, which has all project files from Ict.Common and Ict.Petra.Shared included, so that debugging is possible through all dlls. | |||
* We also won't need <code>nant addProject</code> anymore, which was using templates in csharp/ICT/PetraTools/Templates/ProjectFiles. | * We also won't need <code>nant addProject</code> anymore, which was using templates in csharp/ICT/PetraTools/Templates/ProjectFiles. | ||
* The contained cs files of a project need to be picked by convention, ie. all cs files in a directory belong to the project for that dll. | * The contained cs files of a project need to be picked by convention, ie. all cs files in a directory belong to the project for that dll. |
Revision as of 09:41, 15 November 2010
NAnt
The build system is done with NAnt. Some functions are written directly in C# in the build files, but we also have plugins in charp/ICT/PetraTools/NAntTasks.
Plugins Ict.Tools.NAntTasks.dll
- Postgresql plugin: run sql statements against PostgreSQL
- Mysql plugin: run sql statements against MySQL
- DotNetExec plugin for running other Petra Tools
Configuration files
- currently there are 3 sample OpenPetra.build.config files. The user has to pick one, copy it to OpenPetra.build.config, and modify it. *.config files are not committed to the VCS.
- for certain setups, the user can create a OpenPetra.build.config.my, and commit it to VCS. A local OpenPetra.build.config file still has higher priority than the .my file
Generating project and solution files
- The goal is to remove the project (csproj) and solution (sln) files from VCS, and to generate those files.
- This way we can support several formats of project files, and we won't need
nant fixProjectFiles
anymore. - We also want to be able to generate a solution for the client and for the server, which has all project files from Ict.Common and Ict.Petra.Shared included, so that debugging is possible through all dlls.
- We also won't need
nant addProject
anymore, which was using templates in csharp/ICT/PetraTools/Templates/ProjectFiles. - The contained cs files of a project need to be picked by convention, ie. all cs files in a directory belong to the project for that dll.
- Question: are the paths unique and correct, so that we can calculate the project/dll name by convention?
- The references to other dlls need to be picked up from the using clauses.
- We will need to add some PetraTools/*.exe and Ict.Common*.dlls to the VCS, otherwise it will be difficult to generate the project files.