File indexing completed on 2026-04-09 07:48:53
0001
0002 usage(){ cat << EOU
0003 CSGScanTest.sh
0004 ===============
0005
0006 ::
0007
0008 ~/o/CSG/tests/CSGScanTest.sh
0009
0010
0011 rbin
0012 runs locally built bin /tmp/$USER/opticks/${name}.build/$name
0013 run
0014 runs om standardly built name $name
0015
0016 EOU
0017 }
0018
0019
0020 cd $(dirname $(realpath $BASH_SOURCE))
0021
0022 cuda_prefix=/usr/local/cuda
0023 CUDA_PREFIX=${CUDA_PREFIX:-$cuda_prefix}
0024
0025
0026 defarg="info_run_ana"
0027 [ -n "$BP" ] && defarg="info_dbg"
0028
0029 arg=${1:-$defarg}
0030
0031
0032
0033 gdb__ ()
0034 {
0035 if [ -z "$BP" ]; then
0036 H="";
0037 B="";
0038 T="-ex r";
0039 else
0040 H="-ex \"set breakpoint pending on\"";
0041 B="";
0042 for bp in $BP;
0043 do
0044 B="$B -ex \"break $bp\" ";
0045 done;
0046 T="-ex \"info break\" -ex r";
0047 fi;
0048 local runline="gdb $H $B $T --args $* ";
0049 echo $runline;
0050 date;
0051 eval $runline;
0052 date
0053 }
0054
0055
0056 name=CSGScanTest
0057 tmpd=/tmp/$USER/opticks/$name
0058 bdir=/tmp/$USER/opticks/${name}.build
0059 mkdir -p $bdir
0060 bin=$bdir/$name
0061 script=CSGScanTest.py
0062
0063
0064
0065 geom=DifferenceBoxSphere
0066
0067
0068 export GEOM=${GEOM:-$geom}
0069 export FOLD=$tmpd/$GEOM
0070 export BASE=$FOLD
0071
0072 export CSGScanTest__init_SAVEFOLD=$HOME/.opticks/GEOM/$GEOM
0073
0074 vars="FOLD GEOM defarg arg SAVEFOLD"
0075
0076 if [ "${arg/info}" != "$arg" ]; then
0077 for var in $vars ; do printf "%20s : %s \n" "$var" "${!var}" ; done
0078 fi
0079
0080
0081 if [ "${arg/build}" != "$arg" ]; then
0082
0083 opts=""
0084
0085
0086 cui=../CSGScan.cu
0087 cuo=$bdir/CSGScan_cu.o
0088 nvcc -c $cui \
0089 -std=c++11 -lstdc++ \
0090 -I.. \
0091 -I$OPTICKS_PREFIX/include/SysRap \
0092 -o $cuo
0093 [ $? -ne 0 ] && echo $BASH_SOURCE : nvcc compile error cui $cui cuo $cuo && exit 1
0094
0095 srcs="$name.cc
0096 ../CSGFoundry.cc
0097 ../CSGImport.cc
0098 ../CSGSolid.cc
0099 ../CSGCopy.cc
0100 ../CSGPrim.cc
0101 ../CSGNode.cc
0102 ../CSGScan.cc
0103 ../CSGTarget.cc
0104 ../CSGMaker.cc
0105 ../CU.cc
0106 $cuo
0107 "
0108
0109 gcc \
0110 $srcs \
0111 -I.. \
0112 -std=c++11 -lm \
0113 $opts \
0114 -I${CUDA_PREFIX}/include \
0115 -I${OPTICKS_PREFIX}/externals/glm/glm \
0116 -I${OPTICKS_PREFIX}/include/SysRap \
0117 -I${OPTICKS_PREFIX}/externals/plog/include \
0118 -L${CUDA_PREFIX}/lib64 -lcudart -lstdc++ \
0119 -L${OPTICKS_PREFIX}/lib64 \
0120 -lSysRap \
0121 -DWITH_CHILD \
0122 -o $bin
0123
0124
0125 [ $? -ne 0 ] && echo build error && exit 1
0126 fi
0127
0128
0129 if [ "${arg/rbin}" != "$arg" ]; then
0130 echo $BASH_SOURCE - GEOM $GEOM $arg
0131 $bin
0132 [ $? -ne 0 ] && echo rbin error && exit 2
0133 fi
0134
0135 if [ "${arg/run}" != "$arg" ]; then
0136 echo $BASH_SOURCE - GEOM $GEOM $arg
0137 $name
0138 [ $? -ne 0 ] && echo run error && exit 2
0139 fi
0140
0141 if [ "${arg/dbg}" != "$arg" ]; then
0142 echo $BASH_SOURCE - GEOM $GEOM
0143 gdb__ $name
0144 [ $? -ne 0 ] && echo dbg error && exit 2
0145 fi
0146
0147 if [ "${arg/grab}" != "$arg" ]; then
0148 source ../../bin/BASE_grab.sh $arg
0149 [ $? -ne 0 ] && echo grab error && exit 4
0150 fi
0151
0152 if [ "${arg/ana}" != "$arg" ]; then
0153 ${IPYTHON:-ipython} -i --pdb $script
0154 [ $? -ne 0 ] && echo ana error && exit 4
0155 fi
0156
0157 exit 0