##!/usr/bin/env bash # # MacOS Build Script for FreeCAD using Conda. # This is intended for developer use. # # Copyright (c) 2020 by Jeffrey Zampieron. All rights reserved. # # License: LGPLv2.1 # # References: # - Conda: https://conda.io/projects/conda/en/latest/user-guide/install/index.html # - Conda Build: https://docs.conda.io/projects/conda-build/en/latest/install-conda-build.html ########################################################################### # Script wide setup. ########################################################################### # The Conda environment name FCENV=freecad_dev # The cmake build directory HOST=$(uname) ########################################################################### # Env Checks ########################################################################### if [[ ${HOST} =~ "Linux" ]]; then # Linux specific checks here echo "Linux specific checks..." elif [[ ${HOST} =~ "Darwin" ]]; then # OSX specific checks here. echo "OS X specific checks..." which xcrun if [ $? != 0 ]; then echo "xcrun not found... install XCode command line tools..." echo "using: xcode-select --install" exit 1 fi else echo "unknown host env... probably won't work. Aborting build." exit 1 fi ########################################################################### # Conda Setup ########################################################################### which conda if [ $? != 0 ]; then echo "Failed to find conda executable. Please install." exit 1 fi if [[ "${CONDA_DEFAULT_ENV}" =~ "${FCENV}" ]]; then echo "Already in env" elif [[ -z "${CONDA_DEFAULT_ENV}" ]]; then echo "Not in conda env... activating" eval "$(conda shell.bash hook)" conda activate ${FCENV} else # Assume we are in some other env. echo "In ${CONDA_DEFAULT_ENV}, attempting switch to ${FCENV}" eval "$(conda shell.bash hook)" conda deactivate conda activate ${FCENV} fi if [ $? != 0 ]; then echo "Failed to activate conda env: ${FCENV} ... creating" if [[ ${HOST} =~ "Linux" ]]; then echo "Linux" conda env create -f environment-linux.yml elif [[ ${HOST} =~ "Darwin" ]]; then echo "OS X" conda env create -f environment-osx.yml else echo "Unknown Host: ${HOST}" exit 1 fi conda activate ${FCENV} if [ $? != 0 ]; then echo "Failed to create conda environment and activate it." exit 1 fi fi if [ -z "${CONDA_PREFIX}" ]; then echo "Failed to find CONDA_PREFIX variable." exit 1 fi PREFIX="${CONDA_PREFIX}" ./conda/build.sh