Cytopia
Cytopia copied to clipboard
Linking CXX executable ../Cytopia fails on Debian 10 GNU/Linux and Ubuntu WSL due to conan sdl2 not finding libsdlio
Steps to reproduce
- Download or git clone version 1c150858dd1a908eafa9314dbb0b27bd8edb5279 into a directory assumed to be
~/src/Cytopia
- Create a fresh build directory and configure it with:
SUDO_ASKPASS=/usr/bin/ssh-askpass cmake ~/src/Cytopia/
- Run
make
Result
Build fails with:
[ 40%] Building CXX object src/CMakeFiles/Cytopia.dir/util/desktop/Filesystem.cxx.o
[ 41%] Building CXX object src/CMakeFiles/Cytopia.dir/engine/audio/Soundtrack.cxx.o
[ 41%] Building CXX object src/CMakeFiles/Cytopia.dir/services/AudioMixer.cxx.o
[ 42%] Building CXX object src/CMakeFiles/Cytopia.dir/__/external/as_add_on/scriptbuilder/scriptbuilder.cpp.o
[ 42%] Building CXX object src/CMakeFiles/Cytopia.dir/__/external/as_add_on/scriptstdstring/scriptstdstring.cpp.o
[ 43%] Building CXX object src/CMakeFiles/Cytopia.dir/Scripting/ScriptEngine.cxx.o
[ 44%] Linking CXX executable ../Cytopia
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib/libSDL2.a(SDL_sndioaudio.c.o): in function `load_sndio_syms':
/home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:95: undefined reference to `sio_open'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:96: undefined reference to `sio_close'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:97: undefined reference to `sio_setpar'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:98: undefined reference to `sio_getpar'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:99: undefined reference to `sio_start'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:100: undefined reference to `sio_stop'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:101: undefined reference to `sio_read'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:102: undefined reference to `sio_write'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:103: undefined reference to `sio_nfds'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:104: undefined reference to `sio_pollfd'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:105: undefined reference to `sio_revents'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:106: undefined reference to `sio_eof'
/usr/bin/ld: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/build/4bc2407ba09adb83863bd29bb122bfdb75e17b97/source_subfolder/src/audio/sndio/SDL_sndioaudio.c:107: undefined reference to `sio_initpar'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/Cytopia.dir/build.make:1235: Cytopia] Error 1
make[1]: *** [CMakeFiles/Makefile2:1026: src/CMakeFiles/Cytopia.dir/all] Error 2
make: *** [Makefile:163: all] Error 2
More information
The build error shows that conan's libSDL2 fails to link to libsndio. This may be due to conan's packaging of sdl2 itself or its dependencies, because libsndio-dev
is locally installed and linking to it the full path /usr/lib/x86_64-linux-gnu/libsndio.so
is preferred by conan by pkg-config sdl2.pc
and sdl2-config
:
$ apt search libsndio-dev # system wide sndio
Sorting... Done
Full Text Search... Done
libsndio-dev/amber,now 1.5.0-3 amd64 [installed,automatic]
Small audio and MIDI framework from OpenBSD, development files
$ sdl2-config --static-libs # system wide use of sndio
-lSDL2 -Wl,--no-undefined -lm -ldl -lasound -lm -ldl -lpthread -lpulse-simple -lpulse -lsndio -lX11 -lXext -lXcursor -lXinerama -lXi -lXrandr -lXss -lXxf86vm -lwayland-egl -lwayland-client -lwayland-cursor -lxkbcommon -lpthread -lrt
$ find ~/.conan/ -name sdl2-config -executable # conan's bundled sdl2-config
/home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/bin/sdl2-config
$ find ~/.conan/ -name sdl2-config -executable -exec {} --static-libs \; # conan uses system sndio, specifically /usr/lib/x86_64-linux-gnu/libsndio.so
-L/home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib -Wl,-rpath,/home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib -Wl,--enable-new-dtags -lglib-2.0 -lgobject-2.0 -lgio-2.0 -libus-1.0 -ldbus-1 -l/usr/lib/x86_64-linux-gnu/libsndio.so -ldl -lm -Wl,--no-undefined -pthread -lSDL2
$ cat /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib/pkgconfig/sdl2.pc
# sdl pkg-config source file
prefix=/home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: sdl2
Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.
Version: 2.0.9
Requires:
Conflicts:
Libs: -L${libdir} -Wl,-rpath,${libdir} -Wl,--enable-new-dtags -pthread -lSDL2
Libs.private: -lglib-2.0 -lgobject-2.0 -lgio-2.0 -libus-1.0 -ldbus-1 -l/usr/lib/x86_64-linux-gnu/libsndio.so -ldl -lm -Wl,--no-undefined -pthread -lSDL2
Cflags: -I${includedir}/SDL2 -D_REENTRANT
$ readelf -a /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib/libSDL2.a | grep sio_
000000000007 00290000002a R_X86_64_REX_GOTP 0000000000000000 sio_open - 4
000000000015 002a0000002a R_X86_64_REX_GOTP 0000000000000000 sio_close - 4
000000000023 002b0000002a R_X86_64_REX_GOTP 0000000000000000 sio_setpar - 4
000000000031 002c0000002a R_X86_64_REX_GOTP 0000000000000000 sio_getpar - 4
00000000003f 002d0000002a R_X86_64_REX_GOTP 0000000000000000 sio_start - 4
00000000004d 002e0000002a R_X86_64_REX_GOTP 0000000000000000 sio_stop - 4
00000000005b 002f0000002a R_X86_64_REX_GOTP 0000000000000000 sio_read - 4
000000000069 00300000002a R_X86_64_REX_GOTP 0000000000000000 sio_write - 4
000000000077 00310000002a R_X86_64_REX_GOTP 0000000000000000 sio_nfds - 4
000000000085 00320000002a R_X86_64_REX_GOTP 0000000000000000 sio_pollfd - 4
000000000093 00330000002a R_X86_64_REX_GOTP 0000000000000000 sio_revents - 4
0000000000a1 00340000002a R_X86_64_REX_GOTP 0000000000000000 sio_eof - 4
0000000000af 00350000002a R_X86_64_REX_GOTP 0000000000000000 sio_initpar - 4
5: 0000000000000000 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_open
6: 0000000000000008 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_close
7: 0000000000000010 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_setpar
8: 0000000000000018 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_getpar
9: 0000000000000020 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_start
10: 0000000000000028 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_stop
11: 0000000000000030 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_read
12: 0000000000000038 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_write
13: 0000000000000040 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_nfds
14: 0000000000000048 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_pollfd
15: 0000000000000050 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_revents
16: 0000000000000058 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_eof
17: 0000000000000060 8 OBJECT LOCAL DEFAULT 4 SNDIO_sio_initpar
41: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_open
42: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_close
43: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_setpar
44: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_getpar
45: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_start
46: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_stop
47: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_read
48: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_write
49: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_nfds
50: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_pollfd
51: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_revents
52: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_eof
53: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sio_initpar
So it's not clear why conan's libSDL2.a
fails to link to sndio
.
I think that at this point, we should simply disable it. We are not using SDL for playing audio anyway. As far as I know, sndio is also used by openal, so we still support but just not through SDL. It seems that other people have encountered this issue before:
- with openal
- with sdl2 1 2
As you said it's likely to be an issue with the conanfile that we are using from bincrafters. My guess is adding
-DSNDIO_SHARED=ON
as cmake option for debian/ubuntu builds would resolve this issue. However I do not know if the conanfile we are using is even being maintained anymore (I couldn't find any tags or branches in the directory). This might be a hint that we should fork it and maintain it ourselves in conan-packages, but if we are able to just disable it for now, this is too low priority
For what it's worth, it looks like CMake doesn't recognize that particular SNDIO_SHARED
option indicated by "Manually-specified variables were not used by the project" in the output below, and so the build still fails in the same way. Though quite possibly I'm specifying the option at the wrong place and it's not propagating to the conan subproject?
$ SUDO_ASKPASS=/usr/bin/ssh-askpass cmake -DSNDIO_SHARED=ON ../Cytopia-1c150858dd1a908eafa9314dbb0b27bd8edb5279/
-- The CXX compiler identification is GNU 8.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [pmm] Found Conan: /home/omsai/.local/bin/./conan
-- [pmm] [warn ] Conan version 1.33.0 is newer than the maximum supported version 1.30.99
-- [pmm] Conan version: 1.33.0
-- [pmm] WARNING: CMAKE_BUILD_TYPE was not set explicitly. We'll install your dependencies as 'Debug'
-- [pmm] Installing Conan requirements from /tmp/Cytopia-1c150858dd1a908eafa9314dbb0b27bd8edb5279/conanfile.txt
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Debug
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=8
os=Linux
os_build=Linux
[options]
[build_requires]
[env]
CXX=/usr/bin/c++
conanfile.txt: Installing package
Requirements
AngelScript/2.33@anotherfoxguy/stable from 'ror-dependencies' - Cache
Catch2/2.9.2@catchorg/stable from 'conan-center' - Cache
bzip2/1.0.8@conan/stable from 'conan-center' - Cache
freetype/2.10.0@bincrafters/stable from 'conan-center' - Cache
jbig/20160605 from 'conan-center' - Cache
libalsa/1.2.4 from 'conan-center' - Cache
libjpeg/9c from 'conan-center' - Cache
libnoise/1.0.1@anotherfoxguy/stable from 'AFG' - Cache
libpng/1.6.37 from 'conan-center' - Cache
libtiff/4.0.9 from 'conan-center' - Cache
libwebp/1.0.3 from 'conan-center' - Cache
ogg/1.3.4 from 'conan-center' - Cache
openal/1.21.0 from 'conan-center' - Cache
sdl2/2.0.9@bincrafters/stable from 'bincrafters' - Cache
sdl2_image/2.0.5@bincrafters/stable from 'bincrafters' - Cache
sdl2_ttf/2.0.15@bincrafters/stable from 'bincrafters' - Cache
vorbis/1.3.6@bincrafters/stable from 'conan-center' - Cache
xz_utils/5.2.5 from 'conan-center' - Cache
zlib/1.2.11 from 'conan-center' - Cache
Packages
AngelScript/2.33@anotherfoxguy/stable:af0fbc5eb7376a4b9749db37a5c402b36d452909 - Cache
Catch2/2.9.2@catchorg/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
bzip2/1.0.8@conan/stable:d666801fbcdc3fd37cf8b2a827d72e84b1878ff5 - Cache
freetype/2.10.0@bincrafters/stable:ff441545227373e6cdb1ad421ac0c816c2580ee5 - Cache
jbig/20160605:c153c14be825fc968669d2c91e77cfef164395a2 - Cache
libalsa/1.2.4:7f9261d3c826036e159503334080dec93f6f0bcb - Cache
libjpeg/9c:761432f3453a17c960259b5b2605153e3bcffd7d - Cache
libnoise/1.0.1@anotherfoxguy/stable:af0fbc5eb7376a4b9749db37a5c402b36d452909 - Cache
libpng/1.6.37:3cea63dcd75faf305bb387fd56132f0eabf927e4 - Cache
libtiff/4.0.9:6487f05c53bb018e20444f81b5b97c1cf9116c7c - Cache
libwebp/1.0.3:9cb84c66d3f950b57b3b86cf56808eb02a5f27d8 - Cache
ogg/1.3.4:761432f3453a17c960259b5b2605153e3bcffd7d - Cache
openal/1.21.0:075f11f99e524884a68ab3dce8be7580c3f78a7e - Cache
sdl2/2.0.9@bincrafters/stable:4bc2407ba09adb83863bd29bb122bfdb75e17b97 - Cache
sdl2_image/2.0.5@bincrafters/stable:109a0a6c226a880e31f8f8b3426c553f398291a9 - Cache
sdl2_ttf/2.0.15@bincrafters/stable:493101f71c56baf5f887b20b856bcc2fcfac3bff - Cache
vorbis/1.3.6@bincrafters/stable:63a5297238197cc6005c7e824fd0974bf5a976d3 - Cache
xz_utils/5.2.5:761432f3453a17c960259b5b2605153e3bcffd7d - Cache
zlib/1.2.11:761432f3453a17c960259b5b2605153e3bcffd7d - Cache
Installing (downloading, building) binaries...
AngelScript/2.33@anotherfoxguy/stable: Already installed!
Catch2/2.9.2@catchorg/stable: Already installed!
bzip2/1.0.8@conan/stable: Already installed!
jbig/20160605: Already installed!
jbig/20160605: Appending PATH environment variable: /home/omsai/.conan/data/jbig/20160605/_/_/package/c153c14be825fc968669d2c91e77cfef164395a2/bin
libalsa/1.2.4: Already installed!
libjpeg/9c: Already installed!
libnoise/1.0.1@anotherfoxguy/stable: Already installed!
libwebp/1.0.3: Already installed!
ogg/1.3.4: Already installed!
sdl2/2.0.9@bincrafters/stable: Already installed!
sdl2/2.0.9@bincrafters/stable: Creating SDL2_CONFIG environment variable: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/bin/sdl2-config
sdl2/2.0.9@bincrafters/stable: Creating SDL_CONFIG environment variable: /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/bin/sdl2-config
xz_utils/5.2.5: Already installed!
zlib/1.2.11: Already installed!
libpng/1.6.37: Already installed!
libtiff/4.0.9: Already installed!
openal/1.21.0: Already installed!
vorbis/1.3.6@bincrafters/stable: Already installed!
freetype/2.10.0@bincrafters/stable: Already installed!
sdl2_image/2.0.5@bincrafters/stable: Already installed!
sdl2_ttf/2.0.15@bincrafters/stable: Already installed!
conanfile.txt: Generator txt created conanbuildinfo.txt
conanfile.txt: Generator cmake created conanbuildinfo.cmake
conanfile.txt: Generated conaninfo.txt
conanfile.txt: Generated graphinfo
WARN: sdl2_ttf/2.0.15@bincrafters/stable: requirement freetype/2.9.1@bincrafters/stable overridden by your conanfile to freetype/2.10.0@bincrafters/stable
WARN: freetype/2.10.0@bincrafters/stable: requirement libpng/1.6.37@bincrafters/stable overridden by sdl2_ttf/2.0.15@bincrafters/stable to libpng/1.6.37
WARN: freetype/2.10.0@bincrafters/stable: requirement zlib/1.2.11@conan/stable overridden by sdl2_ttf/2.0.15@bincrafters/stable to zlib/1.2.11
WARN: sdl2_image/2.0.5@bincrafters/stable: requirement sdl2/2.0.10@bincrafters/stable overridden by your conanfile to sdl2/2.0.9@bincrafters/stable
WARN: libtiff/4.0.9: requirement libjpeg/9d overridden by sdl2_image/2.0.5@bincrafters/stable to libjpeg/9c
openal/1.21.0: WARN: Unknown compiler. Assuming your compiler supports c++14
-- Library angelscript found /home/omsai/.conan/data/AngelScript/2.33/anotherfoxguy/stable/package/af0fbc5eb7376a4b9749db37a5c402b36d452909/lib/libangelscript.a
-- Library SDL2_ttf found /home/omsai/.conan/data/sdl2_ttf/2.0.15/bincrafters/stable/package/493101f71c56baf5f887b20b856bcc2fcfac3bff/lib/libSDL2_ttf.a
-- Library SDL2_image found /home/omsai/.conan/data/sdl2_image/2.0.5/bincrafters/stable/package/109a0a6c226a880e31f8f8b3426c553f398291a9/lib/libSDL2_image.a
-- Library vorbisfile found /home/omsai/.conan/data/vorbis/1.3.6/bincrafters/stable/package/63a5297238197cc6005c7e824fd0974bf5a976d3/lib/libvorbisfile.a
-- Library vorbisenc found /home/omsai/.conan/data/vorbis/1.3.6/bincrafters/stable/package/63a5297238197cc6005c7e824fd0974bf5a976d3/lib/libvorbisenc.a
-- Library vorbis found /home/omsai/.conan/data/vorbis/1.3.6/bincrafters/stable/package/63a5297238197cc6005c7e824fd0974bf5a976d3/lib/libvorbis.a
-- Library m not found in package, might be system one
-- Library noise found /home/omsai/.conan/data/libnoise/1.0.1/anotherfoxguy/stable/package/af0fbc5eb7376a4b9749db37a5c402b36d452909/lib/libnoise.a
-- Library noiseutils found /home/omsai/.conan/data/libnoise/1.0.1/anotherfoxguy/stable/package/af0fbc5eb7376a4b9749db37a5c402b36d452909/lib/libnoiseutils.a
-- Library openal found /home/omsai/.conan/data/openal/1.21.0/_/_/package/075f11f99e524884a68ab3dce8be7580c3f78a7e/lib/libopenal.a
-- Library SDL2 found /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib/libSDL2.a
-- Library SDL2main found /home/omsai/.conan/data/sdl2/2.0.9/bincrafters/stable/package/4bc2407ba09adb83863bd29bb122bfdb75e17b97/lib/libSDL2main.a
-- Library dl not found in package, might be system one
-- Library rt not found in package, might be system one
-- Library pthread not found in package, might be system one
-- Library asound not found in package, might be system one
-- Library m not found in package, might be system one
-- Library dl not found in package, might be system one
-- Library pthread not found in package, might be system one
-- Library rt not found in package, might be system one
-- Library jack not found in package, might be system one
-- Library pthread not found in package, might be system one
-- Library pulse not found in package, might be system one
-- Library freetyped found /home/omsai/.conan/data/freetype/2.10.0/bincrafters/stable/package/ff441545227373e6cdb1ad421ac0c816c2580ee5/lib/libfreetyped.a
-- Library m not found in package, might be system one
-- Library tiffxx found /home/omsai/.conan/data/libtiff/4.0.9/_/_/package/6487f05c53bb018e20444f81b5b97c1cf9116c7c/lib/libtiffxx.a
-- Library tiff found /home/omsai/.conan/data/libtiff/4.0.9/_/_/package/6487f05c53bb018e20444f81b5b97c1cf9116c7c/lib/libtiff.a
-- Library webpdecoder found /home/omsai/.conan/data/libwebp/1.0.3/_/_/package/9cb84c66d3f950b57b3b86cf56808eb02a5f27d8/lib/libwebpdecoder.a
-- Library webpdemux found /home/omsai/.conan/data/libwebp/1.0.3/_/_/package/9cb84c66d3f950b57b3b86cf56808eb02a5f27d8/lib/libwebpdemux.a
-- Library webpmux found /home/omsai/.conan/data/libwebp/1.0.3/_/_/package/9cb84c66d3f950b57b3b86cf56808eb02a5f27d8/lib/libwebpmux.a
-- Library webp found /home/omsai/.conan/data/libwebp/1.0.3/_/_/package/9cb84c66d3f950b57b3b86cf56808eb02a5f27d8/lib/libwebp.a
-- Library ogg found /home/omsai/.conan/data/ogg/1.3.4/_/_/package/761432f3453a17c960259b5b2605153e3bcffd7d/lib/libogg.a
-- Library asound found /home/omsai/.conan/data/libalsa/1.2.4/_/_/package/7f9261d3c826036e159503334080dec93f6f0bcb/lib/libasound.a
-- Library png16d found /home/omsai/.conan/data/libpng/1.6.37/_/_/package/3cea63dcd75faf305bb387fd56132f0eabf927e4/lib/libpng16d.a
-- Library bz2 found /home/omsai/.conan/data/bzip2/1.0.8/conan/stable/package/d666801fbcdc3fd37cf8b2a827d72e84b1878ff5/lib/libbz2.a
-- Library lzma found /home/omsai/.conan/data/xz_utils/5.2.5/_/_/package/761432f3453a17c960259b5b2605153e3bcffd7d/lib/liblzma.a
-- Library jpeg found /home/omsai/.conan/data/libjpeg/9c/_/_/package/761432f3453a17c960259b5b2605153e3bcffd7d/lib/libjpeg.a
-- Library jbig found /home/omsai/.conan/data/jbig/20160605/_/_/package/c153c14be825fc968669d2c91e77cfef164395a2/lib/libjbig.a
-- Library z found /home/omsai/.conan/data/zlib/1.2.11/_/_/package/761432f3453a17c960259b5b2605153e3bcffd7d/lib/libz.a
-- Building Project: Cytopia
-- Build configuration:
-- Downloading catch.hpp from https://github.com/catchorg/Catch2/
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- The following REQUIRED packages have been found:
* Catch2
-- The following OPTIONAL packages have not been found:
* Doxygen
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
SNDIO_SHARED
-- Build files have been written to: /tmp/build-cytopia
Dumping all the variables:
$ cmake -LAH ../Cytopia-1c150858dd1a908eafa9314dbb0b27bd8edb5279
...
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/build-cytopia
-- Cache values
// Crossbuild to Android
BUILD_ANDROID:BOOL=OFF
// Build Cytopia Tests
BUILD_TEST:BOOL=ON
// Build the testing tree.
BUILD_TESTING:BOOL=ON
// Path to a program.
BZRCOMMAND:FILEPATH=BZRCOMMAND-NOTFOUND
// Path to a program.
CCACHE_PROGRAM:FILEPATH=CCACHE_PROGRAM-NOTFOUND
// Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
// Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=
// Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
// CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
// A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-8
// A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-8
// Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
// Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
// Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
// Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
// Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
// Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
// Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
// Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
// Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
// Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
// Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
// Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
// Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
// Flags used by the linker during the creation of modules during all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
// Flags used by the linker during the creation of modules during DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
// Flags used by the linker during the creation of modules during MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
// Flags used by the linker during the creation of modules during RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
// Flags used by the linker during the creation of modules during RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
// Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
// Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
// Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
// Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
// Flags used by the linker during the creation of shared libraries during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
// Flags used by the linker during the creation of shared libraries during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
// Flags used by the linker during the creation of shared libraries during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
// Flags used by the linker during the creation of shared libraries during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
// Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
// If set, runtime paths are not added when installing shared libraries, but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
// If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
// Flags used by the linker during the creation of static libraries during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
// Flags used by the linker during the creation of static libraries during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
// Flags used by the linker during the creation of static libraries during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
// Flags used by the linker during the creation of static libraries during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
// Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
// Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
// If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//
CMCM_LOCAL_RESOLVE_URL:STRING=https://AnotherFoxGuy.com/CMakeCM
//
CMCM_MODULE_DIR:STRING=/home/omsai/.local/share/pmm/1.9.5/cmcm-eaddce/modules
// Path to the coverage program that CTest uses for performing coverage inspection
COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov
// Extra command line flags to pass to the coverage tool
COVERAGE_EXTRA_FLAGS:STRING=-l
// Enable to build RPM source packages
CPACK_SOURCE_RPM:BOOL=OFF
// Enable to build TBZ2 source packages
CPACK_SOURCE_TBZ2:BOOL=ON
// Enable to build TGZ source packages
CPACK_SOURCE_TGZ:BOOL=ON
// Enable to build TXZ source packages
CPACK_SOURCE_TXZ:BOOL=ON
// Enable to build TZ source packages
CPACK_SOURCE_TZ:BOOL=ON
// Enable to build ZIP source packages
CPACK_SOURCE_ZIP:BOOL=OFF
// How many times to retry timed-out CTest submissions.
CTEST_SUBMIT_RETRY_COUNT:STRING=3
// How long to wait between timed-out CTest submissions.
CTEST_SUBMIT_RETRY_DELAY:STRING=5
// Path to a program.
CVSCOMMAND:FILEPATH=CVSCOMMAND-NOTFOUND
// Options passed to the cvs update command.
CVS_UPDATE_OPTIONS:STRING=-d -A -P
// Maximum time allowed before CTest will kill the test.
DART_TESTING_TIMEOUT:STRING=1500
// Dot tool for use with Doxygen
DOXYGEN_DOT_EXECUTABLE:FILEPATH=/usr/bin/dot
// Doxygen documentation generation tool (http://www.doxygen.org)
DOXYGEN_EXECUTABLE:FILEPATH=DOXYGEN_EXECUTABLE-NOTFOUND
// Enable AngelScript
ENABLE_ANGELSCRIPT:BOOL=ON
// Enable Audio
ENABLE_AUDIO:BOOL=ON
// Enable coverage build.
ENABLE_COVERAGE:BOOL=OFF
// Enable Debug (asserts and logs)
ENABLE_DEBUG:BOOL=OFF
// Enable microprofile
ENABLE_MICROPROFILE:BOOL=OFF
// Enable Vulkan
ENABLE_VULKAN:BOOL=OFF
// Path to a program.
GITCOMMAND:FILEPATH=/usr/bin/git
// Path to a program.
HGCOMMAND:FILEPATH=HGCOMMAND-NOTFOUND
// Command to build the project
MAKECOMMAND:STRING=/usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}"
// Path to the memory checking command, used for memory error detection.
MEMORYCHECK_COMMAND:FILEPATH=/usr/bin/valgrind
// File that contains suppressions for the memory checker
MEMORYCHECK_SUPPRESSIONS_FILE:FILEPATH=
// Path to a program.
P4COMMAND:FILEPATH=P4COMMAND-NOTFOUND
// Use conan for managing packages
PACKAGE_MANAGER:STRING=conan
// Use the cmake_multi generator for Conan
PMM_CMAKE_MULTI:BOOL=ON
// Path to Conan executable
PMM_CONAN_EXECUTABLE:FILEPATH=/home/omsai/.local/bin/./conan
// Previous version of PMM in the source tree
PMM_PRIOR_VERSION:STRING=1.9.5
// Path to a program.
SCCACHE_PROGRAM:FILEPATH=SCCACHE_PROGRAM-NOTFOUND
// Path to scp command, used by CTest for submitting results to a Dart server
SCPCOMMAND:FILEPATH=/usr/bin/scp
// Name of the computer/site where compile is being run
SITE:STRING=xm2
// Path to the SLURM sbatch executable
SLURM_SBATCH_COMMAND:FILEPATH=SLURM_SBATCH_COMMAND-NOTFOUND
// Path to the SLURM srun executable
SLURM_SRUN_COMMAND:FILEPATH=SLURM_SRUN_COMMAND-NOTFOUND
// Path to a program.
SVNCOMMAND:FILEPATH=SVNCOMMAND-NOTFOUND
// Treat all warnings as errors
TREAT_WARNINGS_AS_ERRORS:BOOL=ON
Oh I meant the SNDIO_SHARED
option should be passed to CMake while building SDL2. Cytopia doesn't support that directly. We would need a conan option and add it to /conanfile-linux.txt.in
. I think this option was added for a later version than we are using (SDL 2.0.14) and it not really supported for earlier versions. We would have to update SDL in Cytopia but we've encountered other issues while trying that in the past. Perhaps this is proof that we can no longer rely on bincrafters as a source for SDL
I have tried with the following conan options to see if it would automatically remove the dependency on sndio and I upgraded to 2.0.14, but it didn't work for me.
sdl2:nas=False
sdl2:alsa=False
sdl2:jack=False
sdl2:pulse=False
sdl2:esd=False
*** Could not run SDL test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding SDL or finding the wrong
*** version of SDL. If it is not finding SDL, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
It should still be possible to build on debian without conan at this point by using the -DPACKAGE_MANAGER=pkgconfig
given you have pkgconfig installed and all the dependencies are present. Or you could also use -DPACKAGE_MANAGER=none
but you will need to add a bunch of cache variables (either through CMake GUI or editing CMakeCache.txt manually) to point to where your dependencies are. However, we should definitely fix the conan build for debian