Arx Libertatis Bug Tracker
star_faded.png
Please log in to bookmark issues
bug_report_small.png
OPEN  Bug report #1692  -  Building Arx Libertatis
Posted Apr 02, 2023 - updated May 19, 2023   Shortlink: http://arx.vg/1692
action_vote_minus_faded.png
0
Votes
action_vote_plus_faded.png
Issue details
  • Type of issue
    Bug report
  • Status
     
    New
  • Assigned to
    Not assigned to anyone
  • Type of bug
    Not triaged
  • Likelihood
    Not triaged
  • Effect
    Not triaged
  • Posted by
     Guest user
  • Owned by
    Not owned by anyone
  • Estimated time
    Not estimated
  • Category
    Not determined
  • Resolution
    Not determined
  • Priority
    Not determined
  • Reproducability
    Always
  • Severity
    Not determined
  • Targetted for
    icon_milestones.png Not determined
  • OS
    icon_customdatatype.png Not determined
  • Architecture
    icon_customdatatype.png Not determined
  • Fixed in
    icon_customdatatype.png Not determined
Issue description
Hello. I was trying to build Arx Libertatis for the RG35xx (which is a Linux-based, Armv7a, of which I do have the toolchain of), but keep getting this error:

"No suitable version of Epoxy found.

     Maybe you don't have the right (32 vs.64 bit) architecture installed?


     Tried /usr/lib/x86_64-linux-gnu/libepoxy.so and -lepoxy
     Using compiler /opt/miyoo/bin/arm-miyoo-linux-uclibcgnueabi-g++  -flto=auto -fmerge-all-constants -Wall -Wextra -Warray-bounds=2 -Wcast-qual   -Wdouble-promotion -Wduplicated-cond  -Wformat=2  -Winit-self  -Wlogical-op -Wmissing-declarations -Wnoexcept -Woverflow -Woverloaded-virtual  -Wpointer-arith -Wredundant-decls  -Wshift-overflow -Wstrict-null-sentinel -Wstringop-overflow=2 -Wundef -Wunused-const-variable=1 -Wunused-macros -Wvla   -Wfloat-conversion   -Wsign-promo -Wold-style-cast -Wshadow -Wno-maybe-uninitialized -Wp,-U_GLIBCXX_ASSERTIONS -fno-rtti -DNDEBUG -g2 -ffast-math" 


Or, the same error but with Glew instead.
Steps to reproduce this issue
Using Docker Desktop (I'm on Windows) and Visual Studio Code, after creating the container, I use these commands: --------------------------------------------------------------------------------------------------------------------------------------- apt update

apt install cmake libsdl2-dev libsdl2-2.0-0 libboost-all-dev libglm-dev freeglut3-dev freetype2-demos inkscape libopenal-dev libmythes-dev libglew-dev -y (I used GLEW instead of Libepoxy, but I've also tried libepoxy-dev instead of libglew)

git clone https://github.com/arx/ArxLibertatis

cd Arx Libertatis

mkdir build

cd build

cmake ../ --------------------------------------------------------------------------------------------------------------------------------------- That's where the error appears.

#1
icon_reply.pngReply
Comment posted by
 Daniel Scharrer
May 19, 12:49
Cross-compiling is always tricky. It looks like in your case CMake finds your native AMD64 libraries instead of the ARM ones. You probably need to create a CMake Toolchain file if your toolchain does not come with one tell CMake to use it using -DCMAKE_TOOLCHAIN_FILE=... - see https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling for details. Note that CMake does not really support changing the toolchain that well so make sure you start from a clean build directory.

For our Linux cross builds I use this toolchain file: https://github.com/arx/ArxBuild/blob/master/toolchains/cross-toolchain.cmake It makes many assumptions like getting the target triple from the (symlinked) filename and expecting the cross root at "/usr/${target}" so you will probably need to adapt it. The most important part is setting the CMAKE_SYSROOT and CMAKE_FIND_* variables to tell CMake where to look as well as the PKG_CONFIG_LIBDIR and PKG_CONFIG_SYSROOT_DIR environment variables to do the same for pkgconfig which CMake will use for many libraries.