From 111617243a1a177c3d2138d33b75cbe444254b34 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Mon, 2 Dec 2019 10:33:02 +0100 Subject: [PATCH] move version related content to a dedicated file --- MANIFEST.in | 1 + src/simgrid/sg_version.cpp | 90 ++++++++++++++++++++++++++++++++ src/surf/surf_interface.cpp | 75 -------------------------- tools/cmake/DefinePackages.cmake | 1 + 4 files changed, 92 insertions(+), 75 deletions(-) create mode 100644 src/simgrid/sg_version.cpp diff --git a/MANIFEST.in b/MANIFEST.in index 44ff73112f..a10ada120d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2308,6 +2308,7 @@ include src/simdag/sd_task.cpp include src/simdag/simdag_private.hpp include src/simgrid/Exception.cpp include src/simgrid/sg_config.cpp +include src/simgrid/sg_version.cpp include src/simgrid/util.hpp include src/simgrid/version.h.in include src/simix/libsmx.cpp diff --git a/src/simgrid/sg_version.cpp b/src/simgrid/sg_version.cpp new file mode 100644 index 0000000000..c538272838 --- /dev/null +++ b/src/simgrid/sg_version.cpp @@ -0,0 +1,90 @@ +/* Copyright (c) 2019. The SimGrid Team. All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ +#include "simgrid/config.h" +#include "src/simgrid/version.h" +#include "xbt/base.h" +#include "xbt/log.h" +#include "xbt/misc.h" +#include "xbt/sysdep.h" + +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sg_version, surf, "About the versioning of SimGrid"); + +void sg_version_check(int lib_version_major, int lib_version_minor, int lib_version_patch) +{ + if ((lib_version_major != SIMGRID_VERSION_MAJOR) || (lib_version_minor != SIMGRID_VERSION_MINOR)) { + fprintf(stderr, + "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, " + "and then linked against SimGrid %d.%d.%d. Please fix this.\n", + lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, + SIMGRID_VERSION_PATCH); + abort(); + } + if (lib_version_patch != SIMGRID_VERSION_PATCH) { + if (SIMGRID_VERSION_PATCH > 89 || lib_version_patch > 89) { + fprintf( + stderr, + "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, " + "and then linked against SimGrid %d.%d.%d. \n" + "One of them is a development version, and should not be mixed with the stable release. Please fix this.\n", + lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, + SIMGRID_VERSION_PATCH); + abort(); + } + fprintf(stderr, + "Warning: Your program was compiled with SimGrid version %d.%d.%d, " + "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n", + lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, + SIMGRID_VERSION_PATCH); + } +} + +void sg_version_get(int* ver_major, int* ver_minor, int* ver_patch) +{ + *ver_major = SIMGRID_VERSION_MAJOR; + *ver_minor = SIMGRID_VERSION_MINOR; + *ver_patch = SIMGRID_VERSION_PATCH; +} + +void sg_version() +{ + XBT_HELP("This program was linked against %s (git: %s), found in %s.", SIMGRID_VERSION_STRING, SIMGRID_GIT_VERSION, + SIMGRID_INSTALL_PREFIX); + +#if SIMGRID_HAVE_MC + XBT_HELP(" Model-checking support compiled in."); +#else + XBT_HELP(" Model-checking support disabled at compilation."); +#endif + +#if SIMGRID_HAVE_NS3 + XBT_HELP(" ns-3 support compiled in."); +#else + XBT_HELP(" ns-3 support disabled at compilation."); +#endif + +#if SIMGRID_HAVE_JEDULE + XBT_HELP(" Jedule support compiled in."); +#else + XBT_HELP(" Jedule support disabled at compilation."); +#endif + +#if SIMGRID_HAVE_LUA + XBT_HELP(" Lua support compiled in."); +#else + XBT_HELP(" Lua support disabled at compilation."); +#endif + +#if SIMGRID_HAVE_MALLOCATOR + XBT_HELP(" Mallocator support compiled in."); +#else + XBT_HELP(" Mallocator support disabled at compilation."); +#endif + + XBT_HELP("\nTo cite SimGrid in a publication, please use:\n" + " Henri Casanova, Arnaud Giersch, Arnaud Legrand, Martin Quinson, Frédéric Suter. \n" + " Versatile, Scalable, and Accurate Simulation of Distributed Applications and Platforms. \n" + " Journal of Parallel and Distributed Computing, Elsevier, 2014, 74 (10), pp.2899-2917.\n" + "The pdf file and a BibTeX entry for LaTeX users can be found at http://hal.inria.fr/hal-01017319"); +} diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index 3f3dc80b45..d1418195de 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -214,81 +214,6 @@ int find_model_description(const std::vector& table, c return -1; } -void sg_version_check(int lib_version_major, int lib_version_minor, int lib_version_patch) -{ - if ((lib_version_major != SIMGRID_VERSION_MAJOR) || (lib_version_minor != SIMGRID_VERSION_MINOR)) { - fprintf(stderr, "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, " - "and then linked against SimGrid %d.%d.%d. Please fix this.\n", - lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, - SIMGRID_VERSION_PATCH); - abort(); - } - if (lib_version_patch != SIMGRID_VERSION_PATCH) { - if (SIMGRID_VERSION_PATCH > 89 || lib_version_patch > 89) { - fprintf( - stderr, - "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, " - "and then linked against SimGrid %d.%d.%d. \n" - "One of them is a development version, and should not be mixed with the stable release. Please fix this.\n", - lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, - SIMGRID_VERSION_PATCH); - abort(); - } - fprintf(stderr, "Warning: Your program was compiled with SimGrid version %d.%d.%d, " - "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n", - lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, - SIMGRID_VERSION_PATCH); - } -} - -void sg_version_get(int* ver_major, int* ver_minor, int* ver_patch) -{ - *ver_major = SIMGRID_VERSION_MAJOR; - *ver_minor = SIMGRID_VERSION_MINOR; - *ver_patch = SIMGRID_VERSION_PATCH; -} - -void sg_version() -{ - XBT_HELP("This program was linked against %s (git: %s), found in %s.", SIMGRID_VERSION_STRING, SIMGRID_GIT_VERSION, - SIMGRID_INSTALL_PREFIX); - -#if SIMGRID_HAVE_MC - XBT_HELP(" Model-checking support compiled in."); -#else - XBT_HELP(" Model-checking support disabled at compilation."); -#endif - -#if SIMGRID_HAVE_NS3 - XBT_HELP(" ns-3 support compiled in."); -#else - XBT_HELP(" ns-3 support disabled at compilation."); -#endif - -#if SIMGRID_HAVE_JEDULE - XBT_HELP(" Jedule support compiled in."); -#else - XBT_HELP(" Jedule support disabled at compilation."); -#endif - -#if SIMGRID_HAVE_LUA - XBT_HELP(" Lua support compiled in."); -#else - XBT_HELP(" Lua support disabled at compilation."); -#endif - -#if SIMGRID_HAVE_MALLOCATOR - XBT_HELP(" Mallocator support compiled in."); -#else - XBT_HELP(" Mallocator support disabled at compilation."); -#endif - - XBT_HELP("\nTo cite SimGrid in a publication, please use:\n" - " Henri Casanova, Arnaud Giersch, Arnaud Legrand, Martin Quinson, Frédéric Suter. \n" - " Versatile, Scalable, and Accurate Simulation of Distributed Applications and Platforms. \n" - " Journal of Parallel and Distributed Computing, Elsevier, 2014, 74 (10), pp.2899-2917.\n" - "The pdf file and a BibTeX entry for LaTeX users can be found at http://hal.inria.fr/hal-01017319"); -} void surf_init(int *argc, char **argv) { diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index bbafaa5880..e945950c10 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -461,6 +461,7 @@ set(S4U_SRC set(SIMGRID_SRC src/simgrid/Exception.cpp src/simgrid/sg_config.cpp + src/simgrid/sg_version.cpp src/simgrid/util.hpp ) -- 2.20.1