# SPDX-FileCopyrightText: 2026 Christian Tosta # SPDX-License-Identifier: GPL-2.0-or-later # # @file CMakeLists.txt # @brief Main CMake configuration for multi-distribution pyenv packaging. cmake_minimum_required(VERSION 3.24) project(pyenv-packaging NONE) file(READ "${CMAKE_CURRENT_SOURCE_DIR}/metadata.json" METADATA_JSON) string(JSON PYENV_VERSION GET ${METADATA_JSON} "version") string(JSON PYENV_URL GET ${METADATA_JSON} "source_url") string(REPLACE "\${self.version}" "${PYENV_VERSION}" PYENV_URL "${PYENV_URL}") include(ExternalProject) ExternalProject_Add(pyenv_upstream URL ${PYENV_URL} DOWNLOAD_EXTRACT_TIMESTAMP TRUE CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" PATCH_COMMAND sh -c "find \\( -name .git\\* \\) -exec rm -rf {} +" ) set(PYENV_SRC_UPSTREAM "${CMAKE_CURRENT_BINARY_DIR}/pyenv_upstream-prefix/src/pyenv_upstream") set(PYENV_SRC "${CMAKE_CURRENT_SOURCE_DIR}/pyenv") add_custom_target(merge_upstream ALL COMMAND ${CMAKE_COMMAND} -E copy_directory "${PYENV_SRC_UPSTREAM}" "${PYENV_SRC}" DEPENDS pyenv_upstream ) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPackRules.cmake) install(DIRECTORY ${PYENV_SRC}/bin ${PYENV_SRC}/libexec ${PYENV_SRC}/plugins ${PYENV_SRC}/pyenv.d DESTINATION ${PACKAGE_PREFIX}/share/pyenv) install(DIRECTORY ${PYENV_SRC}/man DESTINATION ${PACKAGE_PREFIX}/share) install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${PACKAGE_PREFIX}/share/pyenv/versions\")") install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${PACKAGE_PREFIX}/share/pyenv/shims\")") install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${PACKAGE_PREFIX}/share/pyenv/hooks\")") install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pyenv.sh" DESTINATION /etc/profile.d PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)