From 24bf6bf31a98511e04e6ff6c6cf94c925d7be96c Mon Sep 17 00:00:00 2001 From: G Roques Date: Wed, 27 Dec 2023 10:15:28 -0600 Subject: [PATCH] Add post-link.sh script Allows for executing python scripts which import FreeCAD modules when activating the conda environment containing freecad. LIMITATIONS: Windows is not supported. See the following FreeCAD forum discussion: https://forum.freecad.org/viewtopic.php?p=493282#p493277 --- recipe/post-link.sh | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 recipe/post-link.sh diff --git a/recipe/post-link.sh b/recipe/post-link.sh new file mode 100755 index 00000000..0b1f5c75 --- /dev/null +++ b/recipe/post-link.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# ---------------------------------------------------------------------------------------------------------------- +# +# By adding the $CONDA_PREFIX/lib directory to $PYTHONPATH, python is able to find +# FreeCAD, FreeCADGui, and other various FreeCAD-related modules during execution. +# +# This script is executed after the freecad package is installed. +# See: +# https://docs.conda.io/projects/conda-build/en/latest/resources/link-scripts.html +# +# It creates scripts which are executed upon activating and deactivating the conda environment containing freecad. +# See: +# https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#saving-environment-variables +# +# ---------------------------------------------------------------------------------------------------------------- +cd $CONDA_PREFIX +mkdir -p ./etc/conda/activate.d +mkdir -p ./etc/conda/deactivate.d + +echo '#!/bin/sh' > ./etc/conda/activate.d/env_vars.sh +echo 'export INITIAL_PYTHONPATH=${PYTHONPATH}' >> ./etc/conda/activate.d/env_vars.sh +echo "export PYTHONPATH=$CONDA_PREFIX/lib:\${PYTHONPATH}" >> ./etc/conda/activate.d/env_vars.sh + +echo '#!/bin/sh' > ./etc/conda/deactivate.d/env_vars.sh +echo 'export PYTHONPATH=${INITIAL_PYTHONPATH}' >> ./etc/conda/deactivate.d/env_vars.sh +echo 'unset INITIAL_PYTHONPATH' >> ./etc/conda/deactivate.d/env_vars.sh + +# Issue describing conda activation scripts for fish shell: +# https://github.com/conda/conda/issues/7993#issuecomment-459453605 +echo '#!/usr/bin/env fish' > ./etc/conda/activate.d/env_vars.fish +echo 'set -gx INITIAL_PYTHONPATH $PYTHONPATH' > ./etc/conda/activate.d/env_vars.fish +echo "set -gx PYTHONPATH $CONDA_PREFIX/lib $PYTHONPATH" >> ./etc/conda/activate.d/env_vars.fish + +echo '#!/usr/bin/env fish' > ./etc/conda/deactivate.d/env_vars.fish +echo 'set -gx PYTHONPATH $INITIAL_PYTHONPATH' >> ./etc/conda/deactivate.d/env_vars.fish +echo 'set -e INITIAL_PYTHONPATH' >> ./etc/conda/deactivate.d/env_vars.fish +