Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Мой первый ебилд

Со скуки написал-таки свой первый ебилд — для моей смотрелки фитсов (по-хорошему, ее надо довести до логического конца, но это потребует полного рефакторинга, чтобы с 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'у определить, что эта шняга в системе есть!
Tags: gentoo, всячина
Subscribe

  • Опять Подорванка смыла мост

    В четверг лило настолько, что, похоже, опять на подорванке забилась стремнина бревнами, а потом внезапно это все прорвало. МЧСовсцы перетаскивали…

  • Аж коробит…

    Уже который раз вижу (даже в прессе) выражение: "ставить прививку". Это что за странное такое словоблудие? Либо эпохи царской России, либо даже…

  • Упаковочка

    Получил сегодня пару посылок с алиэкспресса. Одна из них была с новым для меня способом доставки (на посылке не указывался адрес, а лишь "до…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments