Skip to content

Building from source (Ubuntu) #33

@jmrfox

Description

@jmrfox

Hi, I have some problems building from source on Ubuntu 24.04.1 LTS WSL. I'll walk through the steps listed on the README.

  1. Clone and setup
git clone --recursive https://github.com/arbor-sim/gui.git
cd arbor-gui
mkdir build
cd build

I don't think this block works as intended. The clone command gives me a directory called gui so cd arbor-gui fails, then we go into a new folder build outside the repo.

  1. Dependencies
sudo apt update
sudo apt install build-essential libssl-dev \ 
                 libxml2-dev libxrandr-dev libxinerama-dev \
                 libxcursor-dev libxi-dev libglu1-mesa-dev \
                 freeglut3-dev mesa-common-dev gcc-10 g++-10

All of these libraries are accessible with sudo apt install but this command as it is written at first gave me an error E: Unable to locate package libxml2-dev. I was able to finally get all of these, I had to try sudo apt install <package> on them individually in different orders than is written. I don't know enough about how package accessibility works in Ubuntu to diagnose this exactly.

  1. Cmake and compilers
    I have cmake version 3.28.3 so that's fine. The update-alternatives thing works too.
    But then I do cmake .. in gui/build, which fails with the following output.
/gui/build$ cmake ..
-- Found Git: /usr/bin/git (found version "2.43.0")
-- The C compiler identification is GNU 10.5.0
-- The CXX compiler identification is GNU 10.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CXX_HAS_NATIVE
-- Performing Test CXX_HAS_NATIVE - Success
CMake Warning at 3rd-party/arbor/cmake/CompilerOptions.cmake:88 (message):
  Found an unsupported compiler GNU version 10.5.0, please consider switching
  to a supported version of GCC or Clang.  Build failure is expected.  We
  reserve the option to close all related issues without consideration.
Call Stack (most recent call first):
  3rd-party/arbor/CMakeLists.txt:210 (check_supported_cxx)


-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- CPM: Adding package json@3.12.0 (v3.12.0)
-- Using the multi-header code from /home/jordan/gui/build/_deps/json-src/include/
-- CPM: Adding package random123@1.14.0 (v1.14.0)
-- CPM: Adding package pugixml@1.13 (v1.13)
-- CPM: Adding package fmt@10.0.0 (10.0.0)
-- Version: 10.0.0
-- Build type: release
-- CPM: Adding package benchmark@1.8.3 (v1.8.3)
-- Failed to find LLVM FileCheck
-- git version: v1.8.3 normalized to 1.8.3
-- Google Benchmark version: 1.8.3
-- Looking for shm_open in rt
-- Looking for shm_open in rt - found
-- Performing Test HAVE_CXX_FLAG_WALL
-- Performing Test HAVE_CXX_FLAG_WALL - Success
-- Performing Test HAVE_CXX_FLAG_WEXTRA
-- Performing Test HAVE_CXX_FLAG_WEXTRA - Success
-- Performing Test HAVE_CXX_FLAG_WSHADOW
-- Performing Test HAVE_CXX_FLAG_WSHADOW - Success
-- Performing Test HAVE_CXX_FLAG_WFLOAT_EQUAL
-- Performing Test HAVE_CXX_FLAG_WFLOAT_EQUAL - Success
-- Performing Test HAVE_CXX_FLAG_WOLD_STYLE_CAST
-- Performing Test HAVE_CXX_FLAG_WOLD_STYLE_CAST - Success
-- Performing Test HAVE_CXX_FLAG_WERROR
-- Performing Test HAVE_CXX_FLAG_WERROR - Success
-- Performing Test HAVE_CXX_FLAG_WSUGGEST_OVERRIDE
-- Performing Test HAVE_CXX_FLAG_WSUGGEST_OVERRIDE - Success
-- Performing Test HAVE_CXX_FLAG_PEDANTIC
-- Performing Test HAVE_CXX_FLAG_PEDANTIC - Success
-- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS
-- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS - Success
-- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32
-- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32 - Failed
-- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING
-- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING - Success
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS - Success
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED - Success
-- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING
-- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING - Success
-- Performing Test HAVE_CXX_FLAG_WD654
-- Performing Test HAVE_CXX_FLAG_WD654 - Failed
-- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY
-- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY - Failed
-- Performing Test HAVE_CXX_FLAG_COVERAGE
-- Performing Test HAVE_CXX_FLAG_COVERAGE - Success
-- Compiling and running to test HAVE_STD_REGEX
-- Performing Test HAVE_STD_REGEX -- success
-- Compiling and running to test HAVE_GNU_POSIX_REGEX
-- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
-- Compiling and running to test HAVE_POSIX_REGEX
-- Performing Test HAVE_POSIX_REGEX -- success
-- Compiling and running to test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK -- success
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Compiling and running to test HAVE_PTHREAD_AFFINITY
-- Performing Test HAVE_PTHREAD_AFFINITY -- success
-- CPM: Adding package googletest@1.12.1 (release-1.12.1)
-- Found Python: /usr/bin/python3 (found version "3.12.3") found components: Interpreter
-- CPM: Adding package units@0.13.1 (v0.13.1)
-- adding library units::units
-- CPM: Adding package tinyopt@0 (7e6d707d49c6cb4be27ebd253856be65293288df)
-- Found Python3: /usr/bin/python3 (found suitable version "3.12.3", minimum required is "3.10.0") found components: Interpreter
-- Failed to locate sphinx-build executable (missing: SPHINX_EXECUTABLE)
-- Could NOT find PY_svgwrite (missing: PY_SVGWRITE)
CMake Deprecation Warning at 3rd-party/glbinding/cmake/Custom.cmake:6 (cmake_policy):
  The OLD behavior for policy CMP0120 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  3rd-party/glbinding/CMakeLists.txt:37 (set_policy)


-- Could NOT find cppcheck (missing: cppcheck_EXECUTABLE)
-- Check cppcheck skipped: cppcheck not found
-- Could NOT find clang_tidy (missing: clang_tidy_EXECUTABLE)
-- Check clang-tidy skipped: clang-tidy not found
-- Coverage lcov skipped: Manually disabled
-- External KHRplatform
-- Lib glbinding
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Lib glbinding-aux
Tool glbinding-glcontexts skipped: glfw3 not found
Tool glbinding-glfunctions skipped: glfw3 not found
Tool glbinding-glinfo skipped: glfw3 not found
Tool glbinding-glisdeprecated skipped: glfw3 not found
-- Tool glbinding-glmeta
Tool glbinding-glqueries skipped: glfw3 not found
Tool glbinding-glescontexts skipped: glfw3 not found
-- Including Wayland support
-- Including X11 support
-- Looking for memfd_create
-- Looking for memfd_create - found
CMake Error at 3rd-party/glfw/src/CMakeLists.txt:77 (message):
  Failed to find wayland-scanner


-- Configuring incomplete, errors occurred!

And at this point I don't know what to do. There is no rule to make target 'install'
Thanks in advance!

PS: As a long-time WSL user, I can say display forwarding is always a pain. You suggest using VcXsrv, which in my eyes is a little dated. Consider using X410. I've used it for a while now with Debian WSL and it's lovely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions