        Symbols used to create makefiles and compil Kicad:
        Definitions and usage

KICAD_SCRIPTING
    Build the Python scripting support inside KiCad binaries.
    Default ON.

KICAD_SCRIPTING_MODULES
    Build native portion of the pcbnew Python module: _pcbnew.{pyd,so} for OS command line use of Python.
    Default ON

KICAD_SCRIPTING_PYTHON3
    Build for Python 3 instead of 2.
    If using WXPYTHON, the python version must be the same as the version used to build wxPython
    Default OFF.

KICAD_SCRIPTING_WXPYTHON
    Build wxPython implementation for wx interface building in Python and py.shell.
    Default ON.

KICAD_SCRIPTING_WXPYTHON_PHOENIX
    Use new wxPython binding.
    Default OFF.

KICAD_SCRIPTING_ACTION_MENU
    Build a tools menu with registered python plugins: actions plugins.
    Default ON.

KICAD_USE_OCE
    Build tools and plugins related to OpenCascade Community Edition.
    Needed to support import/export STEP
    Default ON.

KICAD_USE_OCC
    Build tools and plugins related to OpenCascade Technology.
    Overrides KICAD_USE_OCE
    Default OFF.

KICAD_INSTALL_DEMOS
    Install KiCad demos and examples.
    Default ON.

KICAD_BUILD_QA_TESTS
    Build software Quality assurance unit tests.
    Default ON.

BUILD_GITHUB_PLUGIN
    Build the GITHUB_PLUGIN for pcbnew to allow downloading libraries from Github repo.
    Default ON.

KICAD_SPICE
    Build KiCad with internal Spice simulator.
    Default ON.

KICAD_USE_FONT_REDUCED_SET
    Build KiCad with a reduced font set, without CKJ font.
    Avoid out of memory issue with some graphic cards on OpenGL.
    Default OFF.

BUILD_SMALL_DEBUG_FILES
    In debug build: create smaller binaries.

    On Windows, binaries created by link option -g3 are *very large*
    (more than 1Gb for pcbnew, and more than 3Gb for the full kicad suite)
    This option create binaries using link option -g1 that create much smaller files, but
    there are less info in debug (However the file names and line numbers are available)
    Default OFF.

MAINTAIN_PNGS
        Allow build/rebuild bitmap icons used in menus from the corresponding .svg file.
        Set to true if you are a PNG maintainer and have the required tools given
        in the bitmaps_png/CMakeLists.txt file
        Default OFF.


# Not supported by all platforms (for instance mingw)
KICAD_SANITIZE
    Build KiCad with sanitizer options.
    WARNING: Not compatible with gold linker.
    Default OFF.

KICAD_STDLIB_DEBUG
    Build KiCad with libstdc++ debug flags enabled.
    Default OFF.

option( KICAD_STDLIB_LIGHT_DEBUG
    Build KiCad with libstdc++ with -Wp,-D_GLIBCXX_ASSERTIONS flag enabled.
    Not as intrusive as KICAD_STDLIB_DEBUG
    Default OFF.

KICAD_BUILD_PARALLEL_CL_MP
    Build in parallel using the /MP compiler option (Default OFF for safety reasons).
    Default OFF.

option( KICAD_USE_VALGRIND
    Build KiCad with valgrind stack tracking enabled.
    Default OFF.

When option KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES is enabled:
  PYTHON_EXECUTABLE can be defined when invoking cmake
  ( use -DPYTHON_EXECUTABLE=<python path>/python.exe or python2 )
  when not defined by user, the Default is python.exe under Windows and python2 for others
  python binary file should be in exec path.

Note 1:
    KICAD_SCRIPTING controls the entire python scripting system.
    If it is off, no other scripting is allowed

    Therefore, if KICAD_SCRIPTING is OFF, these other option are forced to OFF:
        KICAD_SCRIPTING_MODULES, KICAD_SCRIPTING_ACTION_MENU,KICAD_SCRIPTING_PYTHON3
        KICAD_SCRIPTING_WXPYTHON, KICAD_SCRIPTING_WXPYTHON_PHOENIX

Note 2:
    KICAD_SCRIPTING_WXPYTHON_PHOENIX requires enabling the KICAD_SCRIPTING_WXPYTHON flag
    so that the wxWidgets library is properly versioned


Note 3
    These Symbols are always defined, and are not an option for cmake invocation:


COMPILING_DLL:

    This is a signal to import_export.h, and when present, toggles the
    interpretation of the #defines in that file. Its purpose should not be
    extended beyond this.


USE_KIWAY_DLLS:

    Comes from CMake as a user configuration variable, settable in the Cmake
    user interface. It decides if KiCad will be built with the *.kiface program
    modules.


BUILD_KIWAY_DLL:

    Comes from CMake, but at the 2nd tier, not the top tier. By 2nd tier,
    something like pcbnew/CMakeLists.txt, not /CMakeLists.txt is meant. It is
    not a user configuration variable. Instead, the 2nd tier CMakeLists.txt file
    looks at the top level USE_KIWAY_DLLS and decides how the object files under
    the 2nd tier's control will be built. If it decides it wants to march in
    lockstep with USE_KIWAY_DLLS, then this local CMakeLists.txt file may pass a
    defined BUILD_KIWAY_DLL (singular) on the compiler command line to the
    pertinent set of compilation steps under its control.
