gnu: rtags: Fix the bundling issue.
* gnu/packages/patches/rtags-separate-rct.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/code.scm (rtags): Dependencies no longer bundled. [source]: Use tarball release. Use the patch to link rct. Substitute corresponding headers. [native-inputs]: Add new dependencies. [inputs]: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
a893dc2f48
commit
457fc22dd3
|
@ -1067,6 +1067,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/rsync-CVE-2017-17433-fix-tests.patch \
|
%D%/packages/patches/rsync-CVE-2017-17433-fix-tests.patch \
|
||||||
%D%/packages/patches/rsync-CVE-2017-17434-pt1.patch \
|
%D%/packages/patches/rsync-CVE-2017-17434-pt1.patch \
|
||||||
%D%/packages/patches/rsync-CVE-2017-17434-pt2.patch \
|
%D%/packages/patches/rsync-CVE-2017-17434-pt2.patch \
|
||||||
|
%D%/packages/patches/rtags-separate-rct.patch \
|
||||||
%D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \
|
%D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \
|
||||||
%D%/packages/patches/ruby-concurrent-test-arm.patch \
|
%D%/packages/patches/ruby-concurrent-test-arm.patch \
|
||||||
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
|
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
(define-module (gnu packages code)
|
(define-module (gnu packages code)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download)
|
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages cpp)
|
||||||
#:use-module (gnu packages databases)
|
#:use-module (gnu packages databases)
|
||||||
#:use-module (gnu packages emacs)
|
#:use-module (gnu packages emacs)
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
|
@ -43,6 +44,7 @@
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages llvm)
|
#:use-module (gnu packages llvm)
|
||||||
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages bash))
|
#:use-module (gnu packages bash))
|
||||||
|
|
||||||
;;; Tools to deal with source code: metrics, cross-references, etc.
|
;;; Tools to deal with source code: metrics, cross-references, etc.
|
||||||
|
@ -393,28 +395,43 @@ functionality such as HTML output.")
|
||||||
(name "rtags")
|
(name "rtags")
|
||||||
(version "2.16")
|
(version "2.16")
|
||||||
(home-page "https://github.com/Andersbakken/rtags")
|
(home-page "https://github.com/Andersbakken/rtags")
|
||||||
(source (origin
|
(source
|
||||||
(method git-fetch)
|
(origin
|
||||||
(uri (git-reference
|
(method url-fetch)
|
||||||
(url home-page)
|
(uri
|
||||||
(commit "8ef7554852541eced514c56d5e39d6073f7a2ef9")
|
(string-append home-page "/archive/v" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
;; FIXME: This fetches bundled copies of Lua, RCT, and
|
(patches (search-patches "rtags-separate-rct.patch"))
|
||||||
;; Selene.
|
(modules '((guix build utils)))
|
||||||
(recursive? #t)))
|
(snippet
|
||||||
(sha256
|
;; Part of spliting rct with rtags.
|
||||||
(base32
|
;; Substitute #include "rct/header.h" with #include <rct/header.h>.
|
||||||
"12r7lsqdmcbs9864a6dpblvifqvmfxhvxippyhfnnm2ai5ra80nc"))
|
'(with-directory-excursion "src"
|
||||||
(file-name (git-file-name name version))))
|
(delete-file-recursively "rct") ;remove bundled copy
|
||||||
|
(let ((files (find-files "." ".*\\.cpp|.*\\.h")))
|
||||||
|
(substitute* files
|
||||||
|
(("#include ?\"rct/(.*.h)\"" all header)
|
||||||
|
(string-append "#include <rct/" header ">"))))))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"17rkci3mmiw93qc32b9x76pg57b0lx80avr6wnmh190jx8n3v3wy"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags '("-DBUILD_TESTING=FALSE"
|
'(#:configure-flags
|
||||||
"-DRTAGS_NO_ELISP_FILES=1")
|
'("-DRTAGS_NO_ELISP_FILES=1"
|
||||||
|
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
|
||||||
|
"-DCMAKE_CXX_FLAGS=-std=c++11"
|
||||||
|
"-DBUILD_TESTING=FALSE")
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("clang" ,clang)
|
`(("bash-completion" ,bash-completion)
|
||||||
|
("clang" ,clang)
|
||||||
("llvm" ,llvm)
|
("llvm" ,llvm)
|
||||||
("bash-completion" ,bash-completion)))
|
("lua" ,lua)
|
||||||
|
("rct" ,rct)
|
||||||
|
("selene" ,selene)))
|
||||||
(synopsis "Indexer for the C language family with Emacs integration")
|
(synopsis "Indexer for the C language family with Emacs integration")
|
||||||
(description
|
(description
|
||||||
"RTags is a client/server application that indexes C/C++ code and keeps a
|
"RTags is a client/server application that indexes C/C++ code and keeps a
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
Unbundle RCT and use our own copy.
|
||||||
|
|
||||||
|
--- rtags-2.16/src/CMakeLists.txt 2018-01-23 10:36:17.645855140 +0100
|
||||||
|
+++ rtags-2.16/src/CMakeLists.txt 2018-01-23 10:38:14.605234740 +0100
|
||||||
|
@@ -105,12 +105,6 @@ if (LUA_ENABLED)
|
||||||
|
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
-set(RCT_RTTI_ENABLED 1)
|
||||||
|
-set(RCT_NO_INSTALL 1)
|
||||||
|
-set(RCT_NO_LIBRARY 1)
|
||||||
|
-# Everyting which as been set either in rct/rct.cmake or rct/compiler.cmake
|
||||||
|
-# doesn't need to be set in this file again.
|
||||||
|
-include(rct/rct.cmake)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wstrict-aliasing=2 -Wcast-qual -fPIC")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-aliasing=2 -Wcast-qual -fPIC")
|
||||||
|
@@ -128,8 +122,7 @@ add_definitions(
|
||||||
|
"-DRTAGS_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
|
"-DCLANG_LIBDIR=${LIBCLANG_LIBDIR}"
|
||||||
|
"-DCLANG_VERSION=${LIBCLANG_VERSION_STRING}"
|
||||||
|
- "-DOS_${CMAKE_SYSTEM_NAME}"
|
||||||
|
- ${RCT_DEFINITIONS})
|
||||||
|
+ "-DOS_${CMAKE_SYSTEM_NAME}")
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||||
|
add_definitions(-D__LONG_LONG_SUPPORTED)
|
||||||
|
@@ -172,8 +165,7 @@ set(RTAGS_SOURCES
|
||||||
|
Symbol.cpp
|
||||||
|
SymbolInfoJob.cpp
|
||||||
|
Token.cpp
|
||||||
|
- TokensJob.cpp
|
||||||
|
- ${RCT_SOURCES})
|
||||||
|
+ TokensJob.cpp)
|
||||||
|
|
||||||
|
if (LUA_ENABLED)
|
||||||
|
list(APPEND RTAGS_SOURCES AST.cpp)
|
||||||
|
@@ -195,10 +187,10 @@ endif ()
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}
|
||||||
|
- ${RCT_INCLUDE_DIRS}
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/selene/include
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/lua-prefix/src/lua-build
|
||||||
|
- ${CMAKE_CURRENT_LIST_DIR}/lua/src)
|
||||||
|
+ ${CMAKE_CURRENT_LIST_DIR}/lua/src
|
||||||
|
+ ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
set(START_GROUP "")
|
||||||
|
@@ -223,17 +215,17 @@ else ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# RCT_LIBRARIES and stdc++ library must be at the end
|
||||||
|
-set(RTAGS_LIBRARIES ${RTAGS_LIBRARIES} -lstdc++ ${RCT_LIBRARIES})
|
||||||
|
+set(RTAGS_LIBRARIES ${RTAGS_LIBRARIES} -lstdc++)
|
||||||
|
add_executable(rc rc.cpp)
|
||||||
|
-target_link_libraries(rc ${RTAGS_LIBRARIES})
|
||||||
|
+target_link_libraries(rc ${RTAGS_LIBRARIES} rct)
|
||||||
|
|
||||||
|
add_executable(rdm rdm.cpp)
|
||||||
|
-target_link_libraries(rdm ${RTAGS_LIBRARIES})
|
||||||
|
+target_link_libraries(rdm ${RTAGS_LIBRARIES} rct)
|
||||||
|
|
||||||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||||||
|
|
||||||
|
add_executable(rp rp.cpp)
|
||||||
|
-target_link_libraries(rp ${RTAGS_LIBRARIES})
|
||||||
|
+target_link_libraries(rp ${RTAGS_LIBRARIES} rct)
|
||||||
|
|
||||||
|
if (CYGWIN)
|
||||||
|
EnsureLibraries(rdm rct)
|
Loading…
Reference in New Issue