From 2fed9a35cd84419449ae91dea512266bd5609122 Mon Sep 17 00:00:00 2001
From: Dilawar Singh <dilawars@ncbs.res.in>
Date: Sun, 26 Jun 2016 14:40:01 +0530
Subject: [PATCH] Added packaging script for mac.

---
 packaging_scripts/HOWTO_MAC.md                |  18 ++
 .../build_dmg_image_using_brew.sh             | 177 +++++++++++
 .../build_dmg_without_package_managers.sh     | 293 ++++++++++++++++++
 packaging_scripts/build_using_xcode.sh        |  14 +
 packaging_scripts/cmake_sanity_check.py       |  87 ++++++
 packaging_scripts/moose_icon_64x64.png        | Bin 0 -> 3575 bytes
 packaging_scripts/moose_icon_large.png        | Bin 0 -> 58871 bytes
 packaging_scripts/release_dmg_file.sh         | 106 +++++++
 8 files changed, 695 insertions(+)
 create mode 100644 packaging_scripts/HOWTO_MAC.md
 create mode 100755 packaging_scripts/build_dmg_image_using_brew.sh
 create mode 100755 packaging_scripts/build_dmg_without_package_managers.sh
 create mode 100755 packaging_scripts/build_using_xcode.sh
 create mode 100755 packaging_scripts/cmake_sanity_check.py
 create mode 100644 packaging_scripts/moose_icon_64x64.png
 create mode 100644 packaging_scripts/moose_icon_large.png
 create mode 100755 packaging_scripts/release_dmg_file.sh

