Add ${CMAKE_BINARY_DIR}/src/private to the introspection gir_libdirs of the two calendar libraries. Both libecal and libedata-cal link the private libedbus-private.dylib (install name @rpath/libedbus-private.dylib), so the temporary binary that g-ir-scanner links and runs to dump the type info needs src/private on its library/rpath search path to load it. Every other module that links edbus-private (libedataserver, libebackend, libedataserverui, libebook, libedata-book) already lists src/private here; the two calendar modules omit it, which on macOS makes the dump binary die at runtime with dyld: Library not loaded: @rpath/libedbus-private.dylib Referenced from: .../libecal-2.0.3.dylib Reason: image not found This only affects the transient build-time introspection dump binary; the installed libraries are unchanged. --- src/calendar/libecal/CMakeLists.txt.orig +++ src/calendar/libecal/CMakeLists.txt @@ -129,6 +129,7 @@ -I${CMAKE_SOURCE_DIR}/src/calendar ) set(gir_libdirs + ${CMAKE_BINARY_DIR}/src/private ${CMAKE_BINARY_DIR}/src/camel ${CMAKE_BINARY_DIR}/src/libedataserver ) --- src/calendar/libedata-cal/CMakeLists.txt.orig +++ src/calendar/libedata-cal/CMakeLists.txt @@ -101,6 +101,7 @@ -I${CMAKE_SOURCE_DIR}/src/calendar ) set(gir_libdirs + ${CMAKE_BINARY_DIR}/src/private ${CMAKE_BINARY_DIR}/src/camel ${CMAKE_BINARY_DIR}/src/libebackend ${CMAKE_BINARY_DIR}/src/libedataserver