C++ Application Development Walkthrough
This section describes how to set up a native client development environment using C++ and CMake.
Prerequisites
This walkthrough assumes that certain components are in place:
- The Geode Native Client libraries. Install the Native Client as described in Getting Started with the Native Library. Follow the ease-of-use recommendations by installing the Native Client in a well-known location and renaming it.
System | Native Client Library Well-Known Location |
---|---|
Linux | /usr/local/nativeclient |
Windows | C:\Program Files\nativeclient |
The CMake tool suite. Download and install CMake, following the instructions on cmake.org.
Geode: Install and configure Geode. See the Geode User’s Guide for instructions and system requirements.
To develop a Native Client application using C++ and CMake:
- Create a project directory structure
- Populate the project directories with C++ source code
- Configure the CMake build environment
- Run CMake to build your application
- Run your application
Setting up Directories and Sources
Create a project directory structure. In this example, the project is called MyProject. The directory structure provides a place for your application source files and a
cmake
modules directory for project-specific CMake files:MyProject/ cmake/ FindGeodeNative.cmake CMakeLists.txt main.cpp
Change directory to MyProject and create your application sources. In this example, we have one source file,
main.cpp
.
Configuring CMake
Copy the
FindGeodeNative.cmake
script from one of the Native Client examples to thecmake
subdirectory.Create CMakeLists.txt. Copy the file from an example, if you like, as a starting point. The CMakeLists.txt file should contain the following CMake instructions:
CMake minimum version
cmake_minimum_required(VERSION 3.10)
Your project name and language
project(MyProject LANGUAGES CXX)
Minimum language version. For the Native Client, the minimum C++ version is 11.
set(CMAKE_CXX_STANDARD 11)
Path to the CMake modules directory where the
FindGeodeNative.cmake
script is located and an instruction telling CMake to use it:set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) find_package(GeodeNative REQUIRED COMPONENTS cpp)
The compilation target and the source(s) to be compiled
add_executable(MyProject main.cpp) target_link_libraries(MyProject PUBLIC GeodeNative::cpp)
Combined, the above elements comprise the following CMakeLists.txt:
# CMakeLists.txt for C++ Native Client App
cmake_minimum_required(VERSION 3.10)
project(MyProject LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
find_package(GeodeNative REQUIRED COMPONENTS cpp)
add_executable(MyProject main.cpp)
target_link_libraries(MyProject
PUBLIC
GeodeNative::cpp)
Building the App
Create a build directory and set it as your current directory:
$ mkdir build $ cd build
Run CMake twice, once to configure the build, then again to perform the build, generating the executable application.
$ cmake .. $ cmake --build .
This creates the executable application in your build directory.