drwhut / tabletop-club

An open-source platform for playing tabletop games in a physics-based 3D environment for Windows, macOS, and Linux! Made with the Godot Engine.
https://tabletopclub.net
MIT License
1.28k stars 55 forks source link

No SConstruct file found #233

Closed GrimPixel closed 1 year ago

GrimPixel commented 1 year ago

Describe the bug Error when compiling scons: *** No SConstruct file found. File "/usr/lib/python3.10/site-packages/SCons/Script/Main.py", line 945, in _main

Environment e.g. Arch Linux

Version v0.1.0

drwhut commented 1 year ago

What stage of the compilation are you on? Have you used cd to get to the godot directory?

elmodor commented 1 year ago

Are you compiling tabletop-club or godot?

elmodor commented 1 year ago

Since you are using Arch, here is my modified PKBUILD (from the original godot) for the tabletop godot version:

_pkgname=godot-tabletop
pkgname=${_pkgname}
pkgdesc="Godot Game Engine: An advanced, feature packed, multi-platform 2D and 3D game engine."
url="https://github.com/drwhut/godot.git"
branch="tabletop-3.4.5"
git_repo="godot"
pkgver=3.4.r1.c68a38a
pkgrel=1
license=('MIT')
arch=('i686' 'x86_64')
makedepends=('gcc' 'git' 'scons' 'pkgconf' 'yasm')
depends=('alsa-lib' 'glu' 'libglvnd' 'libxcursor' 'libxinerama' 'libxi' 'libxrandr' 'mesa' 'pulseaudio')
optdepends=()
conflicts=("godot-tabletop")
provides=("godot-tabletop")
_arch=''
if test "$CARCH" == x86_64; then
  _arch=('64')
else
  _arch=('32')
fi

source=(
        godot-tabletop.desktop
        icon.png
)
sha256sums=(
    '3cc259b8af25cc7cf1e48052912b5d65031ad491264df7f46d5693fa32508d65'
    '99f9d17c4355b274ef0c08069cf6e756a98cd5c9d9d22d1b39f79538134277e1'
)

prepare() {
    if [ ! -d "${srcdir}/${git_repo}" ]
    then
        cd ${srcdir}
        git clone ${url} --branch ${branch} --single-branch --depth 1 --recursive
    else
        cd "${srcdir}/${git_repo}"
        git fetch --depth 1 origin ${branch}
        git reset --hard origin/${branch}
        git submodule foreach --recursive git reset --hard
        git submodule update --init --recursive
    fi
}

pkgver() {
    cd "${srcdir}/${git_repo}"
    _major=$(cat version.py|grep "major" | sed 's/major = //')
    _minor=$(cat version.py|grep "minor" | sed 's/minor = //')
    _patch=$(cat version.py|grep "patch" | sed 's/patch = //')
    _revision=$(printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)")
    echo "${_major}.${_minor}.${_patch}.${_revision}"
}

build() {
    cd "${srcdir}"/${git_repo}
    scons platform=x11 target=release_debug werror=no -j$((`nproc`+1))
    scons platform=x11 target=release tools=no production=yes werror=no -j$((`nproc`+1))

    strip bin/godot.x11.opt.${_arch}
}

package() {

    cd "${srcdir}"

    install -Dm644 godot-tabletop.desktop "${pkgdir}"/usr/share/applications/godot-tabletop.desktop
    install -Dm644 icon.png "${pkgdir}"/usr/share/pixmaps/godot-tabletop.png

    cd "${srcdir}"/${git_repo}

    install -D -m755 bin/godot.x11.opt.tools.${_arch} "${pkgdir}"/usr/bin/godot-tabletop
    install -D -m755 bin/godot.x11.opt.${_arch} "${pkgdir}"/usr/bin/godot-tabletop-release
    install -D -m644 LICENSE.txt "${pkgdir}"/usr/share/licenses/godot-tabletop/LICENSE
}

In your case take a look at makedepends and the prepare and build step.

This was my reference: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=godot-git https://tabletop-club.readthedocs.io/en/latest/general/download/compiling_from_source.html#compiling-from-source

(You won't be able to use this PKGBUILD 1:1 since you don't have the .desktop and icon file)

GrimPixel commented 1 year ago

It turned out that I didn't notice Godot. It's not a bug. Thanks.