Набрёл на новую утилиту `waf', заменяющую традиционные скрипты makefile и configure. До этого несколько лет назад пытался использовать cmake, не то чтобы безуспешно, но радости было мало. А здесь вроде как намного проще и достаточно универсально выходит.
Утилита waf представляет собой питоновский бинарный модуль размером 100 килобайт и не требует внешних зависимостей (кроме собственно Питона). Устанавливается командой:
Утилита 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/
no subject
Date: 2019-06-26 03:31 (UTC)no subject
Date: 2019-06-26 05:38 (UTC)no subject
Date: 2019-06-26 07:34 (UTC)no subject
Date: 2019-07-08 12:08 (UTC)https://gn.googlesource.com/gn/