Pierre Neidhardt writes: > Kei Kebreau writes: > >>> - googletest: this one does not have an option in CMakeList.txt to be >>> used externally. So either we report upstream or we patch the >>> CMakeList.txt. >>> >> >> I see that while CMakeLists.txt doesn't have an external option to >> control this, it *does* look for googletest in the vendor >> directory. Perhaps we can add our own googletest as a native input and >> remove the bundled googletest and CMakeLists.txt's references to it in a >> snippet? > > I have no experience at all with googletest. Do you know how, when and > why to use it? > If so, could you help me with this process? Thanks! I don't have experience with it either, but I did find an interesting way around the issue in the Guix code. (Usually if I have an issue packaging something, I try "grepping" around the existing code to see if someone has already solved a similar problem.) I've attached a patch (based on yours) that covers the method: [...] (snippet '(begin (for-each delete-file-recursively - (find-files "internal" "^tinyxml2-[0-9]" - #:directories? #t)) + '("vendor/github.com/leethomason/tinyxml2" + "vendor/github.com/google/googletest")) #t)))) Here I just remove the tinyxml2 and googletest directories as discussed. [...] ;; Test dependencies. ("expect" ,expect) + ("googletest-source" ,(package-source googletest)) ("perl" ,perl))) (inputs `(("attr" ,attr) As seen in the definition for gnucash, the idea is to extract *our* googletest source code in place of the bundled version. This seems to be the easiest way to deal with replacing googletest in this case rather than completely removing it. [...] + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-googletest + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "vendor/github.com/google/googletest") + (invoke "tar" "xvf" (assoc-ref inputs "googletest-source") + "-C" "vendor/github.com/google/googletest" + "--strip-components=1"))) This phase does the extracting bit. As for the Easylogging++ and google/benchmark replacements, we'd have to start by packaging them. Did this help at all?