ThingWorx Edge C SDK > Building a ThingWorx Edge C SDK Application > Building Applications with CMake > Configuring Options for a CMake Build
  
Configuring Options for a CMake Build
* 
The C SDK build process will now default to an OpenSSL-based build The axTLS is no longer available in the C SDK distribution. It is strongly recommended that you use the OpenSSL library provided with the C SDK. Release 2.2.1 of the C SDK include non-FIPS OpenSSL 32– and 64–bit libraries, version 1.0.2q, which, on Windows platforms is based on Visual Studio 2015 runtime library. The FIPS OpenSSL libraries of this SDK are still based on Visual Studio 2012 and therefore still are version 1.0.2l of the OpenSSL libraries.
The ThingWorx Edge C SDK provides a CMakeLists.txt file that shows the default values for the options for a C SDK application. Always check the statement at the top of the file, which indicates the minimum version of CMake that you can use.
You do not edit the CMakeLists.txt file to set options. Instead, when you generate a make file using cmake, use the -D argument with the command to set each desired option set. For example, to enable OpenSSL with FIPS mode, use the cmake command as follows:
cmake -DENABLE_OPENSSL=ON -DENABLE_FIPS_MODE=ON
* 
You can also edit CMake options at any time by editing them in the CMakeCache.txt files created when you generated your CMake build.
The following table lists and describes these options:
Option
Description
Default Value
USE_OPENSSL
It is recommended that you use the OpenSSL library that is provided with this SDK. By default CMake will build with this option.
ON
ENABLE_TUNNELING
Specifies whether your application uses the tunneling feature (to support remote sessions with a device that is running your application). If your application does not use tunneling, set this option to OFF.
ON
ENABLE_FILE_XFER
Specifies whether your application performs file transfers between the device and ThingWorx platform. If your application does not transfer files, set this option to OFF.
ON
ENABLE_OFFLINE_MSG_STORE_RAM
Specifies whether your application writes messages to RAM when the edge device is offline. Messages stored in RAM are lost if the device loses power. If you want messages to be persisted during a power outage, leave this option set to OFF and set the option, ENABLE_OFFLINE_MSG_STORE_RAM, to ON.
OFF
ENABLE_OFFLINE_MSG_STORE_FILE
Specifies whether your application writes messages to a file when the edge device is offline. Messages stored in RAM are lost if the device loses power. If you want messages to be persisted during a power outage, leave this option set to ON and the option, ENABLE_OFFLINE_MSG_STORE_RAM, set to OFF.
ON
ENABLE_FIPS_MODE
If you are using the OpenSSL TLS library and want to use FIPS mode, set this option to ON.
OFF