Provided by: fp-units-castle-game-engine_7.0~alpha.3+dfsg2-3_amd64 bug

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 PROJECT-NAME

              Create  a  new project, based on one of the existing templates.  Subdirectory PROJECT-NAME will be
              created in directory provided as --project-parent-dir), by default in the current directory.

       compile

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

       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.

       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, macOS...), 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-generate-textures

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

       auto-generate-clean

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

       generate-program

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

       editor

              Run Castle Game Engine Editor within this project, with possible project-specific components.

       editor-rebuild-if-needed

              Internal. 1st part of "editor" command.

       editor-run [--wait-for-process-exit PROCESS-ID]

              Internal. 2nd part of "editor" command.

       output

              Output some project information (from the manifest).  Next parameter determines the information:

              executable-name name pascal-name search-paths version version-code

       output-environment

              Output  some  environment information (independent of any project).  Next parameter determines the
              information:

              fpc-exe fpc-standard-units-path

       cache

              Create cache to speed up future compilations.

       cache-clean

              Remove the cache directory.

       create-manifest

              (Deprecated) Creates simple CastleEngineManifest.xml with guessed values.

   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" and "package" commands. Also packaging mode on 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.

       --fast Do not "clean" before "package". Recompile only what changed. This is faster for development,  but
              cannot guarantee that everything is recompiled in a release mode.

       --plugin
              Compile/package/install a browser NPAPI plugin.  DEPRECATED.

       --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). You can set this to "auto" (this is the default) to
              auto-detect  this  based on regular FPC version. Or you can set this to a particular version, like
              "3.0.5". Or you can set this to empty "" to  avoid  passing  any  -V<VERSION>  (suitable  for  FPC
              3.1.1).

       --compiler-option=PARAM
              Extra  parameter  for  "fpc"  command  line.  For  example  --compiler-option=-dUSE_MOUSE will add
              -dUSE_MOUSE.  You can use this parameter multiple times.

       --output=DIR
              Where to place the output executables, packages, and  the  "castle-engine-output"  directory  with
              temporary generated files.

       --project=DIR
              Where  to  search  for  the  project  (CastleEngineManifest.xml file). By default we search in the
              current  directory.   The   argument   can   either   be   a   directory,   or   a   filename   of
              CastleEngineManifest.xml file.

       --package-format=FORMAT
              Use with "package" command to customize the result.  Available FORMAT values:

       - default (platform specific; on most platforms
              creates  a  zip/tar.gz  archive; on Android creates APK; on iOS creates Xcode project) - zip (pack
              all files into zip) - tar.gz (pack all files into tar.gz) - directory (put all files  into  a  new
              subdirectory)  -  android-apk (only on Android: create APK) - android-app-bundle (only on Android:
              create AAB) - ios-archive-ad-hoc (only on iOS: archive  using  "ad-hoc"  method  to  IPA  file)  -
              ios-archive-development  (only on iOS: archive using "development" method) - ios-archive-app-store
              (only on iOS: distributes the application to the TestFlight and the AppStore)

       --package-name-no-version
              Use with "package" command. The resulting file/directory name will not contain the version number.

       --update-only-code
              Use with "package" command. Makes the packaging faster, as you guarantee that only the Pascal code
              have changed since last packaging (so you did not change e.g. data/ or CastleEngineManifest.xml).

       --ios-simulator
              Use with "package" command when --target=iOS.  Allows to run the project on iOS simulator.

       --all  Use with "auto-generate-clean" command. Indicates to clean everything auto-generated.  By  default
              we only clean unused files from "auto_generated" directories.

       --manifest-name=AlternativeManifest.xml
              Search     and     use     given    "AlternativeManifest.xml"    file    instead    of    standard
              "CastleEngineManifest.xml".   Useful  if  you  need  to  maintain  completely  different   project
              configurations for any reason.

       --wait-for-process-exit=PROCESS-ID
              Internal, useful with "editor-run".

       --gui-errors
              Show errors as GUI boxes. On Unix, requires "zenity" installed.

       --compiler=COMPILER
              Select compiler: "autodetect", "fpc", "delphi".

       --guid-from-name
              Use  with  "generate-program"  command. Will generate stable GUID (in Delphi DPROJ) from project's
              qualified name.

       --windows-robust-pipes
              Only on Windows (ignored on other systems): Force using less performant, but more robust,  way  to
              run child processes with "passthrough", like for "castle-engine run". Useful to run "castle-engine
              run" from PowerShell, outside of CGE editor.

       --target=<target>
              The target system for which we build/package.  Available <target> values:

       - "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.

       - "android": Build for all the platforms necessary
              for Android applications. This includes both 32-bit and 64-bit Android devices.

       - "nintendo-switch": Build an application for
              Nintendo Switch.

       --os=<os>
              Set  the  target  operating  system  for  which  we  build/package.   This  is ignored if you used
              --target=<target>, with <target> being something else than "custom".  Available <os> values:

       linux  go32v2 win32 os2 freebsd beos  netbsd  amiga  atari  solaris  qnx  netware  openbsd  wdosx  palmos
              macosclassic (classic MacOS, that ended with

       MacOS 9)
              darwin  (modern  macOS  10.x, caled also Mac OS X) emx watcom morphos netwlibc win64 wince gba nds
              embedded symbian haiku iphonesim aix java android nativent msdos wii aros dragonfly win16 ios

       --cpu=<cpu>
              Set  the  target  processor  for  which  we  build/package.   This  is   ignored   if   you   used
              --target=<target>, with <target> being something else than "custom".  Available <cpu> values:

       i386   m68k  powerpc  sparc  x86_64  arm  powerpc64  avr armeb mips mipsel jvm i8086 aarch64 (64-bit ARM)
              sparc64

   Defaults:
              android.compile_sdk_version = 34 android.min_sdk_version = 21 android.target_sdk_version = 34

       Full documentation on https://castle-engine.io/build_tool

       castle-engine version 7.0-alpha.3.  Using  Castle  Game  Engine  (  https://castle-engine.io/  )  version
       7.0-alpha.3.   Compiled  with  FPC  3.2.2.   Platform: Desktop, OS: Linux, CPU: x86_64 (code compiled for
       64-bit architecture).

Castle Game Engine                                February 2025                                 CASTLE-ENGINE(1)