80 lines
2.7 KiB
Bash
80 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
set -x
|
|
|
|
conda_env="fc_env"
|
|
|
|
mkdir -p ${conda_env}
|
|
|
|
cp -a ../.pixi/envs/default/* ${conda_env}
|
|
|
|
export PATH="${PWD}/${conda_env}/bin:${PATH}"
|
|
export CONDA_PREFIX="${PWD}/${conda_env}"
|
|
|
|
# remove arm binaries that fail to extract unless using latest 7zip
|
|
rm $(find ${conda_env} -name \*arm\*.exe)
|
|
|
|
# delete unnecessary stuff
|
|
rm -rf ${conda_env}/include
|
|
find ${conda_env} -name \*.a -delete
|
|
|
|
copy_dir="FreeCAD_Conda_Build"
|
|
mkdir -p ${copy_dir}/bin
|
|
|
|
# Copy Conda's Python and (U)CRT to FreeCAD/bin
|
|
cp -a ${conda_env}/DLLs ${copy_dir}/bin/DLLs
|
|
cp -a ${conda_env}/Lib ${copy_dir}/bin/Lib
|
|
cp -a ${conda_env}/Scripts ${copy_dir}/bin/Scripts
|
|
cp -a ${conda_env}/python*.* ${copy_dir}/bin
|
|
cp -a ${conda_env}/msvc*.* ${copy_dir}/bin
|
|
cp -a ${conda_env}/ucrt*.* ${copy_dir}/bin
|
|
# Copy meaningful executables
|
|
cp -a ${conda_env}/Library/bin/ccx.exe ${copy_dir}/bin
|
|
cp -a ${conda_env}/Library/bin/gmsh.exe ${copy_dir}/bin
|
|
cp -a ${conda_env}/Library/bin/dot.exe ${copy_dir}/bin
|
|
cp -a ${conda_env}/Library/bin/unflatten.exe ${copy_dir}/bin
|
|
cp -a ${conda_env}/Library/mingw-w64/bin/* ${copy_dir}/bin
|
|
# copy resources -- perhaps needs reduction
|
|
cp -a ${conda_env}/Library/share ${copy_dir}/share
|
|
# get all the dependency .dlls
|
|
cp -a ${conda_env}/Library/bin/*.dll ${copy_dir}/bin
|
|
# Copy FreeCAD build
|
|
cp -a ${conda_env}/Library/bin/freecad* ${copy_dir}/bin
|
|
cp -a ${conda_env}/Library/bin/FreeCAD* ${copy_dir}/bin
|
|
cp -a ${conda_env}/Library/data ${copy_dir}/data
|
|
cp -a ${conda_env}/Library/Ext ${copy_dir}/Ext
|
|
cp -a ${conda_env}/Library/lib ${copy_dir}/lib
|
|
cp -a ${conda_env}/Library/Mod ${copy_dir}/Mod
|
|
mkdir -p ${copy_dir}/doc
|
|
cp -a ${conda_env}/Library/doc/{ThirdPartyLibraries.html,LICENSE.html} ${copy_dir}/doc
|
|
rm -rf ${conda_env}/bin_tmp
|
|
|
|
# Apply Patches
|
|
mv ${copy_dir}/bin/Lib/ssl.py ssl-orig.py
|
|
cp ssl-patch.py ${copy_dir}/bin/Lib/ssl.py
|
|
|
|
echo '[Paths]' >> ${copy_dir}/bin/qt6.conf
|
|
echo 'Prefix = ../lib/qt6' >> ${copy_dir}/bin/qt6.conf
|
|
|
|
python_version=$(python -c 'import platform; print("py" + platform.python_version_tuple()[0] + platform.python_version_tuple()[1])')
|
|
version_name="FreeCAD_${BUILD_TAG}-Windows-$(uname -m)-${python_version}"
|
|
|
|
echo -e "################"
|
|
echo -e "version_name: ${version_name}"
|
|
echo -e "################"
|
|
|
|
pixi list -e default > ${copy_dir}/packages.txt
|
|
sed -i '1s/.*/\nLIST OF PACKAGES:/' ${copy_dir}/packages.txt
|
|
|
|
mv ${copy_dir} ${version_name}
|
|
|
|
"${PROGRAMFILES}/7-Zip/7z.exe" a -t7z -mx9 -mmt=${NUMBER_OF_PROCESSORS} ${version_name}.7z ${version_name} -bb
|
|
|
|
# create hash
|
|
sha256sum ${version_name}.7z > ${version_name}.7z-SHA256.txt
|
|
|
|
if [ "${UPLOAD_RELEASE}" == "true" ]; then
|
|
gh release upload --clobber ${BUILD_TAG} "${version_name}.7z" "${version_name}.7z-SHA256.txt"
|
|
fi
|