From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 52FC427409 for ; Thu, 26 Jul 2018 10:39:11 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ugN4ssqb71fh for ; Thu, 26 Jul 2018 10:39:11 -0400 (EDT) Received: from smtp45.i.mail.ru (smtp45.i.mail.ru [94.100.177.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id AFAD8273F4 for ; Thu, 26 Jul 2018 10:39:10 -0400 (EDT) Received: from [185.6.245.156] (port=52838 helo=localhost.localdomain) by smtp45.i.mail.ru with esmtpa (envelope-from ) id 1fihQ5-0007Fd-1r for tarantool-patches@freelists.org; Thu, 26 Jul 2018 17:39:09 +0300 From: Konstantin Belyavskiy Subject: [tarantool-patches] [PATCH] use TarantoolConfig instead of FindTarantool Date: Thu, 26 Jul 2018 17:39:06 +0300 Message-Id: <20180726143906.37863-1-k.belyavskiy@tarantool.org> Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@freelists.org Use TarantoolConfig.cmake instead of FindTarantool.cmake and distribute it within tarantool-dev package. Module, which requires tarantool id its deps now can simply do: find_package(Tarantool CONFIG REQUIRED) and does not obligate to have FindTarantool.cmake any more. Tested with following modules: avro-schema, cbench Proposal for #3147 --- Ticket: https://github.com/tarantool/tarantool/issues/3147 Branch: https://github.com/tarantool/tarantool/tree/kbelyavs/gh-3147-use-tarantoolconfig-instead-findtarantool CMakeLists.txt | 1 + TarantoolConfig.cmake | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 TarantoolConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d0cae0f01..f3f002f86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,6 +218,7 @@ set(MODULE_LIBSUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") install(DIRECTORY DESTINATION ${MODULE_LUADIR}) install(DIRECTORY DESTINATION ${MODULE_LIBDIR}) +install(FILES TarantoolConfig.cmake DESTINATION cmake) include(cmake/multilib.cmake) diff --git a/TarantoolConfig.cmake b/TarantoolConfig.cmake new file mode 100644 index 000000000..f0595c5c3 --- /dev/null +++ b/TarantoolConfig.cmake @@ -0,0 +1,44 @@ +# Define GNU standard installation directories +include(GNUInstallDirs) + +macro(extract_definition name output input) + string(REGEX MATCH "#define[\t ]+${name}[\t ]+\"([^\"]*)\"" + _t "${input}") + string(REGEX REPLACE "#define[\t ]+${name}[\t ]+\"(.*)\"" "\\1" + ${output} "${_t}") +endmacro() + +find_path(TARANTOOL_INCLUDE_DIR tarantool/module.h + HINTS ENV TARANTOOL_DIR /usr/local/include +) + +if(TARANTOOL_INCLUDE_DIR) + set(_config "-") + file(READ "${TARANTOOL_INCLUDE_DIR}/tarantool/module.h" _config0) + string(REPLACE "\\" "\\\\" _config ${_config0}) + unset(_config0) + extract_definition(PACKAGE_VERSION TARANTOOL_VERSION ${_config}) + extract_definition(INSTALL_PREFIX _install_prefix ${_config}) + unset(_config) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(TARANTOOL + REQUIRED_VARS TARANTOOL_INCLUDE_DIR VERSION_VAR TARANTOOL_VERSION) +if(TARANTOOL_FOUND) + set(TARANTOOL_INCLUDE_DIRS "${TARANTOOL_INCLUDE_DIR}" + "${TARANTOOL_INCLUDE_DIR}/tarantool/" + CACHE PATH "Include directories for Tarantool") + set(TARANTOOL_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/tarantool" + CACHE PATH "Directory for storing Lua modules written in Lua") + set(TARANTOOL_INSTALL_LUADIR "${CMAKE_INSTALL_DATADIR}/tarantool" + CACHE PATH "Directory for storing Lua modules written in C") + + if (NOT TARANTOOL_FIND_QUIETLY AND NOT FIND_TARANTOOL_DETAILS) + set(FIND_TARANTOOL_DETAILS ON CACHE INTERNAL "Details about TARANTOOL") + message(STATUS "Tarantool LUADIR is ${TARANTOOL_INSTALL_LUADIR}") + message(STATUS "Tarantool LIBDIR is ${TARANTOOL_INSTALL_LIBDIR}") + endif () +endif() +mark_as_advanced(TARANTOOL_INCLUDE_DIRS TARANTOOL_INSTALL_LIBDIR + TARANTOOL_INSTALL_LUADIR) -- 2.14.3 (Apple Git-98)