| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | 
							- # Author: Kang Lin <[email protected]>
 
- cmake_minimum_required(VERSION 3.16)
 
- project(coturn)
 
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
- set(CMAKE_C_STANDARD 11)
 
- set(CMAKE_C_STANDARD_REQUIRED ON)
 
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
 
- # TODO: Modify this when the version is released
 
- SET(BUILD_VERSION "4.6.3")
 
- # Find Git Version Patch
 
- IF(EXISTS "${CMAKE_SOURCE_DIR}/.git")
 
-     if(NOT GIT)
 
-         SET(GIT $ENV{GIT})
 
-     endif()
 
-     if(NOT GIT)
 
-         FIND_PROGRAM(GIT NAMES git git.exe git.cmd)
 
-     endif()
 
-     IF(GIT)
 
-         EXECUTE_PROCESS(
 
-             WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 
-             COMMAND ${GIT} describe --tags
 
-             OUTPUT_VARIABLE GIT_VERSION  OUTPUT_STRIP_TRAILING_WHITESPACE
 
-         )
 
-         if(NOT GIT_VERSION)
 
-             EXECUTE_PROCESS(
 
-                 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 
-                 COMMAND ${GIT} rev-parse --short HEAD
 
-                 OUTPUT_VARIABLE GIT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE
 
-             )
 
-         endif()
 
-         SET(BUILD_VERSION ${GIT_VERSION})
 
-     ENDIF()
 
- ENDIF()
 
- string(FIND ${BUILD_VERSION} / BUILD_VERSION_POS REVERSE)
 
- if(BUILD_VERSION_POS GREATER -1)
 
-     math(EXPR BUILD_VERSION_POS "${BUILD_VERSION_POS} + 1")
 
-     string(SUBSTRING ${BUILD_VERSION} ${BUILD_VERSION_POS} -1 BUILD_VERSION)
 
- endif()
 
- message("BUILD_VERSION:${BUILD_VERSION};${_BUILD_VERSION}")
 
- set(VERSION ${BUILD_VERSION})
 
- if(NOT DEFINED CMAKE_BUILD_TYPE)
 
-     set(CMAKE_BUILD_TYPE "Release")
 
- endif(NOT DEFINED CMAKE_BUILD_TYPE)
 
- string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)
 
- if("debug" STREQUAL build_type)
 
-     add_definitions(-D_DEBUG)
 
- endif()
 
- if(DEFINED TURN_SERVER_BUILD_INFO)
 
-     add_definitions(-DTURN_SERVER_BUILD_INFO=${TURN_SERVER_BUILD_INFO})
 
- endif()
 
- IF(MSVC)
 
-     # This option is to enable the /MP switch for Visual Studio 2005 and above compilers
 
-     OPTION(WIN32_USE_MP "Set to ON to build with the /MP option (Visual Studio 2005 and above)." ON)
 
-     MARK_AS_ADVANCED(WIN32_USE_MP)
 
-     IF(WIN32_USE_MP)
 
-         #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
 
-         add_compile_options(/MP)
 
-     ENDIF(WIN32_USE_MP)
 
-     add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
 
-     add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
 
-     add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 
- ENDIF(MSVC)
 
- SET(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs")
 
- if (BUILD_SHARED_LIBS)
 
-     add_definitions(-DBUILD_SHARED_LIBS)
 
-     if (CMAKE_COMPILER_IS_GNUCXX AND NOT MINGW)
 
-        # Just setting CMAKE_POSITION_INDEPENDENT_CODE should be enough to set
 
-        # -fPIC for GCC but sometimes it still doesn't get set, so make sure it
 
-        # does.
 
-        add_definitions("-fPIC")
 
-     endif()
 
-     set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 
- endif(BUILD_SHARED_LIBS)
 
- include(CMakePackageConfigHelpers)
 
- include(GNUInstallDirs)
 
- include(GenerateExportHeader)
 
- include(CheckIncludeFile)
 
- include(CheckIncludeFileCXX)
 
- include(CheckFunctionExists)
 
- # Create will be delete files
 
- CONFIGURE_FILE(
 
-     "${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
 
-     "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
 
-     IMMEDIATE @ONLY)
 
- # Create unistall target
 
- ADD_CUSTOM_TARGET(uninstall
 
-     "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
 
-     )
 
- add_subdirectory(src)
 
- CONFIGURE_FILE(
 
-     "${CMAKE_SOURCE_DIR}/cmake/coturnConfig.cmake.in"
 
-     "${CMAKE_BINARY_DIR}/coturnConfig.cmake"
 
-     IMMEDIATE @ONLY)
 
- install(FILES "${CMAKE_BINARY_DIR}/coturnConfig.cmake"
 
-     DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/coturn"
 
-         COMPONENT Development)
 
- install(DIRECTORY man DESTINATION .
 
-     COMPONENT Runtime)
 
- install(DIRECTORY turndb/
 
-     DESTINATION share/turnserver
 
-         COMPONENT Runtime)
 
- install(DIRECTORY turndb/
 
-     DESTINATION doc/turnserver
 
-         COMPONENT Runtime)
 
- install(FILES
 
-             LICENSE
 
-             README.turnserver
 
-             README.turnadmin
 
-             README.turnutils
 
-             INSTALL
 
-             postinstall.txt
 
-         DESTINATION doc/turnserver
 
-             COMPONENT Runtime)
 
- install(FILES examples/etc/turnserver.conf
 
-     DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
 
-         COMPONENT Runtime
 
-     RENAME turnserver.conf.default
 
-     )
 
- install(DIRECTORY
 
-         examples
 
-     DESTINATION share
 
-         COMPONENT examples
 
-     )
 
- include(cmake/CMakeCPack.cmake)
 
- option(FUZZER "Build oss-fuzz fuzzing" OFF)
 
- if(FUZZER)
 
-     if (NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
 
-         message(FATAL_ERROR "clang is require for libFuzzer")
 
-     endif()
 
-     add_subdirectory(fuzzing)
 
- endif()
 
 
  |