48 lines
1.8 KiB
CMake
48 lines
1.8 KiB
CMake
# 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 <SOURCE_DIR> \\( -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)
|