OpenMiInk/third_party/krita-deps-management/cmake/fixup-shebang-lines.cmake
Hellings b8c8ff98e2 Hi
2026-10-16 09:05:56 -04:00

32 lines
No EOL
1.1 KiB
CMake

if (DEFINED ENV{DESTDIR})
set(DESTDIR $ENV{DESTDIR})
cmake_path(ABSOLUTE_PATH PREFIX NORMALIZE)
cmake_path(ABSOLUTE_PATH DESTDIR NORMALIZE)
cmake_path(GET PREFIX RELATIVE_PART RELATIVE_PREFIX)
# message("prefix ${PREFIX}")
# message("relprefix ${RELATIVE_PREFIX}")
cmake_path(APPEND NEWPREFIX ${DESTDIR} ${RELATIVE_PREFIX})
set(PREFIX ${NEWPREFIX})
# message("finalprefix ${PREFIX}")
endif()
file(GLOB ALL_BINARIES "${PREFIX}/bin/*")
foreach (FILE ${ALL_BINARIES})
file (READ ${FILE} _shebang LIMIT "2")
if (_shebang MATCHES "#!")
file (STRINGS ${FILE} _shebang LIMIT_COUNT "1")
if (_shebang MATCHES "#!.*python[0-9.]*$" AND NOT _shebang MATCHES "#!/usr/bin/env python3$")
message(STATUS "Fixing shebang line in file: ${FILE}")
message(STATUS " \"${_shebang}\" -> \"#!/usr/bin/env python3\"")
file (READ ${FILE} _full_file)
string(REGEX REPLACE "^(#!.*python[0-9.]*)\n" "#!/usr/bin/env python3\n" _out ${_full_file})
file (WRITE ${FILE} ${_out})
endif()
endif()
endforeach()