diff --git a/packaging_scripts/HOWTO_MAC.md b/packaging_scripts/HOWTO_MAC.md
new file mode 100644
index 00000000..79d1d93e
--- /dev/null
+++ b/packaging_scripts/HOWTO_MAC.md
@@ -0,0 +1,18 @@
+This document describes how to create DMG package on MAC OSX.
+
+1. Run `./build_dmg_image_using_brew.sh`
+
+- This script create an empty dmg file.
+- Mount it on /Volume/Moose_3.0.2
+- Install brew in it with prefix /Volumes/Moose_3.0.2 and `brew install moose`
+  with given prefix.
+- It also adds an `moosegui` script which launches gui and also setup PYTHONPATH
+  in ~/.bash_profile.
+
+2. Run `./release_dmg_file.sh` 
+
+- Copy the dmg created in step 1 and mount it.
+- Remove unneccessay files `brew uninstall cmake gcc`. This saves us approx 400
+  MB.
+- Create another dmg file from folder and compress it.
+- Compress this dmg file and test it on some MAC.
diff --git a/packaging_scripts/build_dmg_image_using_brew.sh b/packaging_scripts/build_dmg_image_using_brew.sh
new file mode 100755
index 00000000..bf0b350b
--- /dev/null
+++ b/packaging_scripts/build_dmg_image_using_brew.sh
@@ -0,0 +1,177 @@
+#!/bin/bash
+
+echo "||NOTICE
+If you are using this script on MacOSX 10.11.2, be careful about the following
+error:
+    illegal instruction: 4
+I could get everything working fine on MacOSX- 10.8 
+"
+
+set -x
+set -e
+
+CURRDIR=`pwd`
+
+# Unset any enviroment PYTHONPATH. They can confuse us.
+unset PYTHONPATH
+PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin
+export HOMEBREW_BUILD_FROM_SOURCE=YES
+
+## This is not needed. Forgot why I put it here in first place.
+#CFLAGS+=-march=native
+
+APPNAME="Moose"
+VERSION="3.0.2"
+MAC_NAME=`sw_vers -productVersion`
+PKGNAME="${APPNAME}_${VERSION}"
+
+VOLNAME="${PKGNAME}"
+
+### SAFETY
+set +e
+echo "|| Detaching possibly attached disk"
+hdiutil detach /Volumes/${PKGNAME}
+set -e
+
+DMGFILELABEL="${PKGNAME}"
+THISDIR=`pwd`
+
+# create the temp DMG file
+STAGING_DIR=_Install
+DMG_TMP="${PKGNAME}-${MAC_NAME}_BREWED.dmg"
+mkdir -p ${STAGING_DIR}
+
+if [ ! -f "${DMG_TMP}" ]; then
+    ## NOTE: When building MOOGLI, size should be at least 1 GB.
+    hdiutil create -srcfolder "${STAGING_DIR}" -volname "${PKGNAME}" \
+        -format UDRW -size 1.5G "${DMG_TMP}"
+else
+    echo "DMG file $DMG_TMP exists. Mounting ..."
+fi
+
+# TODO
+# mount it and save the device
+DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \
+         egrep '^/dev/' | sed 1q | awk '{print $1}')
+
+############################# EXIT gacefully ################################ 
+# Traps etc
+# ALWAYS DETACH THE DEVICE BEFORE EXITING...
+function detach_device 
+{
+    hdiutil detach "${DEVICE}"
+    exit
+}
+trap detach_device SIGINT SIGTERM SIGKILL
+
+sleep 1
+
+echo "Install whatever you want now"
+BREW_PREFIX="/Volumes/${VOLNAME}"
+BREW=$BREW_PREFIX/bin/brew
+export PATH=${BREW_PREFIX}/bin:$PATH
+(
+    cd $BREW_PREFIX
+    if [ ! -f $BREW_PREFIX/bin/brew ]; then
+        curl -L https://github.com/Homebrew/homebrew/tarball/master | \
+            tar xz --strip 1 -C $BREW_PREFIX
+    else
+        echo "[I] Brew exists. Not installing"
+    fi
+    echo "Copying moose.rb and moogli.rb"
+    cp $CURRDIR/../macosx/*.rb $BREW_PREFIX/Library/Formula/
+
+    # This even works without python.
+    ## NOTE: DO NOT install matplotlib using brew unless also installing python
+    ## using brew. Since we are going to uninstall later, use pip to install
+    ## matplotlib and numpy.
+    $BREW -v install homebrew/python/matplotlib --with-pyqt
+    $BREW -v install homebrew/python/numpy
+    $BREW link --overwrite matplotlib
+    $BREW -v install homebrew/science/hdf5
+    $BREW -v install moose --with-gui | tee "$CURRDIR/__brew_moose_log__"
+    # Set home of Qt4, openscenegraph etc.
+    # Install python-gobject 
+    $BREW -v install gobject-introspection --env=std --with-head
+    export QT_HOME=$BREW_PREFIX
+    export OSG_HOME=$BREW_PREFIX 
+    export PYQT_HOME=$BREW_PREFIX
+    $BREW -v install moogli | tee "$CURRDIR/__brew_moogli__log__" 
+    # Lets not depends on system level libraries. Install all dependencies.
+    $BREW_PREFIX/bin/pip install suds-jurko  --upgrade 
+    $BREW_PREFIX/bin/pip install networkx 
+    # Do not use pip to install matplotlib. It does not work.
+
+    ## Tests
+    set -e
+    export PYTHONPATH=$BREW_PREFIX/lib/python2.7/site-packages
+    python -c 'import moose'
+    python -c 'import moogli'
+    python -c 'import matplotlib'
+    $BREW_PREFIX/bin/python -c 'import six'
+    set +e
+
+    # Also write script to launch the moosegui.
+    MOOSEPATH=${BREW_PREFIX}/lib/python2.7/site-packages
+    cat > $BREW_PREFIX/moosegui <<EOF
+#!/bin/bash
+touch \$HOME/.bash_profile
+source \$HOME/.bash_profile
+if [[ "\${PYTHONPATH}" == *"${MOOSEPATH}"* ]]; then
+    echo "[INFO] PYTHONPATH aleady contains ${MOOSEPATH}"
+else
+    # Also write to .bash_profile, so that we can use it.
+    echo "[INFO] Adding ${MOOSEPATH} to PYTHONPATH"
+    echo "export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH" >> \$HOME/.bash_profile
+    source \$HOME/.bash_profile
+fi
+# make sure that for current runtime, we have correct path.
+export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH
+exec ${BREW_PREFIX}/bin/moosegui
+EOF
+    chmod a+x $BREW_PREFIX/moosegui
+)
+
+################ COPY THE .app ##########################################
+## DO NOT USE APP BUNDLE.
+## Use simple shell script to launch moose.
+###echo "|| Copying the APP to directory"
+####cp -rpf "${APPNAME}.app" "$BREW_PREFIX"
+###APPEXE="${APPNAME}.app/Contents/MacOS/${APPNAME}"
+###mkdir -p `dirname $APPEXE`
+#### create the executable.
+###cat > ${APPEXE} <<-EOF
+####!/bin/bash
+###${BREW_PREFIX}/bin/moosegui
+###EOF
+###chmod +x ${APPEXE}
+
+################ INSTALL THE ICON ########################################
+DMG_BACKGROUND_IMG="${CURRDIR}/moose_icon_large.png"
+# Check the background image DPI and convert it if it isn't 72x72
+_BACKGROUND_IMAGE_DPI_H=`sips -g dpiHeight ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'`
+_BACKGROUND_IMAGE_DPI_W=`sips -g dpiWidth ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'`
+
+if [ $(echo " $_BACKGROUND_IMAGE_DPI_H != 72.0 " | bc) -eq 1 -o $(echo " $_BACKGROUND_IMAGE_DPI_W != 72.0 " | bc) -eq 1 ]; then
+    echo "WARNING: The background image's DPI is not 72."
+    echo "This will result in distorted backgrounds on Mac OS X 10.7+."
+    echo "I will convert it to 72 DPI for you."
+    _DMG_BACKGROUND_TMP="${DMG_BACKGROUND_IMG%.*}"_dpifix."${DMG_BACKGROUND_IMG##*.}"
+    sips -s dpiWidth 72 -s dpiHeight 72 ${DMG_BACKGROUND_IMG} --out ${_DMG_BACKGROUND_TMP}
+    DMG_BACKGROUND_IMG="${_DMG_BACKGROUND_TMP}"
+fi
+
+echo "TODO. Now resize and compress using hdiutil"
+echo "|| use: hdiutil convert a.dmg -format UDBZ -o b.dmg"
+
+#### TODO: Resize the harddisk and compress it for distribution if tests are OK.
+##set +e
+##DISKSIZE=`du -sh /Volumes/"${VOLNAME}"`
+##echo "Overall disk size is $DISKSIZE"
+##echo "|| Blowing up brew cache"
+##rm -rf `${BREW_PREFIX}/bin/brew --cache`
+##
+##DISKSIZE=`du -sh /Volumes/"${VOLNAME}"`
+
+## Finally detach the device
+detach_device
diff --git a/packaging_scripts/build_dmg_without_package_managers.sh b/packaging_scripts/build_dmg_without_package_managers.sh
new file mode 100755
index 00000000..d729d42a
--- /dev/null
+++ b/packaging_scripts/build_dmg_without_package_managers.sh
@@ -0,0 +1,293 @@
+#!/bin/bash
+
+echo "||NOTICE
+If you are using this script on MacOSX 10.11.2, be careful about the following
+error:
+    illegal instruction: 4
+I could get everything working fine on MacOSX- 10.8 
+"
+
+set -x
+set -e
+
+CURRDIR=`pwd`
+
+# Unset any enviroment PYTHONPATH. They can confuse us.
+unset PYTHONPATH
+
+echo "|WARN| Unsetting PATH"
+unset PATH
+export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin
+
+APPNAME="Moose"
+VERSION="3.0.2"
+MAC_NAME=`sw_vers -productVersion`
+PKGNAME="${APPNAME}_${VERSION}"
+
+VOLNAME="${PKGNAME}"
+
+### SAFETY
+set +e
+echo "|| Detaching possibly attached disk"
+hdiutil detach /Volumes/${PKGNAME}
+set -e
+
+DMGFILELABEL="${PKGNAME}"
+THISDIR=`pwd`
+
+# create the temp DMG file
+STAGING_DIR=_Install
+DMG_TMP="${PKGNAME}-${MAC_NAME}_LOCAL.dmg"
+mkdir -p ${STAGING_DIR}
+
+SIZE=1G
+echo "|| Creating dmg file of $SIZE size"
+if [ ! -f "${DMG_TMP}" ]; then
+    hdiutil create -srcfolder "${STAGING_DIR}" -volname "${PKGNAME}" \
+        -format UDRW -size $SIZE "${DMG_TMP}"
+else
+    echo "DMG file $DMG_TMP exists. Mounting ..."
+fi
+
+# TODO
+# mount it and save the device
+DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \
+         egrep '^/dev/' | sed 1q | awk '{print $1}')
+
+############################# EXIT gacefully ################################ 
+# Traps etc
+# ALWAYS DETACH THE DEVICE BEFORE EXITING...
+function detach_device 
+{
+    hdiutil detach "${DEVICE}"
+    exit
+}
+trap detach_device SIGINT SIGTERM SIGKILL
+
+sleep 1
+
+echo "Install whatever you want now"
+PORT_PREFIX="/Volumes/${VOLNAME}"
+PYTHONPREFIX=$PORT_PREFIX/pymodules
+export PATH=${PORT_PREFIX}/bin:$PATH
+(
+    WORKDIR=$CURRDIR/_work
+    mkdir -p $WORKDIR
+    cd $PORT_PREFIX
+    ## NOTICE: Try to build using Xcode.
+
+    # 1. Get cmake and install it to cmake/bin 
+    CMAKE_BIN=$PORT_PREFIX/cmake/bin/cmake
+    if [ -f $CMAKE_BIN ]; then
+        echo "|| cmake is available at $CMAKE_BIN "
+    else
+        echo "No $CMAKE_BIN found. Building one"
+        cd $WORKDIR
+        curl -O https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz
+        tar xvf cmake-3.3.2.tar.gz
+        cd cmake-3.3.2 || ls -l
+        ./bootstrap
+        ./configure --prefix=$PORT_PREFIX/cmake
+        make -j3
+        make install
+        cd $PORT_PREFIX
+    fi
+
+    # 2. Install moose-full using cmake.
+    MOOSE_PREFIX=$PORT_PREFIX/moose
+    export PYTHONPATH=$PYTHONPREFIX/lib/python2.7/site-packages
+    if python -c 'import moose'; then
+        echo "|STATUS| MOOSE is installed and could be imported"
+    else
+        cd $WORKDIR
+        if [ ! -d moose-full ]; then
+            echo "Cloning moose-full"
+            git clone --depth 1 https://github.com/BhallaLab/moose-full
+        fi
+        set -e
+        cd moose-full
+        mkdir -p _build && cd _build
+        $CMAKE_BIN -DCMAKE_INSTALL_PREFIX=$MOOSE_PREFIX .. 
+        make -j3
+        # Override the install step.
+        cd ../moose-core/python 
+        python setup.py install --prefix=$PYTHONPREFIX
+        python -c 'import moose'
+        set +e
+        cd $WORKDIR
+        cd ..
+    fi
+
+    # 3. Let's get Qt4
+    QTPREFIX=$PORT_PREFIX/qt4.8
+    mkdir -p $QTPREFIX
+    (
+    mkdir -p $QTPREFIX/bin/
+    if [ ! -f $QTPREFIX/bin/qmake ]; then
+        echo "|| Trying to install qt"
+        cd $WORKDIR
+        QTDIR="qt"
+        if [ ! -d "$QTDIR" ]; then
+            git clone --depth 1 https://github.com/qtproject/qt 
+        else
+            echo "|| qt is already downloaded."
+            #cd qt && git clean -fxd && cd ..
+        fi
+        cd $QTDIR
+        # Delete all license files so qt it does not prompt us to accept
+        # license.
+        ./configure -opensource -stl -no-qt3support \
+            -confirm-license -nomake examples -nomake demos \
+            -prefix $QTPREFIX
+        make -j3
+        make install
+    else
+        echo "||| Qt seems to be installed. Here are the list of libs"
+        ls -lh "$QTPREFIX/lib"
+    fi
+    )
+
+    # 4. Install SIP 
+    SIPPREFIX=$PORT_PREFIX/sip
+    mkdir -p $SIPPREFIX
+    if python -c 'import sip'; then
+        echo "|| SIP is installed"
+    else
+    (
+        cd $WORKDIR
+        # Thought of trying this version as it is indicated to work with pyqt4.
+        SIPHEAD=4.17
+        if [ ! -f sip-$SIPHEAD.tar.gz ] ; then
+            rm -f sip-$SIPHEAD.tar.gz
+            echo "|| Downloading SIP"
+            curl -L -O "https://sourceforge.net/projects/pyqt/files/sip/sip-4.15.5/sip-4.15.5.tar.gz"
+        else
+            echo "|| SIP is already downloaded and unarchived"
+        fi
+
+        tar xvf sip-$SIPHEAD.tar.gz
+
+        cd sip-$SIPHEAD
+        echo "|| installing sip"
+        python configure.py -b $SIPPREFIX/bin \
+            -d $PYTHONPATH \
+            -e $SIPPREFIX/include \
+            -v $SIPPREFIX/include/sip
+        make 
+        ( cd siplib && python -c 'import sip' )
+        make install
+    )
+    fi
+
+    # 5. Install PyQt4.
+    
+    (
+        if python -c 'from PyQt4 import pyqtconfig'; then
+            echo "|| PyQt4 already installed"
+            exit 1
+        fi
+
+        cd $WORKDIR
+        QTVERSION="4.11.4"
+        if [ ! -d PyQt-mac-gpl-$QTVERSION ]; then
+            echo "|| Downloading PyQt4"
+            curl -L -O "https://www.sourceforge.net/projects/pyqt/files/PyQt4/PyQt-$QTVERSION/PyQt-mac-gpl-$QTVERSION.tar.gz"
+            tar xvf PyQt-mac-gpl-$QTVERSION.tar.gz
+        else
+            echo "|| Already PyQt4 downloaded"
+        fi
+        cd PyQt-mac-gpl-$QTVERSION
+        export PATH=$QTPREFIX/bin:$PATH:$SIPPREFIX/bin
+        echo "||| sip: `which sip`"
+        #--sip-incdir=$SIPPREFIX/include \
+        python configure.py --confirm-license \
+            -b $PYTHONPREFIX/bin  \
+            -d $PYTHONPATH \
+            -v $PYQT4PREFIX/sip
+        make  -j3
+        make install
+    )
+
+    # Install osg
+    OSGPREFIX=$PORT_PREFIX/osg
+    (
+        if [ -f $OSGPREFIX/lib/libosg.dylib ]; then
+            echo "||| Looks like osg is installed. Heres the libraries"
+            ls $OSGPREFIX/lib
+            #exit
+        fi
+        cd $WORKDIR
+        OSG_VERSION=3.2.3
+        if [ ! -f OpenSceneGraph-$OSG_VERSION.zip ]; then
+            echo "|| Downloading OSG - $OSG_VERSION"
+            curl -O http://trac.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.3.zip
+        else
+            echo "||| OSG $OSG_VERSION is already downloaded"
+        fi
+        if [ ! -d OpenSceneGraph-$OSG_VERSION ]; then
+            echo "|||| Unzipping "
+            unzip OpenSceneGraph-$OSG_VERSION.zip
+        fi
+        cd OpenSceneGraph-$OSG_VERSION 
+        mkdir -p _build
+        cd _build
+        export QTDIR=$QTPREFIX
+        $CMAKE_BIN -DDESIRED_QT_VERSION=4 -DCMAKE_INSTALL_PREFIX=$OSGPREFIX ..
+        make -j4
+        make install
+    )
+        
+    # Now finally moogli.
+    MOOGLI_PREFIX=$PORT_PREFIX/moogli
+    (
+        export DYLD_FALLBACK_FRAMEWORK_PATH=$QTPREFIX/lib
+        export DYLD_LIBRARY_PATH=$OSGPREFIX/lib
+        if python -c 'import moogli'; then
+            echo "Seems like moogli is already installed"
+            exit
+        fi
+
+        cd $WORKDIR
+        if [ ! -d moogli ]; then
+            git clone --depth 1 --branch macosx https://github.com/BhallaLab/moogli
+        else
+            echo "||| moogli is already downloaded"
+        fi
+        cd moogli
+        export QT_HOME=$QTPREFIX
+        export OSG_HOME=$OSGPREFIX
+        export PYQT_HOME=$PYTHONPATH/PyQt4
+        ( CFLAGS="-m64" CXXFLAGS="" OPT="" ARCHFLAGS="-arch x86_64" python setup.py build )
+        if python -c 'import moogli'; then
+            CFLAGS="-m64" CXXFLAGS="" OPT="" ARCHFLAGS="-arch x86_64" \
+                python setup.py install --prefix=$PYTHONPATH
+            # Also copy the _moogli.so, to be sure. distutils behaves oddly.
+            cp moogli/core/_moogli.so $PYTHONPATH/moogli/core/_moogli.so
+        else
+            echo "|| Loading of module is failing."
+        fi
+    )
+
+    ##||| Install startup scripts.
+    MOOSEPATH=${PORT_PREFIX}/lib/python2.7/site-packages
+    cat > $PORT_PREFIX/moosegui <<EOF
+#!/bin/bash
+touch \$HOME/.bash_profile
+source \$HOME/.bash_profile
+if [[ "\${PYTHONPATH}" == *"${MOOSEPATH}"* ]]; then
+    echo "[INFO] PYTHONPATH aleady contains ${MOOSEPATH}"
+else
+    # Also write to .bash_profile, so that we can use it.
+    echo "[INFO] Adding ${MOOSEPATH} to PYTHONPATH"
+    echo "export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH" >> \$HOME/.bash_profile
+    source \$HOME/.bash_profile
+fi
+# make sure that for current runtime, we have correct path.
+export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH
+exec ${PORT_PREFIX}/bin/moosegui
+EOF
+    chmod a+x $PORT_PREFIX/moosegui
+)
+
+## Finally detach the device
+detach_device
diff --git a/packaging_scripts/build_using_xcode.sh b/packaging_scripts/build_using_xcode.sh
new file mode 100755
index 00000000..311c7562
--- /dev/null
+++ b/packaging_scripts/build_using_xcode.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+(
+    mkdir -p  _build_macosx_
+    cd _build_macosx_
+    PROJECT=Moose.xcodeproj
+    cmake -G "Xcode" ..
+    xcodebuild -list
+    xcodebuild clean -project  $PROJECT -configuration Release -alltargets
+    xcodebuild archive -project $PROJECT -configuration Release \
+        -scheme moose.bin  \
+        -archivePath Moose.xcarhive
+    xcodebuild -exportArchive -archivePath Moose.xcarhive -exportPath Moose \
+        -exportFormat pkg 
+)
diff --git a/packaging_scripts/cmake_sanity_check.py b/packaging_scripts/cmake_sanity_check.py
new file mode 100755
index 00000000..e39e6d8a
--- /dev/null
+++ b/packaging_scripts/cmake_sanity_check.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+"""cmake_sanity_check.py: Check if Cmake files are ok.
+
+Last modified: Sat Jan 18, 2014  05:01PM
+
+"""
+    
+__author__           = "Dilawar Singh"
+__copyright__        = "Copyright 2013, Dilawar Singh and NCBS Bangalore"
+__credits__          = ["NCBS Bangalore"]
+__license__          = "GNU GPL"
+__version__          = "1.0.0"
+__maintainer__       = "Dilawar Singh"
+__email__            = "dilawars@ncbs.res.in"
+__status__           = "Development"
+
+import sys
+import os
+import re
+from collections import defaultdict
+
+makefiles = {}
+cmakefiles = {}
+makedirs = set()
+cmakedirs = set()
+
+def check(d):
+    searchMakefiles(d)
+    checkMissingCMake()
+    checkSrcs()
+
+def checkMissingCMake():
+    if (makedirs - cmakedirs):
+        print("[Failed] Test 1")
+        print("Following directories have Makefile but not a CMakeFiles.txt file.")
+        print("%s" % "\t\n".join(makedirs - cmakedirs))
+
+def searchMakefiles(d):
+    for d, subd, fs in os.walk(d):
+        if "CMakeLists.txt" in fs:
+            cmakedirs.add(d)
+            cmakefiles[d] = fs
+        if "Makefile" in fs:
+            makedirs.add(d)
+            makefiles[d] = fs
+        else: pass
+
+def checkSrcs():
+    objPat = re.compile(r"\w+\.o")
+    srcPat = re.compile(r"\w+\.cpp")
+    srcs = []
+    csrcs = []
+    for d in makefiles:
+        with open(os.path.join(d, "Makefile"), "r") as f:
+            txt = f.read()
+            srcs = objPat.findall(txt)
+        try:
+            with open(os.path.join(d, "CMakeLists.txt"), "r") as f:
+                txt = f.read()
+                csrcs = srcPat.findall(txt)
+        except:
+            print("Dir {} does not have CMakeLists.txt".format(d))
+            csrcs = []
+        #print("[TEST 2] Checking if CMake is creating extra objects")
+        for csr in csrcs:
+            objName = csr.replace(".cpp", ".o")
+            if objName in srcs:
+                pass
+            else:
+                #print(" Failed: In dir {}, CMake is creating extra object {}".format(d, objName))
+
+                pass
+        print("[TEST 3] Checking if CMake is missing some objects")
+        for obj in srcs:
+            srcName = obj.replace(".o", ".cpp")
+            if srcName in csrcs: pass
+            else:
+                print(" Failed: In dir {}, CMake is missing object {}".format(d,
+                    srcName))
+    
+def main():
+    dir = sys.argv[1]
+    check(dir)
+
+
+if __name__ == '__main__':
+    main()
diff --git a/packaging_scripts/moose_icon_64x64.png b/packaging_scripts/moose_icon_64x64.png
new file mode 100644
index 0000000000000000000000000000000000000000..270f5aa4fe31501e11b8e47b7777a43334309d6c
GIT binary patch
literal 3575
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

literal 0
HcmV?d00001

diff --git a/packaging_scripts/moose_icon_large.png b/packaging_scripts/moose_icon_large.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab8a1f041a97b9ed4bff0e0e34b41e10ecb795d0
GIT binary patch
literal 58871
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

literal 0
HcmV?d00001

diff --git a/packaging_scripts/release_dmg_file.sh b/packaging_scripts/release_dmg_file.sh
new file mode 100755
index 00000000..a3ad35dd
--- /dev/null
+++ b/packaging_scripts/release_dmg_file.sh
@@ -0,0 +1,106 @@
+#!/bin/bash
+set -x
+
+BREW_PREFIX=/Volumes/Moose_3.0.2
+function test_installation
+{
+    echo "||||||||| TEST STEP"
+    export PYTHONPATH=$BREW_PREFIX/lib/python2.7/site-packages
+    python -c 'import moose'
+    python -c 'import moogli'
+    python -c 'import matplotlib; import numpy'
+    python -c 'import networkx as nx'
+}
+
+LABEL=Moose_3.0.2
+
+# Not all build dependencies are required at runtime. Lets just disable them.
+DMGFILE="$1"
+if [ ! $DMGFILE ]; then
+    echo "USAGE: $0 dmg_file"
+    exit
+fi
+
+TEMPDMG="$DMGFILE"_temp.dmg
+rm -f $TEMPDMG
+cp $DMGFILE $TEMPDMG
+
+echo "|| Detaching dmg file"
+hdiutil detach /Volumes/$LABEL
+
+echo "|| Mouting DMG file"
+hdiutil attach $TEMPDMG
+
+(
+    echo "Removing the temp files"
+    cd /Volumes/$LABEL
+    du -sh /Volumes/$LABEL
+    # One command in each line, else if one fails everyoone fails.
+    ./bin/brew uninstall cmake 
+    ./bin/brew uninstall gcc
+    ./bin/brew uninstall python 
+    ./bin/brew uninstall wget 
+    ./bin/brew uninstall pkg-config
+    ./bin/brew uninstall sqlite
+
+    rm -rf include
+    test_installation
+    rm -rf Frameworks
+    test_installation
+    rm -rf Library
+    test_installation
+    rm -rf etc
+    test_installation
+    rm -rf var
+    test_installation
+    (
+        cd Cellar/qt/4.8*
+        rm -rf *.app
+        rm -rf bin
+        rm -rf tests
+        rm -rf plugins
+        rm -rf mkspecs
+        rm -rf translations
+        rm -rf Frameworks
+    )
+    test_installation
+
+    # Delete all folders named include and share and doc
+    find . -type d -name "include" -print0 | xargs -0 -I d rm -rf d
+    test_installation
+    find . -type d -name "share" -print0 | xargs -0 -I d rm -rf d
+    test_installation
+    find . -type d -name "doc" -print0 | xargs -0 -I d rm -rf d
+    test_installation
+    find . -type d -name "tests" -not -path "*/networkx/*" -print0 | xargs -0 -I d rm -rf d 
+    test_installation
+
+    # Remove all *.a
+    find . -name "*.a" -exec rm -rf \{} \;
+    find . -name "*.html" -exec rm -rf \{} \;
+    find . -name "*.pdf" -exec rm -rf \{} \;
+    find . -name "*.md" -exec rm -rf \{} \;
+    test_installation
+
+    # Adding license.
+    curl -O https://gnu.org/licenses/gpl.txt
+    mv gpl.txt LICENSE.txt
+
+    du -sh /Volumes/$LABEL
+)
+
+# Create another image from this folder.
+OUTFILE="$DMGFILE"_RW.dmg
+rm -f $OUTFILE
+hdiutil create -volname $LABEL -srcfolder /Volumes/$LABEL \
+    -ov -format UDRW "$OUTFILE"
+
+ls -lh *.dmg
+
+echo "|| Detaching .."
+hdiutil detach /Volumes/$LABEL
+
+echo "|| Compressing "
+rm -f "$LABEL"_OSX.dmg
+hdiutil convert "$OUTFILE" -format UDBZ -o "$LABEL"_OSX.dmg
+
-- 
GitLab