]> git.ipfire.org Git - thirdparty/git.git/commitdiff
cmake: put the Perl modules into the correct location again
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 17 Dec 2024 17:32:00 +0000 (17:32 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Dec 2024 20:48:54 +0000 (12:48 -0800)
In ccfba9e0c45 (Makefile: use "generate-perl.sh" to massage Perl
library, 2024-12-06), the previous strategy (which avoided spawning a
shell script to transform the files) was replaced by the same
`generate-perl.sh` invocation as for the Makefile-based build.

The only difference is that now the transformation tries to handle the
Perl modules in-place (which ends up in empty files because the same
file is used as input and output via stdin/stdout redirection), and the
Perl script cannot find them anymore because they are not in the
expected place.

Let's put them into the expected place again, i.e. into
`perl/build/lib/` instead of `perl/`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/buildsystems/CMakeLists.txt

index 6f35cd66f39c857624eecc9546fb8c6c63e824d7..36f18ab2dd13deea609811b550e844ed5a8eac9a 100644 (file)
@@ -882,6 +882,10 @@ foreach(script ${git_perl_scripts} ${perl_modules})
        string(REPLACE ".perl" "" perl_gen_path "${script}")
 
        get_filename_component(perl_gen_dir "${perl_gen_path}" DIRECTORY)
+       if(script MATCHES "\.pm$")
+               string(REGEX REPLACE "^perl" "perl/build/lib" perl_gen_dir "${perl_gen_dir}")
+               string(REGEX REPLACE "^perl" "perl/build/lib" perl_gen_path "${perl_gen_path}")
+       endif()
        file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${perl_gen_dir}")
 
        add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/${perl_gen_path}"