LINUX.ORG.RU

Почему в cmake всё так сложно?

 


2

3

внутри обычного Makefile я могу просто написать

cc -std=c99 file.c -o program -lasound
либо
cc -std=c99 file.c -o program `pkg-config --libs alsa`


что нужно сделать в таком случае для cmake?

текущее содержимое CMakeLists.txt
cmake_minimum_required(VERSION 3.2)
project(program C)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")

set(SOURCE_FILES
    file.c)

add_executable(program ${SOURCE_FILES})

Возникает желание выбросить на помойку этот cmake... документация в стиле «хрен поймешь без бутылки», вот так сразу ее не взять чтобы «прочитал -> сразу понял -> используешь». Туториалы не объясняют что к чему.

ЛОР, помоги.


З.Ы. program и file.c - нарочно измененные имена. Добавление -lasound после -std=c99 не приводит к какому-либо результату.

★★★★★

Последнее исправление: reprimand (всего исправлений: 2)
Ответ на: комментарий от slovazap

Ну ты понял, можно продолжать долго.

Собрать предкомпилированный заголовок для gcc с теми же фалагами, что и исходники, и заюзать его: три строчки в мейкфайле, страница нетривиального кода на cmake. Можно продолжать дальше, cmake имеет фантастические возможности по созданию проблем, которых в make в принципе не было

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

по созданию проблем, которых в make в принципе не было

Особенно забавный момент с make у меня был, когда мне сказали: «ну, вызывай сначала тут make, потом тут, а потом тут». После второй сессии нужно-всего-то-было-ещё-раз-make-вызвать-в-той-директории я осознал, что лучше я потрачу пару дней на перевод проекта на CMake прямо сейчас, пока не поздно.

Для любой системы сборки нужен человек, с чувством меры и завершённости. Сами по себе они как-то плохо проблемы решают.

i-rinat ★★★★★
()
Ответ на: комментарий от annulen

Каюсь - совсем забыл про pch, а вы абсолютно правы. Действительно, нужно ради pch одной строчкой развернуть всё остальное что в cmake делается тривиально и работает везде в несколько страниц нечитаемого и непереносимого make, и ещё налепить ошибок.

slovazap ★★★★★
()
Ответ на: комментарий от i-rinat

Особенно забавный момент с make у меня был, когда мне сказали: «ну, вызывай сначала тут make, потом тут, а потом тут».

А что, нельзя было решить проблему дополнительных целью?

лучше я потрачу пару дней на перевод проекта на CMake прямо сейчас, пока не поздно.

Я, наоборот, не полезу в это болото без веских причин.

Для любой системы сборки нужен человек, с чувством меры и завершённости

Можно слово «сборки» убрать и утверждение останется верным

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