knuesel/gst-airplay

Cannot find run-time dependency airplay during `meson build`

Closed this issue · 3 comments

Hi! I'm running Pop OS 21.04 and am following the build instructions. I got as far as the meson build step without issue, but then I get this error:

The Meson build system
Version: 0.56.2
Source dir: /home/marcel/GitHub/gst-airplay
Build dir: /home/marcel/GitHub/gst-airplay/build
Build type: native build
Project name: gst-airplay
Project version: 0.1
C compiler for the host machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
C linker for the host machine: cc ld.bfd 2.36.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency gio-2.0 found: YES 2.68.1
Run-time dependency gstreamer-1.0 found: YES 1.18.4
Run-time dependency gstreamer-base-1.0 found: YES 1.18.4
Run-time dependency gstreamer-video-1.0 found: YES 1.18.4
Configuring config.h using configuration
Found CMake: /usr/bin/cmake (3.18.4)
Run-time dependency airplay found: NO (tried pkgconfig and cmake)

meson.build:40:0: ERROR: Dependency "airplay" not found, tried pkgconfig and cmake

A full log can be found at /home/marcel/GitHub/gst-airplay/build/meson-logs/meson-log.txt

Here is the full log:

Build started at 2021-12-16T17:40:52.300053
Main binary: /usr/bin/python3
Build Options: 
Python system: Linux
The Meson build system
Version: 0.56.2
Source dir: /home/marcel/GitHub/gst-airplay
Build dir: /home/marcel/GitHub/gst-airplay/build
Build type: native build
Project name: gst-airplay
Project version: 0.1
None of 'CC' are defined in the environment, not changing global flags.
None of 'CFLAGS' are defined in the environment, not changing global flags.
None of 'LDFLAGS' are defined in the environment, not changing global flags.
None of 'CPPFLAGS' are defined in the environment, not changing global flags.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity testing C compiler: cc
Is cross compiler: False.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity check compiler command line: cc /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe -pipe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe
C compiler for the host machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
C linker for the host machine: cc ld.bfd 2.36.1
None of 'AR' are defined in the environment, not changing global flags.
None of 'CC' are defined in the environment, not changing global flags.
None of 'CFLAGS' are defined in the environment, not changing global flags.
None of 'LDFLAGS' are defined in the environment, not changing global flags.
None of 'CPPFLAGS' are defined in the environment, not changing global flags.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity testing C compiler: cc
Is cross compiler: False.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity check compiler command line: cc /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe -pipe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
C linker for the build machine: cc ld.bfd 2.36.1
None of 'AR' are defined in the environment, not changing global flags.
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Pkg-config binary for MachineChoice.HOST is not cached.
None of 'PKG_CONFIG' are defined in the environment, not changing global flags.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Determining dependency 'gio-2.0' with pkg-config executable '/usr/bin/pkg-config'
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --modversion gio-2.0` -> 0
2.68.1
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --cflags gio-2.0` -> 0
-pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gio-2.0 --libs` -> 0
-L/usr/lib/x86_64-linux-gnu -lgio-2.0 -lgobject-2.0 -lglib-2.0
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gio-2.0 --libs` -> 0
-lgio-2.0 -lgobject-2.0 -lglib-2.0
None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
None of 'CC_LD' are defined in the environment, not changing global flags.
Running compile:
Working directory:  /home/marcel/GitHub/gst-airplay/build/meson-private/tmpb4bdnl1r
Command line:  cc /home/marcel/GitHub/gst-airplay/build/meson-private/tmpb4bdnl1r/testfile.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/tmpb4bdnl1r/output.exe -pipe -D_FILE_OFFSET_BITS=64 -O0 

Code:
 #include<stdio.h>
        
        int main(void) {
            printf("%ld\n", (long)(sizeof(void *)));
            return 0;
        };
Compiler stdout:
 
Compiler stderr:
 
Program stdout:

8

Program stderr:


