CMakeLists.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. cmake_minimum_required(VERSION 3.16)
  2. project(ngs LANGUAGES CXX)
  3. set(CMAKE_CXX_STANDARD 17)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5. set(CMAKE_CXX_EXTENSIONS OFF)
  6. add_definitions(-DHPSOCKET_STATIC_LIB)
  7. add_executable(ngs
  8. src/main.cpp
  9. src/utils.cpp
  10. src/api/api_server.cpp
  11. src/store/store.cpp
  12. src/system/metrics.cpp
  13. src/system/metrics_history.cpp
  14. src/files/files.cpp
  15. src/tasks/tasks.cpp
  16. src/software/software.cpp
  17. src/software/nginx/nginx.cpp
  18. src/software/fastweb/fastweb.cpp
  19. src/software/mysql/mysql.cpp
  20. src/software/redis/redis.cpp
  21. src/website/website.cpp
  22. src/ssl/acme.cpp
  23. src/auth/auth.cpp
  24. src/weblog/weblog.cpp
  25. )
  26. target_include_directories(ngs PRIVATE
  27. ${CMAKE_CURRENT_SOURCE_DIR}/src
  28. /usr/local/include
  29. )
  30. target_compile_options(ngs PRIVATE -Wall -Wextra)
  31. target_compile_definitions(ngs PRIVATE NGS_SOURCE_DIR="${CMAKE_SOURCE_DIR}")
  32. link_directories(/usr/local/lib /usr/lib/x86_64-linux-gnu)
  33. target_link_libraries(ngs PRIVATE
  34. ylib
  35. hpsocket
  36. leveldb
  37. sqlite3
  38. ssl
  39. crypto
  40. z
  41. pthread
  42. dl
  43. rt
  44. stdc++fs
  45. )
  46. install(TARGETS ngs RUNTIME DESTINATION bin)
  47. add_custom_target(install-deps
  48. COMMAND sudo apt-get update
  49. COMMAND sudo DEBIAN_FRONTEND=noninteractive apt-get install -y
  50. build-essential libpcre3-dev zlib1g-dev libssl-dev curl tar
  51. libleveldb-dev
  52. COMMENT "Install build dependencies"
  53. VERBATIM
  54. )