Build System for OpenPetra
Jump to navigation
Jump to search
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.