-
Notifications
You must be signed in to change notification settings - Fork 4
Building Khiops
Marc edited this page Nov 28, 2024
·
7 revisions
See the development environment setup page before executing any of these steps.
Khiops is built with CMake. For convenience and reproducibility, we provide standard configurations to build in each platform by means of CMake presets. The presets for each platform are:
-
Windows
windows-msvc-debug
windows-msvc-release
-
Linux
linux-gcc-debug
linux-gcc-release
-
macOS
macos-clang-debug
macos-clang-release
So to execute a full release build you run the following commands:
# Windows
cmake --preset windows-msvc-release
cmake --build --preset windows-msvc-release
# Linux
cmake --preset linux-gcc-release
cmake --build --preset linux-gcc-release
# macOS
cmake --preset macos-clang-release
cmake --build --preset macos-clang-release
If want to use your own settings, other than standard ones (ex. CMAKE_CXX_COMPILER
, -G
), we provide the following custom options in form of flags -D
:
-
MPI
(defaultON
)- Whether to build with MPI support
-
TESTING
(defaultOFF
)- Whether to build and run the unit tests with googletest
-
BUILD_LEX_YACC
(defaultOFF
)- Whether to rebuild the JSON and Khiops Dictionary parsers
- Requires a Lex/Yacc installation (ex. Flex/Bison)
-
BUILD_JARS
(defaultON
)- Whether to build the JARs implementing the Khiops Desktop GUI
-
C11
(defaultON
)- Whether to use the C++11 standard.
-
GENERATE_VIEWS
(defaultOFF
)- Whether to regenerate the GUI CPP files to reflect changes in the
.dd
files.
- Whether to regenerate the GUI CPP files to reflect changes in the
The presets mentioned above take the default values of these options.
These presets can be modified using :
- CMakePresets.json: common file saved with commits, for common parameters
- can be used for temporary settings, by setting an option to
ON
, applying the option, and resetting the option toOFF
before the commit
- can be used for temporary settings, by setting an option to
- CMakeUserPresets.json: user file not saved with commits, for user parameters.