emilk / eframe_template

The easy way to make a Rust app with a GUI
Apache License 2.0
733 stars 169 forks source link

How to build for rolling-release distros? #78

Open ghost opened 1 year ago

ghost commented 1 year ago

How to build for rolling-release distros, e.g., Arch Linux?

The dependencies in Cargo.toml:

[package] name = "hello" version = "0.1.0" edition = "2021" [dependencies] eframe = "0.19.0" egui = "0.19.0"

After running cargo run: error: failed to run custom build command for freetype-sys v0.13.1 Caused by: process didn't exit successfully: /home/user/hello/target/debug/build/freetype-sys-2d8a8659d607a0d7/build-script-build (exit status: 101) --- stdout cargo:rerun-if-env-changed=FREETYPE2_NO_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG cargo:rerun-if-env-changed=FREETYPE2_STATIC cargo:rerun-if-env-changed=FREETYPE2_DYNAMIC cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH cargo:rerun-if-env-changed=PKG_CONFIG_PATH cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR CMAKE_TOOLCHAIN_FILE_aarch64-unknown-linux-gnu = None CMAKE_TOOLCHAIN_FILE_aarch64_unknown_linux_gnu = None HOST_CMAKE_TOOLCHAIN_FILE = None CMAKE_TOOLCHAIN_FILE = None CMAKE_GENERATOR_aarch64-unknown-linux-gnu = None CMAKE_GENERATOR_aarch64_unknown_linux_gnu = None HOST_CMAKE_GENERATOR = None CMAKE_GENERATOR = None CMAKE_PREFIX_PATH_aarch64-unknown-linux-gnu = None CMAKE_PREFIX_PATH_aarch64_unknown_linux_gnu = None HOST_CMAKE_PREFIX_PATH = None CMAKE_PREFIX_PATH = None CMAKE_aarch64-unknown-linux-gnu = None CMAKE_aarch64_unknown_linux_gnu = None HOST_CMAKE = None CMAKE = None running: "cmake" "/home/user/.cargo/registry/src/mirrors.ustc.edu.cn-61ef6e0cd06fb9b8/freetype-sys-0.13.1/freetype2" "-DWITH_BZip2=OFF" "-DWITH_HarfBuzz=OFF" "-DWITH_PNG=OFF" "-DWITH_ZLIB=OFF" "-DCMAKE_INSTALL_PREFIX=/home/user/hello/target/debug/build/freetype-sys-def3784904bc2191/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release" -- Configuring incomplete, errors occurred! See also "/home/user/hello/target/debug/build/freetype-sys-def3784904bc2191/out/build/CMakeFiles/CMakeOutput.log".

--- stderr CMake Deprecation Warning at CMakeLists.txt:78 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. thread 'main' panicked at ' command did not execute successfully, got: exit status: 1

tkkcc commented 1 year ago

The error seems related to old version cmake. My archlinux cmake version is 3.24.3.

9SMTM6 commented 1 week ago

I've used this template or apps based on it a few times on arch linux installs now, I've never seen this issue. I think at this point this is impossible to debug or reproduce, so I'd suggest closing it unless it reappears.