diff -r 38597d675b03 -r a8b434605895 snap/snapcraft.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/snap/snapcraft.yaml Sun Jul 31 16:43:25 2022 +0200 @@ -0,0 +1,114 @@ +name: beremiz +version: '1.3-beta2' +summary: Beremiz +description: | + Beremiz is an integrated development environment for machine automation. It is Free Software, conforming to IEC-61131 among other standards. + +grade: devel +confinement: devmode +base: core20 + +parts: + + python-deps: + # This part provides all python2 dependencies, including interpreter + # More particularily, it builds latest PIP supporting python2 from git + # and uses it to collect and buid other Beremiz dependencies. + + # rational: + # - python plugin doesn't support python2 anymore on core20+ + # - attempts to get python2+pip+virtualenv in a core20 based snap failed + plugin: nil + source: https://github.com/pypa/pip/archive/refs/tags/20.3.4.tar.gz + build-packages: + - libssl-dev + - libgtk-3-dev + - libgl1-mesa-dev + - libglu1-mesa-dev + - python2-dev + + stage-packages: + - python2 + - python-setuptools + # libs reclaimed by snapcraft at the end of wxPython build + # TODO: test if still necessary since using "extensions: [gnome-3-38]" + - libgtk-3-0 + - libegl1 + - libgl1 + - libsm6 + - libxtst6 + + override-build: | + # For some reasons site-packages needs to be created and + # added to PYTHONPATH during PIP (own) build. + # Strangely, not anymore when snap is executed. + mkdir $SNAPCRAFT_PART_INSTALL/usr/lib/python2.7/site-packages + PYTHONPATH=$SNAPCRAFT_PART_INSTALL/usr/lib/python2.7/site-packages $SNAPCRAFT_PART_INSTALL/usr/bin/python2 $SNAPCRAFT_PART_SRC/setup.py install --prefix $SNAPCRAFT_PART_INSTALL/usr + PYTHONPATH=$SNAPCRAFT_PART_INSTALL/usr/lib/python2.7/site-packages $SNAPCRAFT_PART_INSTALL/usr/bin/pip install \ + lxml \ + future \ + matplotlib \ + zeroconf2 \ + enum34 \ + pyro \ + sslpsk \ + posix_spawn \ + twisted \ + nevow \ + autobahn \ + click \ + opcua \ + wxPython==4.1.1 + + beremiz: + # Beremiz python source + GCC toolchain + # source tree is expected to be just aside snap directory + plugin: nil + source: beremiz + source-type: local + stage-packages: + - gcc + - libc6 + - libc6-dev + - linux-libc-dev + - libgcc-9-dev + - libgcc-s1 + + override-build: | + cp -a $SNAPCRAFT_PART_SRC $SNAPCRAFT_PART_INSTALL/beremiz + + matiec: + # Matiec ST, SFC and IL compiler. + # source tree is expected to be just aside snap directory + plugin: nil + source: matiec + source-type: local + build-packages: + - build-essential + - automake + - flex + - bison + override-build: | + autoreconf -i && ./configure && make + cp -a $SNAPCRAFT_PART_BUILD $SNAPCRAFT_PART_INSTALL/matiec + + revisiontxt: + # Makefile generated "revisions.txt" + plugin: nil + source: . + source-type: local + override-build: | + cp $SNAPCRAFT_PART_SRC/revisions.txt $SNAPCRAFT_PART_INSTALL + +apps: + ide: + environment: + SYSROOT: $SNAP + command: usr/bin/python2 $SNAP/beremiz/Beremiz.py + extensions: [gnome-3-38] + + beremiz: + environment: + SYSROOT: $SNAP + command: usr/bin/python2 $SNAP/beremiz/Beremiz_cli.py +