eddy_em: (Default)
[personal profile] eddy_em
Со скуки написал-таки свой первый ебилд — для моей смотрелки фитсов (по-хорошему, ее надо довести до логического конца, но это потребует полного рефакторинга, чтобы с GTK на чистый OpenGL перейти + кучу ошибок исправить).

Несмотря на то, что сама по себе смотрелка — простейшая штукенция, ебилд писал долго. Вот что вышло:
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit cmake-utils

DESCRIPTION="Very simple FITS visualisation tool"
HOMEPAGE="https://github.com/eddyem/fits_filter"
SRC_URI=""

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="cuda leptonica gsl"

DEPEND="
    virtual/opengl
    x11-libs/gtkglext
    sci-libs/cfitsio
    sci-libs/fftw
    cuda? ( dev-util/nvidia-cuda-toolkit )
    leptonica? ( media-libs/leptonica )
    gsl? ( sci-libs/gsl )
"
RDEPEND="${DEPEND}"
S="${WORKDIR}"

src_unpack() {
    cp -r /home/eddy/C-files/fitsview/* ${S} || die
}

CMAKE_USE_DIR="${S}"
BUILD_DIR=${S} 

src_configure() {
    local mycmakeargs=(
        "-DCMAKE_INSTALL_PREFIX=/usr/local"
        "-DUSE_CUDA=$(usex cuda)"
        "-DUSE_LEPTONICA=$(usex leptonica)"
        "-DUSE_GSL=$(usex gsl)"
    )
     cmake-utils_src_configure
}



Для простоты не использовал синхронизацию с гитом (а то есть у меня любовь делать пуллы на недообследованном коде). А еще пришлось CMakeLists.txt подправить с учетом того, что я не придумал, как возводить флаги (вроде -DNO_CUDA=1), если данного юза нет. Теперь возводится стандартный флаг (вроде -DUSE_CUDA=yes/no).
Теперь остается написать подобное для большинства своих поделок, которые я обычно после каждого обновления вручную пересобираю (т.к. используют слишком много внешних библиотек). Я перед наблюдениями на БТА поэтому генту и не обновляю: мало ли, компьютер повешу, а там что-нибудь "не взлетит", и придется во время наблюдений отладкой заниматься, а не наблюдениями... Обновляю после (если не забуду), заодно потом вручную пересобирая все, что не работает.
Теоретически, если правильно проставлю все зависимости и ничего не забуду, после их обновления все будет хорошо. Нужно лишь у Тимура взять FindCfitsio.cmake (или свой написать), т.к. cfitsio уже давно стал после обновления кидать в /usr/lib64/pkgconfig/cfitsio.pc битые данные, что не дает pkg-config'у определить, что эта шняга в системе есть!
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 24th, 2025 01:16 pm
Powered by Dreamwidth Studios