cmake_minimum_required(VERSION 3.19) project(libnice LANGUAGES C VERSION 0.1.15) SET (this_target libnice) if (WIN32) add_definitions( -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -DHAVE_OPENSSL -DPACKAGE_STRING="${PROJECT_VERSION}") else() add_definitions( -DHAVE_OPENSSL -DPACKAGE_STRING="${PROJECT_VERSION}" -DHAVE_NETDB_H=1) endif() configure_file(${CMAKE_SOURCE_DIR}/win32/vs9/config.h ${CMAKE_SOURCE_DIR}/config.h COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/win32/vs9/libnice.def ${CMAKE_SOURCE_DIR}/libnice.def COPYONLY) find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB2 glib-2.0 gobject-2.0 gmodule-2.0 gio-2.0 IMPORTED_TARGET) find_library(IPHLPAPI_LIBRARY iphlpapi) find_library(WS2_32_LIB ws2_32) find_library(ADVAPI32_LIB advapi32) find_package(OpenSSL REQUIRED) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/agent ${CMAKE_CURRENT_SOURCE_DIR}/random ${CMAKE_CURRENT_SOURCE_DIR}/socket ${CMAKE_CURRENT_SOURCE_DIR}/stun ${GLIB2_INCLUDE_DIRS}) SET (SRCS ./agent/address.c ./agent/agent-enum-types.c ./agent/agent.c ./agent/candidate.c ./agent/component.c ./agent/conncheck.c ./agent/debug.c ./agent/discovery.c ./agent/inputstream.c ./agent/interfaces.c ./agent/iostream.c ./agent/outputstream.c ./agent/pseudotcp.c ./agent/stream.c ./random/random-glib.c ./random/random.c ./random/test.c ./socket/http.c ./socket/pseudossl.c ./socket/socket.c ./socket/socks5.c ./socket/tcp-active.c ./socket/tcp-bsd.c ./socket/tcp-passive.c ./socket/udp-bsd.c ./socket/udp-turn-over-tcp.c ./socket/udp-turn.c ./stun/debug.c ./stun/rand.c ./stun/stun5389.c ./stun/stunagent.c ./stun/stuncrc32.c ./stun/stunhmac.c ./stun/stunmessage.c ./stun/usages/bind.c ./stun/usages/ice.c ./stun/usages/timer.c ./stun/usages/turn.c ./stun/utils.c ./libnice.def ) SET(HEADERS ./agent/address.h ./agent/agent-enum-types.h ./agent/agent-priv.h ./agent/agent.h ./agent/candidate.h ./agent/component.h ./agent/conncheck.h ./agent/debug.h ./agent/discovery.h ./agent/inputstream.h ./agent/interfaces.h ./agent/iostream.h ./agent/outputstream.h ./agent/pseudotcp.h ./agent/stream.h ./config.h ./nice/nice.h ./random/random-glib.h ./random/random.h ./socket/http.h ./socket/pseudossl.h ./socket/socket-priv.h ./socket/socket.h ./socket/socks5.h ./socket/tcp-active.h ./socket/tcp-bsd.h ./socket/tcp-passive.h ./socket/udp-bsd.h ./socket/udp-turn-over-tcp.h ./socket/udp-turn.h ./stun/constants.h ./stun/debug.h ./stun/rand.h ./stun/stun5389.h ./stun/stunagent.h ./stun/stuncrc32.h ./stun/stunhmac.h ./stun/stunmessage.h ./stun/tools/stund.h ./stun/usages/bind.h ./stun/usages/ice.h ./stun/usages/timer.h ./stun/usages/turn.h ./stun/utils.h ./stun/win32_common.h ./win32/vs9/config.h ) add_library(libnice ${SRCS} ${HEADERS}) if (MSVC) set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4244 /wd4005 /wd4391 /wd4142 /wd4267") endif() if (WIN32) target_link_libraries(libnice ${IPHLPAPI_LIBRARY} ${WS2_32_LIB} ${ADVAPI32_LIB} PkgConfig::GLIB2 OpenSSL::SSL) else() target_link_libraries(libnice PkgConfig::GLIB2 OpenSSL::SSL) endif() install(TARGETS libnice RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) if (CMAKE_BUILD_TYPE STREQUAL "Release") install(FILES agent/address.h DESTINATION include/nice) install(FILES agent/agent.h DESTINATION include/nice) install(FILES agent/candidate.h DESTINATION include/nice) install(FILES agent/debug.h DESTINATION include/nice) install(FILES agent/interfaces.h DESTINATION include/nice) install(FILES nice/nice.h DESTINATION include/nice) install(FILES agent/pseudotcp.h DESTINATION include/nice) install(FILES stun/constants.h DESTINATION include/stun) install(FILES stun/debug.h DESTINATION include/stun) install(FILES stun/stunagent.h DESTINATION include/stun) install(FILES stun/stunmessage.h DESTINATION include/stun) install(FILES stun/usages/bind.h DESTINATION include/stun/usages) install(FILES stun/usages/ice.h DESTINATION include/stun/usages) install(FILES stun/usages/timer.h DESTINATION include/stun/usages) install(FILES stun/usages/turn.h DESTINATION include/stun/usages) install(FILES stun/win32_common.h DESTINATION include/stun) endif()