baskerville / plato

Document reader
Other
1.27k stars 109 forks source link

Building for generic Linux target #338

Open Kuratius opened 10 months ago

Kuratius commented 10 months ago

Is there a way to build plato directly for Alpine or a generic linux distribution for that matter? E.g. devices running postMarketOS might benefit from this. This also includes some Kobos https://wiki.postmarketos.org/wiki/Kobo_Clara_HD_(kobo-clara) and shouldnt require the kobo toolchain (it doesnt for other software, from what I tried so far, I built FBInk and some touchscreen calibration tools for example ).

I tried on ubuntu 22.04 (x86) and kept getting linker errors related to pdf-js, example: -Wl,-Bdynamic" "-lSDL2" "-ldjvulibre" "-lmupdf" "-lharfbuzz" "-lfreetype" "-lmupdf" "-lstdc++" "-lmupdf-third" "-lz" "-lbz2" "-ljpeg" "-lpng16" "-lgumbo" "-lopenjp2" "-ljbig2dec" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/dk/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/dk/plato/target/release/deps/plato_emulator-d7cc3bca253496d3" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" = note: /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/libmupdf.a(pdf-js.o): in function field_finalize': (.text.field_finalize+0x9): undefined reference tojs_getcontext' /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/libmupdf.a(pdf-js.o): in function pdf_drop_js': (.text.pdf_drop_js+0x1b): undefined reference tojs_freestate' /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/libmupdf.a(pdf-js.o): in function `pdf_js_event_init':

sudo apt install libmupdf-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done libmupdf-dev is already the newest version (1.19.0+ds1-2). 0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.