Requires the latest version of CBA A3.
A project template for Arma3 AddOn projects using the CBA_A3 framework. This template is based off the ACE3 project structure.
The project template comes with it's own implementation of tools used within the ACE project, such as build and release scripts, SQF validation scripts and more.
See the ACE3 documentation on setting up your development environment.
When making the folder for cba in the x folder it is recommended to get the latest CBA_A3 release from github instead of an empty folder. as this links directly to CBA_A3 instead of ACE3
Search and replace all mentions of the following:
proj_templ by {your_prefix}
PROJ_TEMPL by {PROJ_TEMPL}
Note that both lower and upper case are necessary. Once done, replace the logo (logo_proj_templ_ca.paa
) by your own. Keep the same aspect ratio and file extension (.paa
). This is important for good results in game. Also remember to rename the logo file to logo_{your_prefix}_ca.paa
.
proj_templ by acex
PROJ_TEMPL by ACEX
Once that is all done, run the setup.py
tool found in the tools directory of your project. This will create the necessary links between your Arma installation, your P Drive and your project source directory.
You can use build.py
to pack your PBOs for use during development and use make.py
to create binarized PBOs for release.
You can use make to manage versioning and packing up your release version.
Fresh build and package it up for a release:
tools/make force checkexternal release 1.0.0
Build just a binarized version:
tools/make
You can also manage versioning through the make tool. To do this, navigate to the addons/main
directory. In there, is a file called script_mod.hpp
. This contains the following:
#define MAJOR 1
#define MINOR 0
#define PATCHLVL 0
#define BUILD 0
Modify the numbers in here to represent your build version. The example listed above would be: 1.0.0.0
. This version will be set in each pbo during binarizing. It will also be used in the signature file names, along the commit hash. This will make it easier to identify the exact version that is being used.
This template comes with some basic scripts to validate and enforce parts of the ACE3 coding guidelines. You can find those scripts in the tools directory.
- sqf_validator.py - checks all .sqf files in the addons directory and checks for missing brackets, missing semi-colons and tab usage.
- config_style_checker.py - checks all .hpp and .cpp files in the addons directory and checks for missing brackets and tabs.
For more information on the guidelines, see ACE3 coding guidelines.
You can use these scripts in combination with CI - if you are on GitHub and use Travis-CI, here is an example:
language: python
python:
- '3.4'
script:
- python3 tools/sqf_validator.py
- python3 tools/config_style_checker.py
Adding a new component to your project is done by copying the example component directory and renaming it. Follow these steps:
- Copy the blank example component directory into the addons directory
- Rename the component directory name (blank -> {your component name})
- Do a search and replace of
blank
byyour component name
. Take care to preserve case sensitivity. - Do a search and replace of
Blank
byyour component name
in beautified form, likeAce
with upper and lower casing. Take care to preserve case sensitivity at search. - Ensure that the required AddOns in the
config.cpp
file inside your new component are set correctly. You will need at least a requirement to the main component of your project. Any other modifications that your component depends on will also need to be listed here, including your own components that you depend upon. - Start work on your component.