#!/bin/sh # [ghibo] # # 1.0.20200921 - script for building bundled OpenUSD library USD_VER=23.08 BINDIR=/usr/bin SOURCE_FILE=OpenUSD-${USD_VER}.tar.gz LIBDIR=/usr/lib64 PATCH_FILE=../../build_files/build_environment/patches/usd.diff TARGET_DIR=$(pwd)/build_dir while [ ! -z "$1" ]; do case "$1" in --bindir|-b) shift BINDIR="$1" ;; --cxxflags|-x) shift CXXFLAGS="$1" ;; --libdir|-l) shift LIBS="$1" ;; --patch|-p) shift PATCH_FILE="$1" ;; --patch2|-q) shift PATCH2_FILE="$1" ;; --patch3|-r) shift PATCH3_FILE="$1" ;; --patch4|-u) shift PATCH4_FILE="$1" ;; --source|-s) shift SOURCE_FILE="$1" ;; --target|-t) shift TARGET_DIR="$1" ;; --version|-v) shift USD_VER="$1" ;; *) exit 0 ;; esac shift done if [ -z "${CXXFLAGS}" ]; then CXXFLAGS="-O2" fi if [ -z "${CFLAGS}" ]; then CFLAGS="-O2" fi export CXXFLAGS="${CXXFLAGS} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" export CFLAGS="${CFLAGS} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" if [ ! -z "${TARGET_DIR}" ]; then mkdir -p ${TARGET_DIR}/usd/lib tar -xvf ${SOURCE_FILE} -C ${TARGET_DIR} fi pushd ${TARGET_DIR}/OpenUSD-${USD_VER} # user patch if [ -e "$PATCH_FILE" ]; then patch -p1 < ${PATCH_FILE} fi if [ -e "$PATCH3_FILE" ]; then patch -p1 < ${PATCH3_FILE} fi if [ -e "$PATCH4_FILE" ]; then patch -p1 < ${PATCH4_FILE} fi # apply internal blender patchset if [ -e "$PATCH2_FILE" ]; then patch -p1 < ${PATCH2_FILE} fi cmake \ -Wno-dev \ -B build \ -S . \ \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_INSTALL_LIBDIR:PATH=${LIBDIR} \ -DCMAKE_INSTALL_LIBEXECDIR:PATH=/usr/libexec \ -DCMAKE_INSTALL_RUNSTATEDIR:PATH=/run \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc \ -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ -DLIB_INSTALL_DIR:PATH=${LIBDIR} \ -DSYSCONF_INSTALL_DIR:PATH=/etc \ -DSHARE_INSTALL_PREFIX:PATH=/usr/share \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG" \ -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="-DNDEBUG" \ -DCMAKE_SKIP_RPATH:BOOL=ON \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags" \ \ -DBoost_USE_MULTITHREADED:BOOL=ON \ -DBoost_USE_STATIC_LIBS:BOOL=OFF \ -DBoost_USE_STATIC_RUNTIME:BOOL=OFF \ -DBoost_NO_BOOST_CMAKE:BOOL=ON \ -DPXR_BUILD_IMAGING:BOOL=OFF \ -DPXR_BUILD_MONOLITHIC:BOOL=ON \ -DPXR_MONOLITHIC_IMPORT:STRING=./cmake/defaults/Version.cmake \ -DPXR_BUILD_TESTS:BOOL=OFF \ -DPXR_BUILD_USD_TOOLS:BOOL=OFF \ -DPXR_ENABLE_PYTHON_SUPPORT:BOOL=OFF \ -DPXR_BUILD_USDVIEW:BOOL=OFF \ -DPXR_SET_INTERNAL_NAMESPACE=usdBlender \ -DPXR_VALIDATE_GENERATED_CODE:BOOL=OFF \ -DPXR_HEADLESS_TEST_MODE:BOOL=ON \ -DTBB_tbb_LIBRARY="${LIBDIR}/libtbb.so" \ -DCMAKE_DEBUG_POSTFIX:STRING=_d \ -DCMAKE_CXX_FLAGS_RELEASE:STRING="${CXXFLAGS}" \ -DCMAKE_C_FLAGS_RELEASE:STRING="${CFLAGS}" \ -DCMAKE_INSTALL_PREFIX:FILEPATH=${TARGET_DIR}/usd cmake --build "build" -j$(nproc) --verbose (cd build make install INSTALL="/usr/bin/install -p" cd .. ) # lib is not installed above, install manually cp -p ./build/pxr/libusd_usd_m.a ${TARGET_DIR}/usd/lib/ popd exit 0