Advertisement
Guest User

Untitled

a guest
May 16th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. cmake_minimum_required(VERSION 2.6)
  2.  
  3. find_package(PkgConfig)
  4. #functions
  5. function(test_lib LIB_NAME)
  6. if (${LIB_NAME} MATCHES "^.*-NOTFOUND")
  7. message(FATAL_ERROR "lib not found: " ${LIB_NAME} " check README")
  8. return()
  9. endif(${LIB_NAME} MATCHES "^.*-NOTFOUND")
  10. endfunction(test_lib)
  11.  
  12. include(ExternalProject)
  13.  
  14. project (ERIZO_ALL)
  15.  
  16. if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
  17. execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
  18. OUTPUT_VARIABLE GCC_VERSION)
  19. if (GCC_VERSION VERSION_LESS 5)
  20. message(FATAL_ERROR "gcc version must be >= 5 and is ${GCC_VERSION}")
  21. endif()
  22.  
  23. execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion
  24. OUTPUT_VARIABLE CXX_VERSION)
  25. if (CXX_VERSION VERSION_LESS 5)
  26. message(FATAL_ERROR "g++ version must be >= 5 and is ${CXX_VERSION}")
  27. endif()
  28. endif()
  29.  
  30. option (COMPILE_EXAMPLES "COMPILE_EXAMPLES" OFF)
  31.  
  32. set(ERIZO_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
  33.  
  34.  
  35. set(CMAKE_MACOSX_RPATH 1)
  36. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/")
  37. find_package (Doxygen)
  38. if(DOXYGEN_FOUND)
  39. configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY)
  40. add_custom_target(doc
  41. ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
  42. WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
  43. COMMENT "Generating API documentation with Doxygen" VERBATIM
  44. )
  45. endif(DOXYGEN_FOUND)
  46.  
  47. set (ERIZO_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/erizo)
  48. set (ERIZO_TEST ${CMAKE_CURRENT_SOURCE_DIR}/test)
  49.  
  50. file(GLOB_RECURSE ERIZO_SOURCES_FILES ${ERIZO_SOURCE}/*.cpp ${ERIZO_SOURCE}/*.h ${ERIZO_TEST}/*.cpp)
  51. add_custom_target(lint
  52. ${ERIZO_ROOT_DIR}/utils/cpplint.py --filter=-legal/copyright,-build/include --linelength=120 ${ERIZO_SOURCES_FILES}
  53. WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  54. COMMENT "Executing lint"
  55. )
  56.  
  57. #global variable
  58. set(THIRD_PARTY_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/../../build/libdeps/build/include/")
  59. set(THIRD_PARTY_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../../build/libdeps/build/lib/")
  60.  
  61. ## Depencencies
  62.  
  63. # GLIB
  64. find_package(Glib REQUIRED)
  65. include_directories(${GLIB_INCLUDE_DIRS})
  66.  
  67. # BOOST
  68. set (BOOST_LIBS thread regex system)
  69. find_package(Boost COMPONENTS ${BOOST_LIBS} REQUIRED)
  70.  
  71. # GTHREAD
  72. find_library(GTHREAD gthread-2.0 HINTS "${THIRD_PARTY_LIB}")
  73. test_lib(${GTHREAD})
  74.  
  75. # SRTP
  76. find_library(SRTP srtp2 HINTS "${THIRD_PARTY_LIB}")
  77. test_lib(${SRTP})
  78.  
  79. # NICE
  80. find_library(NICE nice HINTS "${THIRD_PARTY_LIB}")
  81. test_lib(${NICE})
  82.  
  83. # OPENSSL
  84. find_library(SSL ssl HINTS "${THIRD_PARTY_LIB}")
  85. test_lib(${SSL})
  86. find_library(CRYPTO crypto HINTS "${THIRD_PARTY_LIB}")
  87. test_lib(${CRYPTO})
  88.  
  89. # FFMPEG
  90. find_library(AVUTIL avutil HINTS "${THIRD_PARTY_LIB}")
  91. test_lib(${AVUTIL})
  92. set (LIBS ${AVUTIL})
  93. find_library(AVCODEC avcodec HINTS "${THIRD_PARTY_LIB}")
  94. test_lib(${AVCODEC})
  95. set (LIBS ${LIBS} ${AVCODEC})
  96. find_library(AVFORMAT avformat HINTS "${THIRD_PARTY_LIB}")
  97. test_lib(${AVFORMAT})
  98. set (LIBS ${LIBS} ${AVFORMAT})
  99.  
  100. # LOG4CXX
  101. find_library(LOG log4cxx)
  102. test_lib(${LOG})
  103.  
  104. # WEBRTC
  105. include("${CMAKE_CURRENT_SOURCE_DIR}/third_party/webrtc.cmake")
  106.  
  107. # NICER
  108. include("${CMAKE_CURRENT_SOURCE_DIR}/third_party/nicer.cmake")
  109.  
  110. ## Erizo
  111. add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/erizo")
  112.  
  113. ## Examples
  114. if(COMPILE_EXAMPLES)
  115. add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/examples")
  116. endif(COMPILE_EXAMPLES)
  117.  
  118. ## Tests
  119. set(GMOCK_BUILD "${CMAKE_CURRENT_BINARY_DIR}/libdeps/gmock")
  120. set(GMOCK_VERSION "1.8.0")
  121. ExternalProject_Add(gtest
  122. URL "https://github.com/google/googletest/archive/release-${GMOCK_VERSION}.tar.gz"
  123. PREFIX ${GMOCK_BUILD}
  124. CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${GMOCK_BUILD}
  125. )
  126.  
  127. enable_testing()
  128.  
  129. add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/test")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement