gnu: powertabeditor: Enable tests.

* gnu/packages/music.scm (powertabeditor)[arguments]: Run "pte_tests" in
  "check" phase; add phase "fix-tests".
This commit is contained in:
Ricardo Wurmus 2015-07-04 11:11:19 +02:00
parent 9884d7ec8e
commit 7e11d11355
1 changed files with 18 additions and 7 deletions

View File

@ -323,9 +323,6 @@ your own lessons.")
(delete-file-recursively "external") (delete-file-recursively "external")
(substitute* "CMakeLists.txt" (substitute* "CMakeLists.txt"
(("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "") (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "")
;; TODO: tests cannot be built:
;; test/test_main.cpp:28:12: error: Session is not a member of Catch
(("add_subdirectory\\(test\\)") "")
(("add_subdirectory\\(external\\)") "")) (("add_subdirectory\\(external\\)") ""))
(substitute* "test/CMakeLists.txt" (substitute* "test/CMakeLists.txt"
(("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "")) (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") ""))
@ -342,20 +339,34 @@ your own lessons.")
#t)))) #t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:modules ((guix build cmake-build-system)
#:modules ((guix build cmake-build-system)
(guix build utils) (guix build utils)
(ice-9 match)) (ice-9 match))
#:configure-flags #:configure-flags
;; CMake appears to lose the RUNPATH for some reason, so it has to be ;; CMake appears to lose the RUNPATH for some reason, so it has to be
;; explicitly set with CMAKE_INSTALL_RPATH. ;; explicitly set with CMAKE_INSTALL_RPATH.
(list (string-append "-DCMAKE_INSTALL_RPATH=" (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DCMAKE_ENABLE_PRECOMPILED_HEADERS=OFF" ; if ON pte_tests cannot be built
(string-append "-DCMAKE_INSTALL_RPATH="
(string-join (map (match-lambda (string-join (map (match-lambda
((name . directory) ((name . directory)
(string-append directory "/lib"))) (string-append directory "/lib")))
%build-inputs) ";"))) %build-inputs) ";")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace
'check
(lambda _
(zero? (system* "bin/pte_tests"
;; Exclude this failing test
"~Formats/PowerTabOldImport/Directions"))))
(add-before
'configure 'fix-tests
(lambda _
;; Tests cannot be built with precompiled headers
(substitute* "test/CMakeLists.txt"
(("cotire\\(pte_tests\\)") ""))
#t))
(add-before (add-before
'configure 'remove-third-party-libs 'configure 'remove-third-party-libs
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -363,7 +374,7 @@ your own lessons.")
;; using the bundled version of withershins. ;; using the bundled version of withershins.
(substitute* '("source/CMakeLists.txt" (substitute* '("source/CMakeLists.txt"
"test/CMakeLists.txt") "test/CMakeLists.txt")
(("target_link_libraries\\((powertabeditor)" _ target) (("target_link_libraries\\((powertabeditor|pte_tests)" _ target)
(string-append "target_link_libraries(" target " " (string-append "target_link_libraries(" target " "
(assoc-ref inputs "binutils") (assoc-ref inputs "binutils")
"/lib/libbfd.a " "/lib/libbfd.a "