Castor3D uses CMake to build project files.
You just need to launch CMake to build your favorite project file.
Documentation for CastorUtils and Castor3D can be generated using Doxygen.
Tested compilers are:
-
Visual Studio 2019
-
gcc 8.0
Projects
Main Projects
-
CastorUtils: Depends on zlib.
-
Castor3D: Based on CastorUtils, Ahes and ShaderWriter.
-
GuiCommon: Depends on Castor3D and wxWidgets (from 2.9.5, currently 3.1).
-
CastorViewer: Depends on GuiCommon and wxWidgets.
Plugins
Importers
-
ASSIMP: Depends on Castor3D and Assimp.
-
PLY: Depends on Castor3D.
-
OBJ: Depends on Castor3D.
Dividers
-
Loop: Depends on Castor3D.
-
Phong: Depends on Castor3D.
-
PN-Triangles: Depends on Castor3D.
PostEffects
-
Bloom: Depends on Castor3D.
-
FilmGrain: Depends on Castor3D.
-
GrayScale: Depends on Castor3D.
-
LightStreaks: Depends on Castor3D.
-
FXAA: Depends on Castor3D.
-
SMAA: Depends on Castor3D.
-
Linear Motion Blur: Depends on Castor3D.
Generators
-
DiamondSquareTerrain: Depends on Castor3D.
Generic
-
CastorGUI: Depends on Castor3D.
ToneMappings
-
LinearToneMapping: Depends on Castor3D.
-
HaarmPieterDuikerToneMapping: Depends on Castor3D.
-
HejlBurgessDawsonToneMapping: Depends on Castor3D.
-
ReinhardToneMapping: Depends on Castor3D.
-
Uncharted2ToneMapping: Depends on Castor3D.
Test projects
-
CastorTest: Base library for testing, depends on CastorUtils.
-
CastorUtilsTest: Allows you to run unit and performance tests for CastorUtils, depends on CastorUtils and CastorTest.
-
Castor3DTest: Allows you to run unit tests for Castor3D, depends on Castor3D and CastorTest.
Tools
-
Aria: Depends on CastorUtils, Boost, sqlite and wxWidgets.
-
CastorMeshConverter: Depends on Castor3D and wxWidgets.
-
CastorMeshUpgrader: Depends on Castor3D and wxWidgets.
-
CastorTestLauncher: Depends on Castor3D.
-
DiffImage: Depends on CastorUtils.
-
ImgConverter: Depends on wxWidgets.
Options
On GNU/Linux the default install directory is in /usr/local.
You can change this directory by changing the CMAKE_INSTALL_PREFIX value.
The sample, tool and test applications are installed in install_dir/bin/
The main libraries (CastorUtils and Castor3D) are installed in install_dir/lib/ on GNU/Linux, and in install_dir/bin/ on Windows.
The plug-ins are installed in install_dir/lib/Castor3D/
The build is configurable through CMake using the following options:
-
PROJECTS_BINARIES_OUTPUT_DIR
Used to specify the root directory for compiled binaries.
Inside this folder, the bin, lib, and share directories will be created, and binaries will be put in the appropriate folders.
Some files will also be copied in share directory, that are used by the projects.
On Windows, the external DLLs will be copied in bin folder, if they are found.
-
PROJECTS_USE_PRECOMPILED_HEADERS
Used to enable/disable the use of Precompiled Headers for the compilation.
-
PROJECTS_USE_PRETTY_PRINTING
If it is enabled, and if A-Style is found, new test projects will be
created, allowing the run of A-Style over each project's source file.
-
CASTOR_BUILD_CASTOR3D
This special option allows you to disable build of Castor3D, and every
other project depending on it, resulting in the build of CastorUtils and
CastorUtilsTest only.
-
CASTOR_BUILD_PLUGINS
Another special option allowing you to disable the build of plug-ins.
-
CASTOR_BUILDGRP_DIVIDER
Enables the build of Divider plug-ins.
-
CASTOR_BUILDGRP_GENERATOR
Enables the build of Generator plug-ins.
-
CASTOR_BUILDGRP_GENERIC
Enables the build of Generic plug-ins.
-
CASTOR_BUILDGRP_IMPORTER
Enables the build of Importer plug-ins.
-
CASTOR_BUILDGRP_INTEROP
Enables the build of Bindings.
-
CASTOR_BUILDGRP_PARTICLES
Enables the build of Particles plug-ins.
-
CASTOR_BUILDGRP_POSTFX
Enables the build of PostEffect plug-ins.
-
CASTOR_BUILDGRP_SAMPLE
Enables the build of sample applications.
-
CASTOR_BUILDGRP_SETUP
Allows you to build setup projects.
-
CASTOR_BUILDGRP_TEST
Allows you to build test applications.
-
CASTOR_BUILDGRP_TONEMAPS
Allows you to build ToneMapping plug-ins (note that LinearToneMapping is always built).
-
CASTOR_BUILDGRP_TOOL
Enables the build of tools (applications and tests).
-
CASTOR_BUILD_DIVIDER_(NAME)
Enables the build of (NAME) divider plug-in.
-
CASTOR_BUILD_GENERATOR_(NAME)
Enables the build of (NAME) generator plug-in.
-
CASTOR_BUILD_GENERIC_(NAME)
Enables the build of (NAME) generic plug-in.
-
CASTOR_BUILD_IMPORTER_(NAME)
Enables the build of (NAME) importer plug-in.
-
CASTOR_BUILD_INTEROP_(NAME)
Enables the build of (NAME) binding.
-
CASTOR_BUILD_POSTFX_(NAME)
Enables the build of (NAME) post-effect plug-in.
-
CASTOR_BUILD_SAMPLE_(NAME)
Enables the build of (NAME) technique plug-in.
-
CASTOR_BUILD_TONEMAP_(NAME)
Enables the build of (NAME) tone mapping plug-in.
-
CASTOR_BUILD_TEST_(NAME)
Enables the build of (NAME) test application.