diff --git a/CMakeLists.txt b/CMakeLists.txt index f265ff9..66ae85e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,12 +17,29 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE} include_directories(3rd) include_directories(.) +include_directories(build) add_subdirectory(ofen) add_subdirectory(net) add_subdirectory(util) add_subdirectory(server) add_subdirectory(client) +string(TIMESTAMP VERSION_BUILD_DATE "%Y-%m-%d %H:%M") +execute_process( + COMMAND git rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE VERSION_GIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND git rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE VERSION_GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE +) +configure_file(version.h.in version.h) +message(STATUS "build dir:${PROJECT_BINARY_DIR}") + # add_executable(transm_test1 test1.cpp) # target_link_libraries(transm_test1 PRIVATE trans_net trans_util) # add_executable(transm_test2 test2.cpp) diff --git a/client/main.cpp b/client/main.cpp index 28b317b..9bd006d 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -1,4 +1,5 @@ #include "client.h" +#include "version.h" #include #include #include @@ -46,6 +47,8 @@ int main(int argc, char* argv[]) { auto log_path = ofen::COfPath::to_full("client.log"); g_Logger = get_logger("client", log_path); + g_Logger->info("Configure At {} under {} on {}", VERSION_BUILD_DATE, VERSION_GIT_HASH, + VERSION_GIT_BRANCH); TransmSet set; if (!read_ini(set)) { return -1; diff --git a/server/main.cpp b/server/main.cpp index 3a2db2f..a00e450 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -1,16 +1,17 @@ #include "server.h" +#include "version.h" #include std::shared_ptr g_Logger = nullptr; int main(int argc, char* argv[]) { g_Logger = get_logger("server", "server.log"); - + g_Logger->info("Configure At {} under {} on {}", VERSION_BUILD_DATE, VERSION_GIT_HASH, + VERSION_GIT_BRANCH); int port = 9898; if (argc < 2) { g_Logger->info("Use Default Port:{}", port); - } - else { + } else { std::string str_port(argv[1]); port = std::stoi(str_port); g_Logger->info("Use Port:{}", port); diff --git a/version.h.in b/version.h.in new file mode 100644 index 0000000..ece5211 --- /dev/null +++ b/version.h.in @@ -0,0 +1,8 @@ +#ifndef VERSION_H +#define VERSION_H + +#define VERSION_BUILD_DATE "@VERSION_BUILD_DATE@" +#define VERSION_GIT_HASH "@VERSION_GIT_HASH@" +#define VERSION_GIT_BRANCH "@VERSION_GIT_BRANCH@" + +#endif