История изменений
Исправление Bass, (текущая версия) :
Я бегло посмотрел – проект несколько странный в том смысле, что:
- тесты не включены по умолчанию (нужно явно вызывать
path/to/configure --enable-tests
) и, если их включить, то собираться они будут поmake all
а не поmake check
(в данном конкретном проекте цельcheck
пустая, хотя обычноall
собирает «боевой» код, аcheck
– «боевой» и тестовый), и - тесты не собираются при включённой
VPATH
-сборке (это которая out-of-tree):
$ make all
Making all in src
Making all in spandsp-sim
make[1]: Entering directory '.../spandsp/build/spandsp-sim'
gcc -DHAVE_CONFIG_H -I. -I../../spandsp-sim -I../src -I.. -I../src -DDATADIR="\"/usr/local/share/spandsp\"" -I/usr/include/libxml2 -DNDEBUG -msse2 -Wunused-but-set-variable -std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -DHAVE_VISIBILITY=1 -MT make_line_models.o -MD -MP -MF .deps/make_line_models.Tpo -c -o make_line_models.o ../../spandsp-sim/make_line_models.c
In file included from ../../spandsp-sim/make_line_models.c:55:
../src/spandsp.h:50:10: fatal error: spandsp/telephony.h: No such file or directory
#include <spandsp/telephony.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:522: make_line_models.o] Error 1
make: *** [Makefile:509: all-recursive] Error 1
Т. е. я бы сказал, что авторы просто не осилили Autotools, даже на уровне базовых вещей.
С учётом вышесказанного, при открытии проекта в CLion надо:
- отключить
VPATH
-сборку (этот режим включён по умолчанию) путём подстановки значения.
(текущий каталог) в поле Build directory, а также - явно добавить
--enable-tests
к ключам сценарияconfigure
.
В результате настройки проекта будут выглядеть так.
После этого вызываем Tools -> Makefile -> Clean and Reload Makefile Project. Отныне каталоги tests/
и test-data/
будут обрабатываться корректно, а их содержимое станет частью проектной модели (не будет «красного» кода в окне редактора).
Далее, для того, чтобы запустить конкретный тест (напр, fax_decode
), нужно создать конфигурацию (run configuration) типа Makefile Application, где в кач-ве цели Make указать check
(нам нужно собрать тесты перед запуском), а в кач-ве исполняемого файла – путь к исполняемому файлу, как это показано на снимке. Имя конфигурации может быть произвольным.
Исходная версия Bass, :
Я бегло посмотрел – проект несколько странный в том смысле, что:
- тесты не включены по умолчанию (нужно явно вызывать
path/to/configure --enable-tests
) и, если их включить, то собираться они будут поmake all
а не поmake check
(в данном конкретном проекте цельcheck
пустая, хотя обычноall
собирает «боевой» код, аcheck
– «боевой» и тестовый), и - тесты не собираются при включённой VPATH-сборке (это которая out-of-tree):
$ make all
Making all in src
Making all in spandsp-sim
make[1]: Entering directory '.../spandsp/build/spandsp-sim'
gcc -DHAVE_CONFIG_H -I. -I../../spandsp-sim -I../src -I.. -I../src -DDATADIR="\"/usr/local/share/spandsp\"" -I/usr/include/libxml2 -DNDEBUG -msse2 -Wunused-but-set-variable -std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -DHAVE_VISIBILITY=1 -MT make_line_models.o -MD -MP -MF .deps/make_line_models.Tpo -c -o make_line_models.o ../../spandsp-sim/make_line_models.c
In file included from ../../spandsp-sim/make_line_models.c:55:
../src/spandsp.h:50:10: fatal error: spandsp/telephony.h: No such file or directory
#include <spandsp/telephony.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:522: make_line_models.o] Error 1
make: *** [Makefile:509: all-recursive] Error 1
Т. е. я бы сказал, что авторы просто не осилили Autotools, даже на уровне базовых вещей.
С учётом вышесказанного, при открытии проекта в CLion надо:
- отключить
VPATH
-сборку (этот режим включён по умолчанию) путём подстановки значения.
(текущий каталог) в поле Build directory, а также - явно добавить
--enable-tests
к ключам сценарияconfigure
.
В результате настройки проекта будут выглядеть так.
После этого вызываем Tools -> Makefile -> Clean and Reload Makefile Project. Отныне каталоги tests/
и test-data/
будут обрабатываться корректно, а их содержимое станет частью проектной модели (не будет «красного» кода в окне редактора).
Далее, для того, чтобы запустить конкретный тест (напр, fax_decode
), нужно создать конфигурацию (run configuration) типа Makefile Application, где в кач-ве цели Make указать check
(нам нужно собрать тесты перед запуском), а в кач-ве исполняемого файла – путь к исполняемому файлу, как это показано на снимке. Имя конфигурации может быть произвольным.