Skip to content

Several problems with building on macOS (0.6.0) #419

@FallenChromium

Description

@FallenChromium
  1. The brew command should include packages cmake (which is kinda obvious, but still), boost-python3 for 0.6.0 and also (for some absolutely wild reason) qt5. catch2 too, if it is preferable not to build it from submodules.
  2. antlr4 does build itself even if it is installed, though as far as I understand it's not a macOS-specific build issue
  3. The hardcoded LIBCLANG_LLVM_CONFIG_EXECUTABLE would not work on Apple Silicon Macs, because the default prefix of brew is changed to /opt/homebrew. Upon llvm's installation in brew, it is suggested to add llvm to path, export PATH="/opt/homebrew/opt/llvm/bin:$PATH", removing the need for this workaround.
  4. Python version is hardcoded, at the moment macOS's version of Python is newer. It would be better to determine python's version the same way it happens with ${UNIX} platform
  5. That said, even if I'd change the definitions to use python3.9 from brew, for it to find PythonLibs I must use -DPYTHON_LIBRARY=$(python3-config --prefix)/lib/libpython3.9.dylib -DPYTHON_INCLUDE_DIR=$(python3-config --prefix)/include/python3.9 flag for CMake upon Makefiles generation. I am not aware of any suitable fix for this problem at the moment.
  6. atm, using Qt5.15 from brew raises "error: "Qt requires a C++17 compiler", but -std=c++14 is hardcoded for both GNU and Clang compilers. It's probably better to leave this option for CMake to decide on, or, as an alternate workaround, update it to -std=c++17.
  7. RocksDB doesn't link correctly unless we will require a CMake package with find_package(RocksDB REQUIRED)

I know some of these issues have been resolved in 0.7.0 (partially because Python was removed as a dependency), but either way it's not clear when 0.7.0 will be released, so a lot of students with Macs will appreciate if 0.6.0 would get a fix ❤️

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