vak: (Default)
[personal profile] vak
Набрёл на новую утилиту `waf', заменяющую традиционные скрипты makefile и configure. До этого несколько лет назад пытался использовать cmake, не то чтобы безуспешно, но радости было мало. А здесь вроде как намного проще и достаточно универсально выходит.

Утилита waf представляет собой питоновский бинарный модуль размером 100 килобайт и не требует внешних зависимостей (кроме собственно Питона). Устанавливается командой:
    curl -o ~/bin/waf https://waf.io/waf-2.0.17
Пример скрипта для компиляции программы на Си:
#! /usr/bin/env python
# encoding: utf-8
import sys

APPNAME = 'sdwrite'
VERSION = '0.1'

def options(opt):
    opt.load('compiler_c')

def configure(conf):
    out = 'build'
    conf.load('compiler_c')

def build(bld):
    LIBS = []
    if sys.platform == 'linux2':
        LIBS = ['udev']
    if sys.platform == 'darwin':
        LIBS = ['-framework', 'IOKit', '-framework', 'CoreFoundation']

    bld.program(
        source       = 'sdwriter.c',
        target       = APPNAME,
        includes     = ['.'],
        lib          = LIBS,
        install_path = '/usr/local/bin',
        cflags       = ['-g', '-O', '-Wall'],
        ldflags      = ['-g'],
    )
Конфигурация и компиляция программы:
    waf configure build
Установка:
    waf install
Удаление временных файлов:
    waf clean
    waf distclean
Подробное описание есть здесь: https://waf.io/book/

Date: 2019-06-26 03:31 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Я хоть и не фанат питона, но билды на нем милое дело - программировал когда-то для моей клавки, в гугле. Хорошее дело. Программируемый язык билдов. Важно.

Date: 2019-06-26 07:34 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Ихный bazel доставляет.

Date: 2019-07-08 12:08 (UTC)
From: [personal profile] ivanrubilo
а вот еще неплохая вроде штука, google hafnium используют
https://gn.googlesource.com/gn/