Project Management

BlitzMax Forums/BlitzMax Programming/Project Management

I've split my project into separate bmx files; one per object.

Each source file needs to import the modules and source files it uses.

You can only use 'Framework' once in your entire project, so use it in the main source file you use to build, not in the source files you import.

My project looks something like this:
'Main.bmx'

Framework BRL.GLMax2D
Import "TBoard.bmx"
Import "TCursor.bmx"
...

'TBoard.bmx'

Import BRL.GLMax2D
Import "TTile.bmx"

Type TBoard
...

'TTile.bmx'

Import BRL.GLMax2D
Import BRL.random

Type TTile
...

'TCursor.bmx'

Import BRL.GLMax2D

Type TCursor
...

In each of the source files I import I use Public and Private sections to control which constants, globals, and functions are exported and which are not. (I'd really like to able to use private with fields and members, but that's another matter).

If you are using the default IDE you can have all your source files open in tabs and lock the build file (Menu>Program>Lock Build File) so you can edit one file but always build the main file. Note that you don't build the source files you import directly, you build the main source file only and let Blitz build the rest when it needs to.

I'm sure an IDE with built-in project management would be better, but I find it quite painless with the default IDE.