CMakeLists.txt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Copyright The OpenTelemetry Authors
  2. # SPDX-License-Identifier: Apache-2.0
  3. cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
  4. project(
  5. dependencies
  6. LANGUAGES CXX
  7. VERSION 0.0.1)
  8. set(CMAKE_CXX_STANDARD 11)
  9. set(CMAKE_CXX_EXTENSIONS OFF)
  10. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  11. set(CMAKE_CXX_FLAGS "-O2")
  12. set(CMAKE_BUILD_TYPE
  13. Release
  14. CACHE STRING "Build type" FORCE)
  15. include(GNUInstallDirs)
  16. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
  17. ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
  18. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
  19. ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
  20. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
  21. ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
  22. set(INSTALL_LIBDIR
  23. ${CMAKE_INSTALL_LIBDIR}
  24. CACHE PATH "directory for libraries")
  25. set(INSTALL_BINDIR
  26. ${CMAKE_INSTALL_BINDIR}
  27. CACHE PATH "directory for executables")
  28. set(INSTALL_INCLUDEDIR
  29. ${CMAKE_INSTALL_INCLUDEDIR}
  30. CACHE PATH "directory for header files")
  31. set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME})
  32. set(INSTALL_CMAKEDIR
  33. ${DEF_INSTALL_CMAKEDIR}
  34. CACHE PATH "directory for CMake files")
  35. set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_BINARY_DIR}/subs)
  36. set(STAGED_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage)
  37. message(STATUS "${PROJECT_NAME} staged install: ${STAGED_INSTALL_PREFIX}")
  38. find_package(OpenSSL REQUIRED)
  39. message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
  40. message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
  41. set(GRPC_GIT_TAG
  42. "v1.45.2"
  43. CACHE STRING "gRPC version")
  44. include(ExternalProject)
  45. ExternalProject_Add(
  46. grpc
  47. GIT_REPOSITORY https://github.com/grpc/grpc.git
  48. GIT_TAG ${GRPC_GIT_TAG}
  49. GIT_SHALLOW 1
  50. UPDATE_COMMAND ""
  51. CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX}
  52. -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
  53. -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
  54. -DgRPC_SSL_PROVIDER=package
  55. -DOPENSSL_ROOT_DIR=OpenSSL
  56. -DgRPC_BUILD_TESTS=OFF
  57. -DBUILD_SHARED_LIBS=ON
  58. -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF
  59. -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF
  60. -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
  61. -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
  62. -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF
  63. -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
  64. CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
  65. TEST_AFTER_INSTALL 0
  66. DOWNLOAD_NO_PROGRESS 1
  67. LOG_CONFIGURE 1
  68. LOG_BUILD 0
  69. LOG_INSTALL 1)
  70. install(
  71. DIRECTORY ${STAGED_INSTALL_PREFIX}/
  72. DESTINATION .
  73. USE_SOURCE_PERMISSIONS)