Starting from scratch
New project
The Vertices SDK is built to be included in any project as an external component.
The best way to achieve this is probably to make use of git submodules.
So let's say we have a clean repository with empty directories:
external
: I like to have a directory keeping external libscomponents
: provided by the SDK you are building onmyproject
: the source code your team is writingutils
: some scripts and tools that are usefulbuild
: generated build files
mkdir porting_guide
cd porting_guide
mkdir external components myproject utils build
The structure is alive. Let's get the SDK.
# init directory as a git repository
git init
# clone SDK into external/c-vertices-sdk
git submodule add https://github.com/vertices-network/c-vertices-sdk external/c-vertices-sdk
# update submodules of the SDK itself
git submodule update --init --recursive
# check content of the SDK
ls external/c-vertices-sdk
Let's create a main.c
file with the minimum content:
touch myproject/main.c
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello world\n");
return 0;
}
CMake
We can now init our project with two CMake files that will be used to build the entire project:
touch CMakeLists.txt myproject/CMakeLists.txt
Here is the minimum content of the root CMakeLists.txt
:
cmake_minimum_required (3.20)
project (porting_guide)
# adding the Vertices SDK
add_subdirectory(external/c-vertices-sdk)
# adding the User code
add_subdirectory(myproject)
Now we can add our main.c
file into myproject/CMakeLists.txt
:
set(PROJECT_NAME myproject)
project(${PROJECT_NAME})
# add source file related to that project
set(SRC_FILES
main.c
)
# Add directories to include below (headers folders)
set(INC_FOLDERS
)
include_directories(${INC_FOLDERS})
add_executable(${PROJECT_NAME} ${SRC_FILES})
The missing link
Before we can start including headers from the Vertices SDK, we need to add the library into myproject
:
At the end of myproject/CMakeLists.txt
, append that line:
target_link_libraries(${PROJECT_NAME} vertices)
Now you can include the Vertices header in the main file:
#include "vertices.h" // ready to use the Vertices SDK library
There are still some missing parts that will be covered in the next chapters.
Last updated
Was this helpful?