ThingWorx Edge C SDK > How to Build an Edge Application with CMake > Configuring Options for a CMake Build
Configuring Options for a CMake Build
* 
The C SDK build process defaults to an OpenSSL-based build It is strongly recommended that you use the OpenSSL library provided with the C SDK. Refer to the ThingWorx Edge SDKs Support Matrix for a listing of the versions of OpenSSL provided with the releases of the C SDK. As of release 2.2.5, the C SDK upgraded to OpenSSL 1.1.1. Version 2.2.12 of the C SDK upgrades to OpenSSL 1.1.1j. OpenSSL 1.1.1 does not support FIPS mode, and is not backwards compatible to OpenSSL 1.0.2. FIPS mode requires OpenSSL 1.0.2 or earlier.
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 file transfers, use the following command:
cmake -DENABLE_FILE_XFER=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 describes these options:
Option
Description
Default Value
USE_OPENSSL
Build the C SDK with the provided OpenSSL libraries.
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 to RAM during a power outage, set this option ON and set the ENABLE_OFFLINE_MSG_STORE_FILE option to OFF.
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 locally during a power outage, leave this option set to ON and the option, ENABLE_OFFLINE_MSG_STORE_RAM, set to OFF.
ON
Was this helpful?