42 | | * We separate the external libraries from the game's code and data in the repository |
43 | | * The libraries are split into separate directories per operating system and architecture |
44 | | * Developers will have to make a separate checkout to get the right libraries for their system |
45 | | * Updateworkspaces checks if the libraries are present and up to date to avoid problems with outdated libraries |
46 | | * Supported platforms are Linux-source (no precompiled libraries in the repository), Macosx-x64 and Windows-x86. |
47 | | * We don't use special "subversion tricks" like externals definitions and instead keep separate identical copies of libraries if necessary. Storage isn't a problem and we don't update the libraries often. Other arguments brought up by Philip: "... it'll probably confuse Trac and it'll probably make mirroring/migrating to Git harder". |
| 43 | * We remove most of the Windows binaries from the repository (starting with autobuilt exes/dlls in `binaries/system`) |
| 44 | * Libraries are split into separate directories per operating system and architecture |
| 45 | * Script / updater utility checks if the libraries are present and up to date to avoid problems with outdated libraries |
| 46 | * The build process continues the same as before |
| 47 | * A script is included to automatically build OS X bundles |
95 | | Developers will have to do an additional checkout to compile 0ad. |
96 | | |
97 | | This is still the same command to get the source and data: |
98 | | [[BR]]svn co http://svn.wildfiregames.com/public/ps/trunk/ 0ad |
99 | | |
100 | | In addition to that, it will be required to get the right libraries for your system (of course replacing "windows-x86" with your platform): |
101 | | [[BR]]svn co http://svn.wildfiregames.com/public/libraries/trunk/windows-x86 0ad/libraries |
102 | | |
103 | | |
104 | | == Updateworkspaces == |
105 | | |
106 | | Updateworkspaces must check if the library is present and up to date. If not, it should stop and display an error. |
107 | | This check could work with a manually updated file in the source-tree containing the current revisions for library-directories. |
108 | | |
| 125 | Developers will check out the code using Git instead of SVN. |
| 126 | |
| 127 | == Windows build == |
| 128 | Windows developers will first run `binaries\system\updater.exe` to get the latest pre-built win32 binaries. This will keep them updated for whichever branch they are testing, or they can build the game themselves. |
| 129 | |
| 130 | == OS X build == |
| 131 | |
| 132 | OS X developers have the choice of building a loose binary or a bundle, with slightly different steps and requirements. |
| 133 | |
| 134 | See BuildInstructions#OSX |
| 135 | |
| 136 | == *nix build == |
| 137 | Linux build process shouldn't change (much). |
| 138 | |
| 139 | See BuildInstructions#Linux |
152 | | == 1. Change how the game handles default search paths == |
153 | | Assigned: Yves |
| 183 | == 1. Git migration == |
| 184 | Assigned: unassigned / collaborate with Philip |
| 185 | |
| 186 | To improve development workflow, we will migrate from SVN to Git. |
| 187 | |
| 188 | How this affects the build system: |
| 189 | * Autobuilder will be changed to build Git branches, allowing artists and others to test feature branches (see #1819) |
| 190 | * Windows binaries will be moved out of the repository, starting with binaries/system, and possibly later including libraries/win32, etc. An update utility will be written to fetch the latest Windows binaries for the current branch (see #1814). |
| 191 | |
| 192 | == 2. Change how the game handles default search paths == |
| 193 | Assigned: unassigned |
168 | | == 2. Adjust the build-system and documentation for a separate library directory == |
169 | | Unassigned |
170 | | |
171 | | This task involves: |
172 | | 1. Changing the repository structure as listed above |
173 | | 1. Check if the libraries are present and up-to-date in update-workspaces.sh as described above. |
174 | | 1. Adjusting premake4.lua, extern_libs4.lua, update-workspaces.sh and whatever else might be needed to support these changes |
175 | | 1. Update all affected documentation |
176 | | |
177 | | Affected documentation: |
178 | | * BuildInstructions |
179 | | * ... what else? |
180 | | |
181 | | == 3. Prepare the libraries for each platform == |
182 | | Assigned: historic_bruno? [http://trac.wildfiregames.com/ticket/1112 #1112] |
183 | | |
184 | | Either include precompiled libraries or integrate the source-code into our build-scripts (called from update-workspaces.sh). |
185 | | It depends on the platform and probably on the library if the source or a precompiled version should be included. |
186 | | |
187 | | == 4. Write a script to create the bundle from the prebuilt libraries, the game-executables and the data == |
188 | | Assigned: Yves has started creating such a script |
189 | | * The script must support the new repository structure |
190 | | * It should minimize maintenance effort |
191 | | |
192 | | == 5. Check CMake as an alternative in the future or work on improved XCode support for Premake == |
193 | | Assigned: Juicyfruit works on an integration of CMake: [http://trac.wildfiregames.com/ticket/1104 #1104] |
194 | | |
195 | | == 6. Create a plain binary instead of a broken app-bundle == |
196 | | Assigned: Yves [http://trac.wildfiregames.com/ticket/947 #947] |
197 | | Fixed: [http://trac.wildfiregames.com/changeset/10946 Changeset 10946] |
198 | | |
199 | | The build-process should create a plain binary in 0a/binaries/system instead of a broken app bundle. |
200 | | A valid app bundle will be created later during deployment. |
| 208 | == 3. Check CMake as an alternative in the future or work on improved XCode support for Premake == |
| 209 | Assigned: unassigned |
| 210 | Past work on an integration of CMake: #1104 |
| 211 | |