Build System

Geany has an integrated build system. When you compile, link, syntax check or otherwise process a source file, the output will be captured in the Compiler notebook tab of the messages window (assuming you have it visible). If there are any warnings or errors with line numbers shown in the Compiler output tab, you can double click on them and Geany will switch to the relevant source file (if it is open) and mark the line number so the problem can be corrected.

Depending on the current file's filetype, the Build menu will contain the following items:

Compile

By default, the Compile command is setup to build binary object files for compilable languages such as C and C++.

Java will be compiled to class file bytecode. Interpreted languages such as Perl, Python, Ruby will compile to bytecode if the language supports it, or will run a syntax check, or failing that will run the file in the language interpreter.

Build

For compilable languages such as C and C++, the Build command will link the current source file's equivalent object file into an executable. If the object file does not exist, the source will be compiled and linked in one step, producing just the executable binary.

Interpreted languages do not use the Build command.

Build with "make"

This effectively runs "make all" in the same directory as the current file. The Make tool path must be correctly set in the Tools tab of the Preferences dialog.

Build with make (custom target)

This is identical to running 'Build with "make"' but you will be prompted for the make target name to be passed to the Make tool. For example, typing 'clean' in the dialog prompt will run "make clean" (but using the full path to the Make tool set in Preferences).

Execute

Execute will run the corresponding executable file, shell script or interpreted script in a terminal window. Note that the Terminal tool path must be correctly set in the Tools tab of the Preferences dialog - you can use any terminal program that runs a Bourne compatible shell. After your program or script has finished executing, you will be prompted to press the return key. This allows you to review any text output from the program.

Set Includes and Arguments

By default the Compile and Build commands invoke the compiler and linker with only the basic arguments needed by all programs. Using Set Includes and Arguments you can add any include paths and compile flags for the compiler, any library names and paths for the linker, and any arguments you want to use when running Execute. Note that if you are using the Build command to compile and link in one step, you will need to set both the compiler arguments and the linker arguments in the linker command setting.

These settings are not saved when Geany is shut down. See below for how to set permanent arguments.

If you need complex settings for your build system, or several different settings, then writing a Makefile and using 'Build with "make"' is recommended.

File type configuration settings

You can set the commands to run for compiling, building or executing by opening the relevant filetypes.* configuration file, and checking the build_settings section. See the section called “Filetype definition files” for more information.