/* * version.c - version message utility functions * * Copyright © 2008 Julien Danjou * Copyright © 2008 Hans Ulrich Niedermann * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "config.h" #include "common/version.h" #include "awesome-version-internal.h" #include #include #include #include #include /* for XCB_RANDR_GET_MONITORS */ /** \brief Print version message and quit program. * \param executable program name */ void eprint_version(void) { lua_State *L = luaL_newstate(); luaL_openlibs(L); lua_getglobal(L, "_VERSION"); lua_getglobal(L, "jit"); if (lua_istable(L, 2)) lua_getfield(L, 2, "version"); else lua_pop(L, 1); /* Either push version number or error message onto stack */ (void) luaL_dostring(L, "return require('lgi.version')"); #ifdef WITH_DBUS const char *has_dbus = "✔"; #else const char *has_dbus = "✘"; #endif #ifdef XCB_RANDR_GET_MONITORS const char *has_RandR15 = "✔"; #else const char *has_RandR15 = "✘"; #endif #ifdef HAS_EXECINFO const char *has_execinfo = "✔"; #else const char *has_execinfo = "✘"; #endif printf("awesome %s (%s)\n" " • Compiled against %s (running with %s)\n" " • D-Bus support: %s\n" " • execinfo support: %s\n" " • RandR 1.5 support: %s\n" " • LGI version: %s\n", AWESOME_VERSION, AWESOME_RELEASE, LUA_RELEASE, lua_tostring(L, -2), has_dbus, has_execinfo, has_RandR15, lua_tostring(L, -1)); lua_close(L); exit(EXIT_SUCCESS); } /** Get version string. * \return A string describing the current version. */ const char * awesome_version_string(void) { return AWESOME_VERSION; } /** Get release string. * \return A string describing the code name of the relase. */ const char * awesome_release_string(void) { return AWESOME_RELEASE; } // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80