# HG changeset patch # User Myhailo Danylenko # Date 1415902701 -7200 # Node ID 32bebcf6bbbdb58966e12575b2c86fb487b98aea # Parent 6de25ac5876c3431552ef599b4323bc40d58cf04 [avv] Dynamic commands dependencies diff -r 6de25ac5876c -r 32bebcf6bbbd CMakeLists.txt --- a/CMakeLists.txt Thu Nov 13 20:17:46 2014 +0200 +++ b/CMakeLists.txt Thu Nov 13 20:18:21 2014 +0200 @@ -24,6 +24,11 @@ find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB REQUIRED glib-2.0) pkg_check_modules(MCABBER REQUIRED mcabber) +include(CheckSymbolExists) +set(CMAKE_REQUIRED_INCLUDES ${MCABBER_INCLUDE_DIRS}) +set(CMAKE_REQUIRED_LIBRARIES ${MCABBER_LIBRARIES}) +set(CMAKE_REQUIRED_FLAGS ${MCABBER_LDFLAGS} ${MCABBER_CFLAGS}) +check_symbol_exists(MCABBER_API_HAVE_CMD_ID mcabber/api.h HAVE_MCABBER_CMD_ID) link_directories(${GLIB_LIBRARY_DIRS} ${MCABBER_LIBRARY_DIRS}) @@ -60,6 +65,11 @@ set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so") include(CPack) +if(HAVE_MCABBER_CMD_ID) + set(AVV_COMMANDS_VERSION "commands:5 | commands:4 | commands:3") +else() + set(AVV_COMMANDS_VERSION "commands:2 | commands:1") +endif() configure_file(env.avv.in env.avv) ## Installation @@ -68,4 +78,4 @@ install(DIRECTORY help DESTINATION share/mcabber) install(FILES ${PROJECT_BINARY_DIR}/env.avv DESTINATION share/mcabber/avv/modules RENAME env) -## The End ## vim: se ts=4: ## +## The End ## vim: se ts=4 sw=4: ## diff -r 6de25ac5876c -r 32bebcf6bbbd config.h.in --- a/config.h.in Thu Nov 13 20:17:46 2014 +0200 +++ b/config.h.in Thu Nov 13 20:18:21 2014 +0200 @@ -2,6 +2,8 @@ #ifndef LOCAL_CONFIG_H #define LOCAL_CONFIG_H +#cmakedefine HAVE_MCABBER_CMD_ID @HAVE_MCABBER_CMD_ID@ + #define PROJECT_VERSION ( "${PROJECT_VERSION}" ) #endif diff -r 6de25ac5876c -r 32bebcf6bbbd env.avv.in --- a/env.avv.in Thu Nov 13 20:17:46 2014 +0200 +++ b/env.avv.in Thu Nov 13 20:18:21 2014 +0200 @@ -3,10 +3,9 @@ Method: glib Version: ${PROJECT_VERSION} Description: ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} -# commands depend on building environment: 4, 3, 2+1 -# in fact, depends on completion constant COMPL_FILENAME (3, 2+1), -# but as it is anyway disfunctional as of now, do not include it here -Requires: commands:4 + logprint:3 +# in fact, depends on completion constant COMPL_FILENAME (5+4+3, 2+1), +# but as it is anyway dysfunctional as of now, do not include it here +Requires: ( ${AVV_COMMANDS_VERSION} ) + logprint:3 Init: env_load Uninit: env_unload diff -r 6de25ac5876c -r 32bebcf6bbbd env.c --- a/env.c Thu Nov 13 20:17:46 2014 +0200 +++ b/env.c Thu Nov 13 20:18:21 2014 +0200 @@ -25,10 +25,10 @@ #include #include -#include -#include -#include -#include +#include // cmd_add (), cmd_del (), cmd_set_safe () +#include // COMPL_FILENAME +#include // scr_log_print () +#include // module_info_t #include "config.h" @@ -48,7 +48,7 @@ .next = NULL, }; -#ifdef MCABBER_API_HAVE_CMD_ID +#ifdef HAVE_MCABBER_CMD_ID static gpointer env_env_cmid = NULL; static gpointer env_cd_cmid = NULL; static gboolean env_env_set_safe = FALSE; @@ -158,7 +158,7 @@ void env_load (void) { // command -#ifndef MCABBER_API_HAVE_CMD_ID +#ifndef HAVE_MCABBER_CMD_ID cmd_add ("env", "", 0, 0, do_env, NULL); cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); #else @@ -172,7 +172,7 @@ void env_unload (void) { // command -#ifndef MCABBER_API_HAVE_CMD_ID +#ifndef HAVE_MCABBER_CMD_ID cmd_del ("cd"); cmd_del ("env"); #else