LINUX.ORG.RU

История изменений

Исправление Bass, (текущая версия) :

Я бегло посмотрел – проект несколько странный в том смысле, что:

  1. тесты не включены по умолчанию (нужно явно вызывать path/to/configure --enable-tests) и, если их включить, то собираться они будут по make all а не по make check (в данном конкретном проекте цель check пустая, хотя обычно all собирает «боевой» код, а check – «боевой» и тестовый), и
  2. тесты не собираются при включённой 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 надо:

  1. отключить VPATH-сборку (этот режим включён по умолчанию) путём подстановки значения . (текущий каталог) в поле Build directory, а также
  2. явно добавить --enable-tests к ключам сценария configure.

В результате настройки проекта будут выглядеть так.

После этого вызываем Tools -> Makefile -> Clean and Reload Makefile Project. Отныне каталоги tests/ и test-data/ будут обрабатываться корректно, а их содержимое станет частью проектной модели (не будет «красного» кода в окне редактора).

Далее, для того, чтобы запустить конкретный тест (напр, fax_decode), нужно создать конфигурацию (run configuration) типа Makefile Application, где в кач-ве цели Make указать check (нам нужно собрать тесты перед запуском), а в кач-ве исполняемого файла – путь к исполняемому файлу, как это показано на снимке. Имя конфигурации может быть произвольным.

Исходная версия Bass, :

Я бегло посмотрел – проект несколько странный в том смысле, что:

  1. тесты не включены по умолчанию (нужно явно вызывать path/to/configure --enable-tests) и, если их включить, то собираться они будут по make all а не по make check (в данном конкретном проекте цель check пустая, хотя обычно all собирает «боевой» код, а check – «боевой» и тестовый), и
  2. тесты не собираются при включённой 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 надо:

  1. отключить VPATH-сборку (этот режим включён по умолчанию) путём подстановки значения . (текущий каталог) в поле Build directory, а также
  2. явно добавить --enable-tests к ключам сценария configure.

В результате настройки проекта будут выглядеть так.

После этого вызываем Tools -> Makefile -> Clean and Reload Makefile Project. Отныне каталоги tests/ и test-data/ будут обрабатываться корректно, а их содержимое станет частью проектной модели (не будет «красного» кода в окне редактора).

Далее, для того, чтобы запустить конкретный тест (напр, fax_decode), нужно создать конфигурацию (run configuration) типа Makefile Application, где в кач-ве цели Make указать check (нам нужно собрать тесты перед запуском), а в кач-ве исполняемого файла – путь к исполняемому файлу, как это показано на снимке. Имя конфигурации может быть произвольным.