Capstone 2013 Client Requirements Document
- 1 Project Name
- 2 Introduction to the problem
- 3 References
- 4 Glossary
Windows Build System for Apache Open Office
- Matt Wilson – firstname.lastname@example.org
- Colin Bradford – email@example.com
- Nicholas Smith – firstname.lastname@example.org
- Matt Vanderhey – email@example.com (Not currently part of the active project)
Jan Iversen - firstname.lastname@example.org, 0034-622-87-6619 Apache Software Foundation
Steve Hathaway – email@example.com, Apache Software Foundation
Introduction to the problem
Building the Open Office software through Visual Studio as a Windows developer is difficult and has to be done through CygWin. Our goal is to create a method of properly compiling all modules using Microsoft Visual Studio on Windows.
Make a system that allows for the system to be easily built/debugged from within Microsoft Visual Studio
- Create a method of building the modules within the Open Office source using Microsoft Visual Studio; the generated modules should integrate with the current build system
- Every Apache Open Office module should be represented by a Visual Studio Project file, and
- Solution should require a minimum of setup and work on Windows 7 64-bit. The solution is not required to work with other configurations, but our modifications to the solution should not prevent it from being ported in the future
- Version 0.1 - a single module that is converted to a vcproj file
- Version 0.2 - 10 modules converted to build using vcproj files
- Version 0.3 - 35 modules converted to build using vcproj files
- Version 0.4 - 60 modules converted to build using vcproj files
- Version 0.5 - 85 modules converted to build using vcproj files
- Version 0.6 - 110 modules converted to build using vcproj files
- Version 0.7 - 135 modules converted to build using vcproj files
- Version 0.8 - 160 modules converted to build using vcproj files
- Version 1.0 - all modules converted to build using vcproj files
- The end result of this project should be an Apache Open Office source tree with the build system for modules replaced with Visual Studio project files: the basic functionality of the system should remain the same. The completed system should build with a single command within Visual Studio.
- Most conversion of modules will be done manually, copying over the functionality of a makefile to a Visual Studio project. Automated scripts may be used if applicable.
Specific tasks to be undertaken
- Get a working setup to build the current version of Apache Open Office under Windows using CYGWin.
- Conduct research on vcxproj file format, makefile format, similarities & differences, Visual Studio environment variables, build rules, and so on: between the members of our group we should have an understanding of all of these elements
- Select a module with a relatively low amount of dependencies and convert its makefile into an equivalent vcxproj file, then build this through Visual Studio. Once built, insert this into the current AOO build system and verify that it builds properly.
- Research into methods of automating parts of the conversion process, and create a set of scripts to expedite the conversion process if possible.
- Continue to convert modules to use Visual Studio projects instead of makefiles.
- Compose a Visual Studio solution file encapsulating all converted modules.
- Write up documentation on how the new build system operates
- Inexperience: none of our group members have experience with build systems, and our Linux experience is similarly limited. This risk can be mitigated by studying the current build system prior to beginning implementation.
- Manual conversion of modules may take longer than expected due to complexities: a script or other automated method of speeding up the process may not be feasible. This will be obvious if we start to fall behind in meeting our milestones.
- For every module converted, Open Office should build and run properly after making the change. The system should be tested after any module is converted.
- Several modules will require additional testing of the compiled .exe; this testing will be performed by the client
Roles of the different team members
- Matt Wilson - Scheduling, P3
- Nick Smith - Module conversion
- Colin Bradford - Secretary
Module conversion will be split up relatively evenly between group members; client will help group the modules.
- Make sure current build system works when using modules created with Visual Studio projects
- Make sure converted modules do not conflict with each other after being integrated together
- Current build system description: http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step
- Apache Open Office website: http://www.openoffice.org/
- First attempt at remaking the build system:
- Zen of gbuild: http://wiki.openoffice.org/wiki/Build_Environment_Effort/Zen_of_gbuild
- Gbuild Bootstrapping: http://wiki.openoffice.org/wiki/Build_Environment_Effort/Gbuild_Bootstrapping
- Module Migration: http://wiki.openoffice.org/wiki/Build_Environment_Effort/Module_Migration
- Time Converter: http://www.worldtimebuddy.com/?pl=1&lid=5720727,100&h=5720727
- Wiki for project: http://wiki.openoffice.org/wiki/Build_System_Analysis:capstone2013_windows_build
- Build System Analysis: http://wiki.openoffice.org/wiki/Build_System_Analysis
- Apache Xerces website: http://xerces.apache.org/
- W3 XML tutorials: http://www.w3schools.com/xml/default.asp
- Visual Studio changes: http://msdn.microsoft.com/en-us/library/ee862524.aspx
- vcxproj: similar to a makefile in Unix/Linux systems. Determines how the project is compiled. Used to be vcproj files until more recent versions of Visual Studio. vcxproj files are written in XML.
- AOO: Apache Open Office
- Xerces: An XML parser developed by Apache.
- CygWin: an emulation of Linux tools in Microsoft Windows.