> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/s-adk-5.1-programmers-guide/readme/developing_applications/pg_development_toolkit_vos3.md).

# Development Toolkit VOS3

## Preface <a href="#sec_development_toolkit_preface" id="sec_development_toolkit_preface"></a>

This document is for programmers and users who want to set-up the development environment for VOS3 platform.

## Toolset Overview for Windows <a href="#sec_development_toolkit_vos3_overview_windows" id="sec_development_toolkit_vos3_overview_windows"></a>

| Purpose                        | Tool                        | Source                                                                                                                                                                                                                                                                                                                                                                       | Note                |
| ------------------------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| IDE                            | Visual Studio Code (VSCode) | <https://code.visualstudio.com/download>                                                                                                                                                                                                                                                                                                                                     |                     |
| IDE plug-ins                   | Visual Studio Code Plugins  | <p>use plugin manager in VSCode<br>- CMake</p>                                                                                                                                                                                                                                                                                                                               |                     |
| Cross-Platform Build Generator | cmake                       | <https://cmake.org/download/>                                                                                                                                                                                                                                                                                                                                                |                     |
| Build Tool                     | ninja                       | <https://github.com/ninja-build/ninja/releases>                                                                                                                                                                                                                                                                                                                              |                     |
| Python Scripting               | python / pip                | <https://www.python.org/downloads/>                                                                                                                                                                                                                                                                                                                                          | required by packman |
| Crypto tool                    | OpenSSL for Windows         | <p><a href="https://wiki.openssl.org/index.php/Binaries"><https://wiki.openssl.org/index.php/Binaries></a><br>- MSI: <a href="https://slproweb.com/products/Win32OpenSSL.md"><https://slproweb.com/products/Win32OpenSSL.html></a><br>- ZIP: <a href="https://sourceforge.net/projects/openssl-for-windows/"><https://sourceforge.net/projects/openssl-for-windows/></a></p> | required by packman |
| Compiler                       | GNU gcc cross-compiler      | Verifone provided                                                                                                                                                                                                                                                                                                                                                            |                     |
| VOS3 SDK                       | VOS3 SDK                    | Verifone provided                                                                                                                                                                                                                                                                                                                                                            |                     |
| Packaging tool                 | packman                     | Verifone provided                                                                                                                                                                                                                                                                                                                                                            |                     |

## Installation <a href="#sec_development_toolkit_vos3_installation" id="sec_development_toolkit_vos3_installation"></a>

**VSCode and Extensions**

* download VSCode
* run VSCode installer
* install the following extensions inside the tool
  * "CMake Tools": Extended CMake support in Visual Studio Code
  * "C/C++ Extension Pack": Popular extensions for C++ development in Visual Studio Code

**Python**

* download Python
* run Python installer

**CMake**

* download cmake-\<version>-windows-86\_x64.msi installer package
* run CMake installer

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The Windows installer has an option to modify the system PATH environment variable. If possible, enable this option to add Cmake binary to your path variable.</p></div>

  \*\*OpenSSL\*\*
* download OpenSSL installer package
* run OpenSSL installer

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The OpenSSL binary path can be added to your system PATH variable, typically need to add C:\Program Files\OpenSSL-Win64\bin.</p></div>

  \*\*Toolset [Directory](/s-adk-5.1-programmers-guide/readme/annotated/class_directory.md)\*\*
* create a toolset folder on your local disk, example c:\vfi\vos3 folder

**SDK**

* download SDK zip file for Windows: adk-sdk-vos3-win-VOS3\_\<version>.zip
* create sub-folder "sdk" in the toolset directory
* extract the SDK zip file into the "sdk" folder

  <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>Multiple SDK versions can be installed in parallel in the "sdk" folder if needed. Please rename the "vos3" folder inside the SDK folder to "vos3-&#x3C;version>" if needed.</p></div>

  **Compiler Toolchain**
* download GCC compiler toolchain zip file for Windows: gcc-arm-11.2-2022.02-mingw-w64-i686-arm-none-linux-gnueabihf.zip
* create sub-folder "toolchain" in the toolset directory
* extract the GCC compiler toolchain zip file into the "toolchain" folder

**Packman**

* download packman tool zip file: packman-full-\<version>.zip
* create sub-folder "packman" in the toolset directory
* extract packman zip file into the "packman" folder
* change dir into your "packman\tools\packman" subfolder and run "py -m pip install -e ." to download required Python modules.

{% hint style="warning" %}
if your OpenSSL is not in windows PATH variable, please modify the following two Python modules in your packman installation to refer to the openssl binaries a) cmsinfo.py: OPENSSL\_COMMAND = 'C:\Program Files\OpenSSL-Win64\bin\openssl.exe' b) cmsdevsigner.py SIGNER\_COMMAND = 'C:\Program Files\OpenSSL-Win64\bin\openssl.exe'
{% endhint %}

**Ninja**

* download Ninja tool zip file: ninja-win.zip
* create sub-folder "ninja" in the toolset directory
* extract Ninja tool zip file into the "ninja" folder

Example Toolset folder structure:

![](/files/1pMQxt2lEOYSFMqMj6Uw)

## Configuration <a href="#sec_development_toolkit_vos3_configuration" id="sec_development_toolkit_vos3_configuration"></a>

**CMake Extension**

* open the settings in VSCode (click on gear symbol bottom right and select settings OR press CTRL+,)
* search for "cmake" in the settings and select the **"extensions/CMake Tools"** tab
  * set the **"Cmake: Path"** to your your cmake install folder, typically: "C:\Program Files\CMake\bin\cmake.exe"
  * add the Cmake toolchain file to your **"Cmake: Configure Environment"** list: Item="CMAKE\_TOOLCHAIN\_FILE" , Value="cmake/vos3\_toolchain.cmake"
  * set the **"Cmake: Generator"** to "Ninja"

**CMake Toolchain File**

* open the vos3\_toolcahin.cmake file from the cmake folder of your project
* adjust the variable "VERIFONE\_TOOLS\_DIR" to your local toolset directory if needed, default is set to "c:\vfi\vos3"

## Example Project <a href="#sec_development_toolkit_vos3_example_project" id="sec_development_toolkit_vos3_example_project"></a>

* Open the project
  * extract the /doc/vos3demo/wintest.zip demo project, whcih can be found in the doc archive, to a folder of your choice, e.g. "c:\vfi\vos3\projects"
  * launch VSCode editor
  * use "File/Open Folder..." to open your "c:\vfi\vos3\projects\wintest"
* CMake Configuration
  * press the "Build" button on the bottom task bar
  * initially select compiler suite to be used "GCC 4.8.4 arm-none-eabi"
  * this will now run the CMake configuration
* Build target selection
  * Select the build target from button on the bottom task bar (right to the "Build" button")
  * \[demobin] - build target for the binary
  * \[dist] - build target for download packages
* Build
  * press the "Build" button on the bottom task bar
  * run the "demobin" first and then the "dist" build target
  * this will create a "build" folder in your project directory and generate the build artifacts. See the download package under "build\dl.vos3\_demo-Debug.tar"
* Download
  * use SW Control Panel and Mx800Downloader on host PC to load the DL file into your device
  * launch the demo from the MAC desktop


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/s-adk-5.1-programmers-guide/readme/developing_applications/pg_development_toolkit_vos3.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
