CMake

Piles use CMake as a build system. Several CMake scripts are provided in pile-cmake repository to make the job of the developer as simple as possible. Here is a complete list:

General Variables

General variables are the ones that affect the whole pile system.

PILE_SUPPORT_DEBUG
general switch for debug messages; set to ON to enable them; set to OFF to disable them.

Pile Variables

These are variables normally found in pile.cmake files.

PILE_QT_MODS
a list of Qt modules like Core Widgets Network;
PILE_DEBUG_MSG
enable or disable debug messages for a certain pile;
PILE_BUILD_MODE
used in CMakeLists.txt for the pile to decide the way pile is being used; defaults to STATIC; CMakeLists.txt file is / should only bbe used for STATIC or SHARED modes. In the end this variable will be used as PILE_PILE_MODE.

Indirect Variables

These are variables created on behalf of the pile by various macros.

PILE_NAME
the name with all-lower-case letters;
PILE_NAME_U
the name with all-UPPER-case letters;
PILE_NAME_C
the name as provided (should be CamelCase);
PILE_SOURCE_DIR
the path where this pile is stored (not including /cmake);
PILE_BINARY_DIR
the path where this pile generates output;
PILE_DEPENDENCIES
piles that current pile depends on;
PILE_CATEGORY
a list of categories, with the most general one first and most specific one last;
PILE_TAGS
a set of tags;
PILE_MAJOR_VERSION
first component of the version;
PILE_MINOR_VERSION
second component of the version;
PILE_PATCH_VERSION
third component of the version;
PILE_VERSION_STRING
a string in the form 1.2.3;
PILE_DEBUG
defined if this is a debug version;
PILE_RELEASE
defined if this is a release version;
PILE_PILE_MODE
one of STATIC, SHARED, PILE or PILE_SHARED;
PILE_HEADERS
the list of header files to build this pile;
PILE_SOURCES
the list of source files to build this pile;
PILE_CONFIG_FILE
full path to the configuration file;
PILE_CONFIG_FILE_IN
full path to the configuration file template;