LINUX.ORG.RU

c++ build system for hello worlds

 , ,


0

5

Ищется билдсистема любого типа для c++, либо консольный мастер создания проджекта для любой попсовой системы.

Предпослыки: заметил за собой привычку писать мелкие проги для проверки всяких домыслов и воспроизведения всякого. Не всегда выходит/удобно делать их в один файл.

Основное требование:

Создание стандартного конфига для проекта в одну комманду, можно с задачей пары вопросов по ходу дела, или указанием деталей через опции.

Можно в принципе наготовить пару тройку шаблонов для cmake. Но, вдруг, есть чё?

Upd. Нашёл чего искал, увидел как задумка уродлива, видимо проще подготовить шаблончегов, с грамотно расставленными переменными.

★★★★★

Последнее исправление: pon4ik (всего исправлений: 1)

cp my/standard/makefile ./

dib2 ★★★★★
()

Не всегда выходит/удобно делать их в один файл.

Можно одним вызовом g++ собрать и слинковать несколько файлов. А вообще двачую makefile.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от anonymous

В одной папке два файла, main.c и SConstruct

main.c

#include <math.h>
#include <stdio.h>

int main() {
    double x = fabs(-5);
    double y = sin(5);
    printf("math=%lf\n", sqrt(x+y));
    return 0;
}

SConstruct, одна строчка. main.c — это имя исходника, само собой, параметр LIBS — чтобы можно было применять sqrt, будет расшифрован в gcc -lm

Program('main.c', LIBS=['m'])

Запускаем одной командой

scons

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o main.o -c main.c
gcc -o main main.o -lm
scons: done building targets.

Добавились main.o и main, бинарник, можно запускать. Чтобы от них избавиться, запускаем

scons -c
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Cleaning targets ...
Removed main.o
Removed main
scons: done cleaning targets.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за инструкцию, но в CMake я уже умею, а шаблон мэйк/конфиг файла одна фигня в таком подходе надо делать.

Да и вообще идея моя походу тупая :)

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А там есть система поиска зависимостей как в CMake?

Я сегодня читал 5ой версии ман по диагонали, не увидел.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Поделие интересное, но ничем кроме языка и производительности(это ещё надо посмотреть как и какие тесты он гонял) не выделяется.

Есть ещё, что то, что я упустил из разряда киллер фич (второй раз уже сегодня про него читаю)?

У них же тоже нет аналого Find* скриптов? Это как по мне киллер фича CMake которую, как то, никто не имплементирует почему то, хм.

Upd - увидел, есть. Хм, реально интересное поделие.

pon4ik ★★★★★
() автор топика
Последнее исправление: pon4ik (всего исправлений: 1)

На самом деле, qmake может вполне сработать.

qmake -project в папке с cpp/hpp файлами сам пропишет их в дефолтный проект, потом его можно будет собирать средствами текущей платформы.

vzzo ★★★
()

Будь как автор Box2D, но круче - напиши ни с чем несовместимый костыль на Luaсмеси sed/awk/bash/perl, но... нет, требуй наличия нескольких скриптовых экосистем для малозначительной фичи, которая нетривиальновообще не отключается :)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

классика и олдскул всегда актуальны

Harald ★★★★★
()
Ответ на: комментарий от i_gnatenko_brain

Вообщем и целом норм, но как то пока не заценил разницы с CMake, что бы прям переписывать на нём всё и вся (учитывая что в CMake умеют ide).

Но выглядет конечно перспективно (хотя waf тоже ничего так был).

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Понятия не имею. Но вроде как проект жив, не заброшен своими разработчиками. Что не так уж часто бывает в OpenSource.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

cons тоже ещё жив и не заброшен - однако, людей которые его используют наверное по пальцам можно перечесть :)

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Это уже другой вопрос. Просто по фразе «хотя waf тоже ничего так был» сложилось впечатление, что waf повторил судьбу biicode.

eao197 ★★★★★
()
Ответ на: комментарий от pon4ik

Он где то кроме хрома используется?

https://www.nsnam.org

ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.

iVS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.