config.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. fw_depends cutelyst
  3. # configure
  4. # DRIVER
  5. # UWSGI
  6. # NGINX
  7. # PROCESS_OR_THREAD
  8. # CUTELYST_EVENT_LOOP_EPOLL
  9. echo DRIVER=${DRIVER}
  10. echo UWSGI=${UWSGI}
  11. echo NGINX=${NGINX}
  12. echo QT_VERSION_MM=${QT_VERSION_MM}
  13. echo CUTELYST_EVENT_LOOP_EPOLL=${CUTELYST_EVENT_LOOP_EPOLL}
  14. echo C_PROCESSES=${C_PROCESSES}
  15. echo C_THREADS=${C_THREADS}
  16. echo CPU_AFFINITY=${CPU_AFFINITY}
  17. if [ "${DRIVER}" == "QMYSQL" ]; then
  18. fw_depends mysql
  19. elif [ "${DRIVER}" == "QPSQL" ]; then
  20. fw_depends postgresql
  21. fi
  22. CROOT=${IROOT}/cutelyst
  23. mkdir -p ${CROOT}/benchmarks || true
  24. cd ${CROOT}/benchmarks
  25. # build
  26. export CMAKE_PREFIX_PATH=/opt/qt${QT_VERSION_MM}:${CROOT}
  27. cmake $TROOT -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CROOT
  28. make -j $CPU_COUNT
  29. if [ -n "${UWSGI}" ]; then
  30. cp -v ${TROOT}/config/config_socket.ini ${CROOT}/config.ini
  31. SEND_DATE=true
  32. else
  33. cp -v ${TROOT}/config/config.ini ${CROOT}/config.ini
  34. SEND_DATE=false
  35. fi
  36. sed -i "s|Driver=.*|Driver=${DRIVER}|g" ${CROOT}/config.ini
  37. sed -i "s|DatabaseHostName=.*|DatabaseHostName=${DBHOST}|g" ${CROOT}/config.ini
  38. sed -i "s|SendDate=.*|SendDate=${SEND_DATE}|g" ${CROOT}/config.ini
  39. export LD_LIBRARY_PATH=/opt/qt${QT_VERSION_MM}/lib:${CROOT}/lib/x86_64-linux-gnu/
  40. if [ -n "${UWSGI}" ]; then
  41. uwsgi \
  42. --ini ${CROOT}/config.ini \
  43. --plugin ${CROOT}/lib/uwsgi/plugins/cutelyst_plugin.so \
  44. --cutelyst-app ${CROOT}/benchmarks/src/libcutelyst_benchmarks.so \
  45. --processes=${C_PROCESSES} \
  46. --threads=${C_THREADS} \
  47. --cpu-affinity=${CPU_AFFINITY} \
  48. --reuse-port \
  49. &
  50. else
  51. ${CROOT}/bin/cutelyst-wsgi \
  52. --ini ${CROOT}/config.ini:uwsgi \
  53. -a ${CROOT}/benchmarks/src/libcutelyst_benchmarks.so \
  54. --processes=${C_PROCESSES} \
  55. --threads=${C_THREADS} \
  56. --cpu-affinity=${CPU_AFFINITY} \
  57. --socket-timeout 0 \
  58. --reuse-port \
  59. &
  60. fi
  61. # configure Nginx
  62. if [ -n "${NGINX}" ]; then
  63. fw_depends nginx
  64. cp -v ${TROOT}/nginx.conf ${CROOT}/nginx.conf
  65. sed -i "s|include .*/conf/uwsgi_params;|include ${NGINX_HOME}/conf/uwsgi_params;|g" ${CROOT}/nginx.conf
  66. nginx -c ${CROOT}/nginx.conf
  67. fi