![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Набрёл на новую утилиту `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/