CMakeLists.txt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. cmake_minimum_required(VERSION 2.8.0)
  2. project(mumlib)
  3. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  4. if (NOT APPLE)
  5. add_definitions(-DOPT_TLS_GNUTLS -D_POSIX_C_SOURCE=200112L)
  6. else()
  7. LINK_DIRECTORIES(/opt/local/lib) # Include the default MacPorts library directory
  8. endif()
  9. INCLUDE(FindPkgConfig)
  10. find_package(PkgConfig REQUIRED)
  11. find_package(Boost COMPONENTS system REQUIRED)
  12. find_package(OpenSSL REQUIRED)
  13. find_package(Protobuf REQUIRED)
  14. pkg_check_modules(LOG4CPP "log4cpp")
  15. pkg_check_modules(OPUS "opus")
  16. INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
  17. include_directories(${OPENSSL_INCLUDE_DIR})
  18. include_directories(${PROTOBUF_INCLUDE_DIRS})
  19. include_directories(${OPUS_INCLUDE_DIRS})
  20. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  21. include_directories(${LOG4CPP_INCLUDE_DIRS})
  22. include_directories(include)
  23. set(MUMLIB_PUBLIC_HEADERS include/mumlib.hpp include/mumlib/VarInt.hpp)
  24. set(MUMLIB_PRIVATE_HEADERS
  25. include/mumlib/Callback.hpp
  26. include/mumlib/CryptState.hpp
  27. include/mumlib/Transport.hpp
  28. include/mumlib/Audio.hpp
  29. include/mumlib/enums.hpp
  30. )
  31. set(MUMLIB_SRC
  32. src/mumlib.cpp
  33. src/Callback.cpp
  34. src/CryptState.cpp
  35. src/VarInt.cpp
  36. src/Transport.cpp
  37. src/Audio.cpp
  38. )
  39. set(SPEEX_LIBRARIES
  40. speex
  41. speexdsp
  42. )
  43. PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS Mumble.proto)
  44. add_library(mumlib SHARED ${MUMLIB_SRC} ${MUMLIB_PUBLIC_HEADERS} ${MUMLIB_PRIVATE_HEADERS} ${PROTO_SRCS} ${PROTO_HDRS})
  45. target_link_libraries(mumlib
  46. ${SPEEX_LIBRARIES}
  47. ${PROTOBUF_LIBRARIES}
  48. ${Boost_LIBRARIES}
  49. ${OPENSSL_LIBRARIES}
  50. ${LOG4CPP_LIBRARIES}
  51. ${OPUS_LIBRARIES})
  52. add_executable(mumlib_example mumlib_example.cpp)
  53. target_link_libraries(mumlib_example mumlib)
  54. install(TARGETS mumlib LIBRARY DESTINATION lib)