mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-02 17:46:22 +03:00
New repository for ExpToCas: https://github.com/Open-Cascade-SAS/ExpToCas Documentation and all build process are fully migrated.
127 lines
3.8 KiB
Bash
Executable File
127 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Auxiliary script for semi-automated building of OCCT for WASM platform.
|
|
# wasm_custom.sh should be configured with paths to CMake, 3rd-parties and Emscripten SDK.
|
|
# FreeType should be specified as mandatory dependency.
|
|
|
|
export aScriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
export aSrcRoot="${aScriptDir}/../.."
|
|
export aBuildRoot=work
|
|
|
|
export aNbJobs=${NUMBER_OF_PROCESSORS}
|
|
|
|
export toCMake=1
|
|
export toClean=0
|
|
export toMake=1
|
|
export toInstall=1
|
|
|
|
export BUILD_ModelingData=ON
|
|
export BUILD_ModelingAlgorithms=ON
|
|
export BUILD_Visualization=ON
|
|
export BUILD_ApplicationFramework=ON
|
|
export BUILD_DataExchange=ON
|
|
|
|
if [ -f "${aScriptDir}/wasm_custom.sh" ] ; then
|
|
. "${aScriptDir}/wasm_custom.sh"
|
|
fi
|
|
|
|
. "${EMSDK_ROOT}/emsdk_env.sh"
|
|
|
|
export aToolchain="${EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake"
|
|
|
|
export aGitBranch=`git symbolic-ref --short HEAD`
|
|
|
|
echo "Compilation OCCT branch : $aGitBranch"
|
|
|
|
export aPlatformAndCompiler=wasm
|
|
|
|
export aWorkDir="${aSrcRoot}/${aBuildRoot}/${aPlatformAndCompiler}-make"
|
|
if [ ! -d "${aWorkDir}" ]; then
|
|
mkdir -p "${aWorkDir}"
|
|
fi
|
|
|
|
export aDestDir="${aSrcRoot}/${aBuildRoot}/${aPlatformAndCompiler}"
|
|
if [ ! -d "${aDestDir}" ]; then
|
|
mkdir -p "${aDestDir}"
|
|
fi
|
|
|
|
export aLogFile="${aSrcRoot}/${aBuildRoot}/build-${aPlatformAndCompiler}.log"
|
|
if [ -f "${aLogFile}" ]; then
|
|
rm "${aLogFile}"
|
|
fi
|
|
|
|
echo Start building OCCT for ${aPlatformAndCompiler}
|
|
echo Start building OCCT for ${aPlatformAndCompiler}>> "${aLogFile}"
|
|
|
|
pushd "${aWorkDir}"
|
|
pwd
|
|
echo toCMake=${toCMake}
|
|
if [ "${toCMake}" = "1" ]; then
|
|
|
|
echo "Configuring OCCT for WASM..."
|
|
echo cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="${aToolchain}" \
|
|
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
|
-DBUILD_LIBRARY_TYPE:STRING="Static" \
|
|
-DINSTALL_DIR:PATH="${aDestDir}" \
|
|
-DINSTALL_DIR_INCLUDE:STRING="inc" \
|
|
-DINSTALL_DIR_RESOURCE:STRING="src" \
|
|
-D3RDPARTY_FREETYPE_DIR:PATH="$aFreeType" \
|
|
-D3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="$aFreeType/include" \
|
|
-D3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="$aFreeType/include" \
|
|
-DBUILD_MODULE_FoundationClasses:BOOL="ON" \
|
|
-DBUILD_MODULE_ModelingData:BOOL="${BUILD_ModelingData}" \
|
|
-DBUILD_MODULE_ModelingAlgorithms:BOOL="${BUILD_ModelingAlgorithms}" \
|
|
-DBUILD_MODULE_Visualization:BOOL="${BUILD_Visualization}" \
|
|
-DBUILD_MODULE_ApplicationFramework:BOOL="${BUILD_ApplicationFramework}" \
|
|
-DBUILD_MODULE_DataExchange:BOOL="${BUILD_DataExchange}" \
|
|
-DBUILD_MODULE_Draw:BOOL="OFF" \
|
|
-DBUILD_DOC_Overview:BOOL="OFF" "${aSrcRoot}"
|
|
|
|
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE:FILEPATH="${aToolchain}" \
|
|
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
|
-DBUILD_LIBRARY_TYPE:STRING="Static" \
|
|
-DINSTALL_DIR:PATH="${aDestDir}" \
|
|
-DINSTALL_DIR_INCLUDE:STRING="inc" \
|
|
-DINSTALL_DIR_RESOURCE:STRING="src" \
|
|
-D3RDPARTY_FREETYPE_DIR:PATH="$aFreeType" \
|
|
-D3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="$aFreeType/include" \
|
|
-D3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="$aFreeType/include" \
|
|
-DBUILD_MODULE_FoundationClasses:BOOL="ON" \
|
|
-DBUILD_MODULE_ModelingData:BOOL="${BUILD_ModelingData}" \
|
|
-DBUILD_MODULE_ModelingAlgorithms:BOOL="${BUILD_ModelingAlgorithms}" \
|
|
-DBUILD_MODULE_Visualization:BOOL="${BUILD_Visualization}" \
|
|
-DBUILD_MODULE_ApplicationFramework:BOOL="${BUILD_ApplicationFramework}" \
|
|
-DBUILD_MODULE_DataExchange:BOOL="${BUILD_DataExchange}" \
|
|
-DBUILD_MODULE_Draw:BOOL="OFF" \
|
|
-DBUILD_DOC_Overview:BOOL="OFF" "${aSrcRoot}"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Problem during configuration"
|
|
popd
|
|
exit 1
|
|
fi
|
|
|
|
fi
|
|
|
|
if [ "${toClean}" = "1" ]; then
|
|
make clean
|
|
fi
|
|
|
|
if [ "${toMake}" = "1" ]; then
|
|
echo Building...
|
|
make -j ${aNbJobs} 2>> "${aLogFile}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Problem during make operation"
|
|
popd
|
|
exit 1
|
|
fi
|
|
echo "${aLogFile}"
|
|
fi
|
|
|
|
if [ "${toInstall}" = "1" ]; then
|
|
echo Installing into ${aDestDir}
|
|
make install 2>> "${aLogFile}"
|
|
fi
|
|
|
|
popd
|