install_ffead-cpp-backends.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #!/bin/bash
  2. cd $IROOT
  3. CURR_TYPE="lithium"
  4. if [ "$CURR_TYPE" = "lithium" ]
  5. then
  6. SRV_TYPE=SRV_LITHIUM
  7. apt install --no-install-recommends -y libboost-all-dev
  8. fi
  9. CURR_TYPE="cinatra"
  10. if [ "$CURR_TYPE" = "cinatra" ]
  11. then
  12. cd $IROOT
  13. apt install --no-install-recommends -y libboost-all-dev
  14. SRV_TYPE=SRV_CINATRA
  15. CINATRA_INC="-DCINATRA_INCLUDES=${IROOT}/cinatra/include"
  16. git clone https://github.com/sumeetchhetri/cinatra.git
  17. cd cinatra
  18. rm -rf .git
  19. fi
  20. CURR_TYPE="drogon"
  21. if [ "$CURR_TYPE" = "drogon" ]
  22. then
  23. cd $IROOT
  24. apt install --no-install-recommends -y libjsoncpp-dev uuid-dev
  25. apt remove -y libsqlite3-dev
  26. SRV_TYPE=SRV_DROGON
  27. git clone --recurse-submodules https://github.com/sumeetchhetri/drogon
  28. cd drogon
  29. mkdir build
  30. cd build
  31. cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_CTL=off -DBUILD_EXAMPLES=off -DBUILD_ORM=off ..
  32. make -j4 install
  33. cd $IROOT
  34. rm -rf drogon
  35. fi
  36. CURR_TYPE="nghttp2"
  37. if [ "$CURR_TYPE" = "nghttp2" ]
  38. then
  39. apt install --no-install-recommends -y libjansson-dev libc-ares-dev libboost-all-dev
  40. cd $IROOT
  41. wget -q https://github.com/nghttp2/nghttp2/releases/download/v1.42.0/nghttp2-1.42.0.tar.gz
  42. tar xf nghttp2-1.42.0.tar.gz
  43. cd nghttp2-1.42.0
  44. cmake -DENABLE_ASIO_LIB=on -GNinja .
  45. ninja install
  46. cd $IROOT
  47. rm -rf nghttp2-1.42.0 nghttp2-1.42.0.tar.gz
  48. fi
  49. CURR_TYPE="mongols"
  50. if [ "$CURR_TYPE" = "mongols" ]
  51. then
  52. cd $IROOT
  53. wget -q https://github.com/webcpp/mongols/archive/release-1.8.4.12.tar.gz
  54. tar xf release-1.8.4.12.tar.gz
  55. cd mongols-release-1.8.4.12/
  56. make clean && make -j4 && make install && ldconfig
  57. cp -rf inc/mongols/lib/* /usr/local/include/
  58. cd $IROOT
  59. rm -rf mongols-release-1.8.4.12/ release-1.8.4.12.tar.gz
  60. fi
  61. CURR_TYPE="uv-cpp"
  62. if [ "$CURR_TYPE" = "uv-cpp" ]
  63. then
  64. apt install --no-install-recommends -y libuv1-dev
  65. cd $IROOT
  66. git clone https://github.com/sumeetchhetri/uv-cpp
  67. cd uv-cpp
  68. cmake .
  69. make -j4 install
  70. cd $IROOT
  71. rm -rf uv-cpp
  72. fi
  73. CURR_TYPE="CppServer"
  74. if [ "$CURR_TYPE" = "CppServer" ]
  75. then
  76. apt install --no-install-recommends -y python3 python3-pip
  77. pip3 install gil
  78. cd $IROOT
  79. git clone https://github.com/chronoxor/CppServer
  80. cd CppServer
  81. gil update
  82. cd $IROOT/CppServer/modules/CppCommon/modules/fmt && git checkout b9ab5c8836bbffbe0a877f64d6faef8fbf4fd394 -b works
  83. cd $IROOT/CppServer/build
  84. ./unix.sh
  85. cp $IROOT/CppServer/bin/libcppserver.a /usr/local/lib/
  86. cp -rf $IROOT/CppServer/modules/asio/asio/include/* /usr/local/include/
  87. cp -rf $IROOT/CppServer/modules/CppCommon/include/* /usr/local/include/
  88. cp -rf $IROOT/CppServer/include/* /usr/local/include/
  89. cp $IROOT/CppServer/temp/modules/libasio.a /usr/local/lib/
  90. cp $IROOT/CppServer/temp/modules/CppCommon/libcppcommon.a /usr/local/lib/
  91. cp $IROOT/CppServer/temp/modules/CppCommon/modules/libfmt.a /usr/local/lib/
  92. cd $IROOT
  93. rm -rf CppServer
  94. fi
  95. CURR_TYPE="lsquic-no"
  96. if [ "$CURR_TYPE" = "lsquic" ]
  97. then
  98. apt install --no-install-recommends -y libunwind-dev golang libevent-dev
  99. cd $IROOT
  100. git clone https://boringssl.googlesource.com/boringssl
  101. cd boringssl
  102. git checkout b117a3a0b7bd11fe6ebd503ec6b45d6b910b41a1
  103. sed -i "s/-Werror//g" CMakeLists.txt
  104. cmake -DCMAKE_BUILD_TYPE=Release . && make -j4
  105. cd $IROOT
  106. git clone https://github.com/litespeedtech/lsquic.git
  107. cd lsquic
  108. git submodule init
  109. git submodule update
  110. cmake -DBORINGSSL_DIR=${IROOT}/boringssl . && make install -j4
  111. cd $IROOT
  112. rm -rf lsquic boringssl
  113. apt remove -y golang
  114. apt autoremove -y
  115. fi
  116. rm -rf /var/lib/apt/lists/*