snap/snapcraft.yaml
changeset 79 a8b434605895
child 81 a95b2fa896e9
--- /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
+