Поиск

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


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

Добавить комментарий