install_ffead-cpp-backends.sh 3.0 KB

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