diff --git a/CMakeLists.txt b/CMakeLists.txt index 675fb74..16a8022 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,4 @@ # Mainspring project CMakeLists.txt - cmake_minimum_required(VERSION 3.20) project(mainspring) diff --git a/Mainspring/CMakeLists.txt b/Mainspring/CMakeLists.txt index 50f207f..6d32ba6 100644 --- a/Mainspring/CMakeLists.txt +++ b/Mainspring/CMakeLists.txt @@ -1,5 +1,4 @@ # Mainspring app CMakeLists.txt - add_executable(Mainspring WIN32 "src/Mainspring.cpp") set_property(TARGET Mainspring PROPERTY CXX_STANDARD 20) @@ -8,4 +7,9 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /entry:mainCRTStartup") if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") set_property(TARGET Mainspring PROPERTY WIN32_EXECUTABLE FALSE) -endif() \ No newline at end of file +endif() + +find_package(Git) +execute_process(COMMAND ${GIT_EXECUTABLE} describe OUTPUT_VARIABLE MAINSPRING_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) +configure_file(src/version.h.in version.h) +target_include_directories(Mainspring PUBLIC "${PROJECT_BINARY_DIR}/Mainspring") \ No newline at end of file diff --git a/Mainspring/src/Mainspring.cpp b/Mainspring/src/Mainspring.cpp index a4569cd..74c1f61 100644 --- a/Mainspring/src/Mainspring.cpp +++ b/Mainspring/src/Mainspring.cpp @@ -1,9 +1,11 @@ // Mainspring main file - #include +#include + +#include "version.h" int main(int argc, char* argv[]) { - std::cout << "Mainspring\n"; + std::cout << std::format("Mainspring {}\n", MAINSPRING_VERSION); std::cin.get(); return EXIT_SUCCESS; diff --git a/Mainspring/src/version.h.in b/Mainspring/src/version.h.in new file mode 100644 index 0000000..e95c487 --- /dev/null +++ b/Mainspring/src/version.h.in @@ -0,0 +1,2 @@ +// Version configured header file +#define MAINSPRING_VERSION "@MAINSPRING_VERSION@" \ No newline at end of file