JD2022-TU1/main/extern/Hue/libhuestream/edtls/CMakeLists.txt

87 lines
No EOL
2.8 KiB
CMake

cmake_minimum_required(VERSION 2.8)
project(edtls)
include(GitInfo.cmake)
include(ExternalProject)
include(GenerateExportHeader)
include(CTest)
if (WIN32)
add_definitions(-DWIN32)
endif ()
generate_build_info(${CMAKE_CURRENT_SOURCE_DIR})
#============================================
# CONFIGURATION OPTIONS
#============================================
option(BUILD_DTLS_LIB "Build 3rdparty DTLS library" OFF)
option(BUILD_GTEST "Build google test" OFF)
option(BUILD_TEST "Build tests" ON)
option(BUILD_CLIENT "Build DTLS Client" ON)
option(BUILD_SERVER "Build DTLS Server" ON)
option(BUILD_WITHOUT_RTTI "Build without RTTI support" ON)
#============================================
# COMPILER DETECTION AND SETTINGS
#============================================
# RTTI support
if (BUILD_WITHOUT_RTTI)
add_definitions(-DNO_RTTI)
endif()
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
# ------------------------------------------
# CLANG
# ------------------------------------------
add_definitions(-DCLANG)
# RTTI support
if (BUILD_WITHOUT_RTTI)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# ------------------------------------------
# GNU GCC
# ------------------------------------------
add_definitions(-DGNU)
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
# Extra defines for detecting specific GCC version
string(REGEX MATCHALL "[0-9]+" GCC_VERSION_COMPONENTS ${GCC_VERSION})
list(GET GCC_VERSION_COMPONENTS 0 GCC_MAJOR)
list(GET GCC_VERSION_COMPONENTS 1 GCC_MINOR)
add_definitions(-DGCC_MAJOR=${GCC_MAJOR})
add_definitions(-DGCC_MINOR=${GCC_MINOR})
# RTTI support
if (BUILD_WITHOUT_RTTI)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lm")
if (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-but-set-variable -Wno-sign-compare -Wno-reorder")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
# using Intel C++
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# ------------------------------------------
# Visual Studio
# ------------------------------------------
# RTTI support
if (BUILD_WITHOUT_RTTI)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -GR-")
endif()
endif()
find_package(Threads REQUIRED)
#============================================
# libedtls
#============================================
add_subdirectory(libdtls)