cmake_minimum_required (VERSION 3.0)
project (OMNISYNC C)
include(GNUInstallDirs)
option(WITH_GNUTLS "Use GnuTLS instead of OpenSSL" ON)
IF(WITH_GNUTLS)
	include(FindGnuTLS)
	IF(NOT GNUTLS_FOUND)
		message(FATAL_ERROR "Cannot locate GnuTLS library")
	ENDIF()
	add_definitions(-DWITH_GNUTLS)
        set(SSL_SOURCE mssl_gnutls.c)
ELSE()
	include(FindOpenSSL)
	IF(NOT OPENSSL_FOUND)
		message(FATAL_ERROR "Cannot locate OpenSSL library")
	ENDIF()
        set(SSL_SOURCE mssl.c)
ENDIF()
find_program(SNMP_CONFIG_SCRIPT net-snmp-config)
if(SNMP_CONFIG_SCRIPT)
	exec_program(${SNMP_CONFIG_SCRIPT} ARGS --libs OUTPUT_VARIABLE SNMP_LIBRARIES)
else()
	find_library(SNMP_LIBRARIES NAMES snmp netsnmp)
endif()
IF(NOT SNMP_LIBRARIES)
	message(FATAL_ERROR "Cannot locate Net-SNMP library")
ENDIF()
message(STATUS "Found SNMP library")
find_library(MATH_LIBRARY m)
add_definitions(-DVERSION="1.0")
add_executable(omnisync error.c log.c utils.c utils2.c daytime.c time.c ${SSL_SOURCE} http.c snts.c irc.c icmp.c ntpd.c snmp.c simpleptp.c socks5sntp.c main.c sntp.c)
target_include_directories(omnisync PUBLIC ${OPENSSL_INCLUDE_DIR} ${GNUTLS_INCLUDE_DIR})
target_link_libraries(omnisync ${OPENSSL_LIBRARIES} ${GNUTLS_LIBRARIES} ${SNMP_LIBRARIES} ${MATH_LIBRARY})
target_compile_options(omnisync PUBLIC -Wall -fno-common)
install(TARGETS omnisync DESTINATION ${CMAKE_INSTALL_SBINDIR})