Running compile:
Working directory:  /home/marcel/GitHub/gst-airplay/build/meson-private/tmpxuqn3ksh
Command line:  cc /home/marcel/GitHub/gst-airplay/build/meson-private/tmpxuqn3ksh/testfile.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/tmpxuqn3ksh/output.obj -pipe -c -D_FILE_OFFSET_BITS=64 -O0 --print-search-dirs 

Code:
 
Compiler stdout:
 install: /usr/lib/gcc/x86_64-linux-gnu/10/
programs: =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/
libraries: =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/:/lib/x86_64-linux-gnu/10/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/10/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../:/lib/:/usr/lib/

Compiler stderr:
 
Run-time dependency gio-2.0 found: YES 2.68.1
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'gstreamer-1.0' with pkg-config executable '/usr/bin/pkg-config'
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --modversion gstreamer-1.0` -> 0
1.18.4
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --cflags gstreamer-1.0` -> 0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gstreamer-1.0 --libs` -> 0
-L/usr/lib/x86_64-linux-gnu -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gstreamer-1.0 --libs` -> 0
-lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
Run-time dependency gstreamer-1.0 found: YES 1.18.4
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'gstreamer-base-1.0' with pkg-config executable '/usr/bin/pkg-config'
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --modversion gstreamer-base-1.0` -> 0
1.18.4
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --cflags gstreamer-base-1.0` -> 0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gstreamer-base-1.0 --libs` -> 0
-L/usr/lib/x86_64-linux-gnu -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gstreamer-base-1.0 --libs` -> 0
-lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
Run-time dependency gstreamer-base-1.0 found: YES 1.18.4
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'gstreamer-video-1.0' with pkg-config executable '/usr/bin/pkg-config'
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --modversion gstreamer-video-1.0` -> 0
1.18.4
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --cflags gstreamer-video-1.0` -> 0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gstreamer-video-1.0 --libs` -> 0
-L/usr/lib/x86_64-linux-gnu -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config gstreamer-video-1.0 --libs` -> 0
-lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
Run-time dependency gstreamer-video-1.0 found: YES 1.18.4
Configuring config.h using configuration
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'airplay' with pkg-config executable '/usr/bin/pkg-config'
PKG_CONFIG_PATH: 
Called `/usr/bin/pkg-config --modversion airplay` -> 1

CMake binary for MachineChoice.HOST is not cached
None of 'CMAKE' are defined in the environment, not changing global flags.
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: /usr/bin/cmake (3.18.4)
None of 'CMAKE_PREFIX_PATH' are defined in the environment, not changing global flags.
Extracting basic cmake information
Try CMake generator: auto
Calling CMake (['/usr/bin/cmake']) in /home/marcel/GitHub/gst-airplay/build/meson-private/cmake_airplay with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/marcel/GitHub/gst-airplay/build/meson-private/cmake_airplay/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['/', '/opt', '/usr', '/usr/local']
  -- CMake root:             /usr/share/cmake-3.18
  -- CMake architectures:    ['x86_64-linux-gnu']
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', 'lib/x86_64-linux-gnu']
Preliminary CMake check failed. Aborting.
Run-time dependency airplay found: NO (tried pkgconfig and cmake)

meson.build:40:0: ERROR: Dependency "airplay" not found, tried pkgconfig and cmake

Is there something I'm doing wrong? Thanks!

The problem is probably that airplay from the RPiPlay project is not found. Try closely following the example in the "Building" section of the README (https://github.com/knuesel/gst-airplay#building). In particular, you should define the PKG_CONFIG_PATH variable so that it includes the pkgconfig directory created by the RPiPlay installation. It's shown in this part of the README example:

cd ../..  # Get out of the RPiPlay directory
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PWD/RPiPlay/install/lib/pkgconfig
git clone https://github.com/knuesel/gst-airplay
cd gst-airplay
meson build
ninja -C build

Thanks! I had blindly copied the export command, so the directory was wrong.

By the way this PKG_CONFIG_PATH thing is no longer necessary following the merge of the wrap-rpiplay branch (see discussion in #4).