Man pages sections > man1 > castle-engine

castle-engine - build and package Castle Game Engine programs

CASTLE-ENGINE(1) User Commands CASTLE-ENGINE(1)

NAME

castle-engine - build and package Castle Game Engine programs

DESCRIPTION

castle-engine: Build and package Castle Game Engine programs.

Call with the current directory set to your project, like this:

castle-engine [OPTIONS]... COMMAND
Possible commands:

create-manifest:

Creates simple CastleEngineManifest.xml with guessed values.

compile:

Compile project. By default compiles for the current OS / current CPU (linux / arm). You can use --os / --cpu options to compile to some other OS / CPU. You can use --target to compile for a special collection of OS/CPU platforms (like "iOS").

package:

Package the application into the best archive format for given operating system (OS) / processor (CPU) / target. The OS, CPU and "target" can be changed just like at "compile".

install:

Install the application created by previous "package" call. Useful when OS is "android", it installs the apk package created by previous "package" call for Android. Useful for quick testing of your app on a device connected through USB. Useful also for installing compiled web browser plugin.

run:

Run the application. On some platforms, it requires installing the application first (e.g. on Android, where we install and run on a device connected through USB). So run the "install" command before. On other platforms (e.g. standalone Windows, Linux, Mac OS X...), it simply runs the last compiled application. So just "compile" the application first.

package-source:

Package the source code of the application.

clean:

Clean leftover files from compilation and packaging. Does not remove final packaging output.

simple-compile:

Compile the Object Pascal file (unit/program/library) given as a parameter. This does not handle the Castle Game Engine projects defined by CastleEngineManifest.xml files. It merely calls "fpc" with proper command-line options for units/programs/libraries using our engine. Use this instead of "compile" only if there's some good reason you don't want to use CastleEngineManifest.xml to your project.

auto-compress-textures:

Create GPU-compressed versions of textures, for the textures mentioned in <auto_compressed_textures> inside the file data/material_properties.xml.

auto-compress-clean:

Clear "auto_compressed" subdirectories, that should contain only the output created by "auto-compress-textures" target.

generate-program:

Generate lpr and lpi files to edit and run this project in Lazarus. Depends on game_units being defined in the CastleEngineManifest.xml.

Available options are:

-h / --help
Print this help message and exit.
-v / --version
Print the version number and exit.
-V / --verbose
Verbose mode, output contains e.g. list of packaged files.
--mode=debug|release
Compilation mode, used by "compile" command. Also packaging mode for some platforms (right now, Android). By default "release".
--assume-compiled
Do not automatically do "clean" and "compile" before "package". Instead assume that compiled executable for given OS/CPU/mode is already present in the package directory.
--plugin
Compile/package/install a browser plugin.
--fpc-version-iphone-simulator VERSION
When compiling for iPhone Simulator, we pass -V<VERSION> to the "fpc" command-line. This is necessary if you use the official "FPC for iOS" package (see the "Getting Started - iOS.rtf" inside the "FPC for iOS" dmg for explanation). By default it is "3.0.3". You can set this is empty to avoid passing any -V<VERSION>.
--target=custom|iOS
The target system for which we build/package. - "custom" (default):
Build for a single OS and CPU combination, determined by the --os and --cpu options. These options, in turn, by default indicate the current (host) OS/CPU.
- "iOS":
Build for all the platforms necessary for iOS applications. This includes both 32-bit and 64-bit iOS devices and iPhoneSimulator.
--os
Set the target operating system for which we build/package. Available values:
linux go32v2 win32 os2 freebsd beos netbsd amiga atari solaris qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc win64 wince gba nds embedded symbian haiku iphonesim aix java android nativent msdos wii
--cpu
Set the target processor for which we build/package. Available values:
i386 m68k powerpc sparc x86_64 arm powerpc64 avr armeb mips mipsel jvm i8086 aarch64
Full documentation on https://github.com/castle-engine/castle-engine/wiki/Build-Tool
castle-engine version 6.2.
Developed using Castle Game Engine. See https://castle-engine.sourceforge.io/ for latest versions of this program, sources and documentation.
Compiled with FPC 3.0.4 (Linux / arm).
October 2017 Castle Game Engine