From 84844eeab2c19f76067626f642ccb69efb73500d Mon Sep 17 00:00:00 2001 From: Arti Zirk Date: Mon, 12 Jul 2021 17:22:42 +0300 Subject: [PATCH] Init --- .gitignore | 1 + CMakeLists.txt | 19 +++++++++++++++++++ CMakePresets.json | 23 +++++++++++++++++++++++ README.md | 9 +++++++++ alib/CMakeLists.txt | 7 +++++++ alib/calc.c | 5 +++++ alib/calc.h | 1 + config.h.in | 3 +++ main.c | 9 +++++++++ 9 files changed, 77 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 CMakePresets.json create mode 100644 README.md create mode 100644 alib/CMakeLists.txt create mode 100644 alib/calc.c create mode 100644 alib/calc.h create mode 100644 config.h.in create mode 100644 main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b6a2d68 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.10) + +project(Hello VERSION 1.0) + +# add a lib +add_subdirectory(alib) + +add_executable(Hello main.c) + +target_link_libraries(Hello PUBLIC alib) + +# Version number thing +configure_file(config.h.in config.h) +target_include_directories(Hello PUBLIC + ${PROJECT_BINARY_DIR} +) + +install(TARGETS Hello DESTINATION bin) +install(FILES ${PROJECT_BINARY_DIR}/config.h DESTINATION include) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..8b1fbfe --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,23 @@ +{ + "version": 2, + "cmakeMinimumRequired": { + "major": 3, + "minor": 10, + "patch": 0 + }, + "configurePresets": [ + { + "name": "default", + "displayName": "Default Config", + "description": "Default build using Ninja generator", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build/default" + } + ], + "buildPresets": [ + { + "name": "default", + "configurePreset": "default" + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..42543b8 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# build + +Use preset from `CMakePresets.json` + + cmake -S . --preset=default + +And then build + + cmake --build build/default diff --git a/alib/CMakeLists.txt b/alib/CMakeLists.txt new file mode 100644 index 0000000..facac6d --- /dev/null +++ b/alib/CMakeLists.txt @@ -0,0 +1,7 @@ +add_library(alib calc.c) +target_include_directories(alib + INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} +) + +install(TARGETS alib DESTINATION lib) +install(FILES calc.h DESTINATION include) diff --git a/alib/calc.c b/alib/calc.c new file mode 100644 index 0000000..03c46cc --- /dev/null +++ b/alib/calc.c @@ -0,0 +1,5 @@ +#include "calc.h" + +int docalc() { + return 2; +} diff --git a/alib/calc.h b/alib/calc.h new file mode 100644 index 0000000..b84f0d2 --- /dev/null +++ b/alib/calc.h @@ -0,0 +1 @@ +int docalc(); diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..05dc4a8 --- /dev/null +++ b/config.h.in @@ -0,0 +1,3 @@ +// the configured options and settings for Hello +#define Hello_VERSION_MAJOR @Hello_VERSION_MAJOR@ +#define Hello_VERSION_MINOR @Hello_VERSION_MINOR@ diff --git a/main.c b/main.c new file mode 100644 index 0000000..b44e8e9 --- /dev/null +++ b/main.c @@ -0,0 +1,9 @@ +#include +#include "config.h" +#include "calc.h" + +int main() { + printf("Version: %d.%d\n", Hello_VERSION_MAJOR, Hello_VERSION_MINOR); + printf("Hello World; %d\n", docalc()); + return 0; +}