# OpenVAS
# $Id$
# Description: CMakefile for the tests of the OpenVAS Administrator program
#
# Authors:
# Matthew Mundell <matthew.mundell@greenbone.net>
#
# Copyright:
# Copyright (C) 2009 Greenbone Networks GmbH
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2,
# or, at your option, any later version as published by the Free
# Software Foundation
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

## Config

exec_program (libopenvas-config
              ARGS --cflags
			  OUTPUT_VARIABLE OPENVAS_CFLAGS)
exec_program (libopenvas-config
              ARGS --libs
			  OUTPUT_VARIABLE OPENVAS_LDFLAGS)

if (OPENVAS_HEADER_INSTALL_DIR)
  set (OVAS_CFLAGS "-I${OPENVAS_HEADER_INSTALL_DIR} ${OPENVAS_CFLAGS}")
else (OPENVAS_HEADER_INSTALL_DIR)
  set (OVAS_CFLAGS "")
endif (OPENVAS_HEADER_INSTALL_DIR)

if (OPENVAS_LIB_INSTALL_DIR)
  set (LIB_TEMP "-L${OPENVAS_LIB_INSTALL_DIR}")
else (OPENVAS_LIB_INSTALL_DIR)
  set (LIB_TEMP "")
endif (OPENVAS_LIB_INSTALL_DIR)

set (OVAS_LDFLAG "${LIB_TEMP} -lgnutls ${OPENVAS_LDFLAGS}")

MARK_AS_ADVANCED (LIB_TEMP)

exec_program (pkg-config
              ARGS --cflags glib-2.0
			  OUTPUT_VARIABLE GLIB_CFLAGS)

exec_program (pkg-config
              ARGS --libs glib-2.0
			  OUTPUT_VARIABLE GLIB_LDFLAGS)

LINK_LIBRARIES(openvas_misc openvas_omp openvas_base openvas_hg)

## Libraries

add_library (common common.c)
set_target_properties (common PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")

## Tests of OAP

add_executable (oap_authenticate_0 oap_authenticate_0.c)
set_target_properties (oap_authenticate_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_authenticate_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_authenticate_0 common)
ADD_TEST (oap_authenticate_0 oap_authenticate_0)

add_executable (oap_bogus_0 oap_bogus_0.c)
set_target_properties (oap_bogus_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_bogus_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_bogus_0 common)
ADD_TEST (oap_bogus_0 oap_bogus_0)

add_executable (oap_bogus_1 oap_bogus_1.c)
set_target_properties (oap_bogus_1 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_bogus_1 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_bogus_1 common)
ADD_TEST (oap_bogus_1 oap_bogus_1)

add_executable (oap_commands_0 oap_commands_0.c)
set_target_properties (oap_commands_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_commands_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_commands_0 common)
ADD_TEST (oap_commands_0 oap_commands_0)

add_executable (oap_create_user_0 oap_create_user_0.c)
set_target_properties (oap_create_user_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_create_user_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_create_user_0 common)
ADD_TEST (oap_create_user_0 oap_create_user_0)

add_executable (oap_delete_user_0 oap_delete_user_0.c)
set_target_properties (oap_delete_user_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_delete_user_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_delete_user_0 common)
ADD_TEST (oap_delete_user_0 oap_delete_user_0)

add_executable (oap_delete_user_1 oap_delete_user_1.c)
set_target_properties (oap_delete_user_1 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_delete_user_1 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_delete_user_1 common)
ADD_TEST (oap_delete_user_1 oap_delete_user_1)

add_executable (oap_get_users_0 oap_get_users_0.c)
set_target_properties (oap_get_users_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_get_users_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_get_users_0 common)
ADD_TEST (oap_get_users_0 oap_get_users_0)

add_executable (oap_get_version_0 oap_get_version_0.c)
set_target_properties (oap_get_version_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_get_version_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_get_version_0 common)
ADD_TEST (oap_get_version_0 oap_get_version_0)

add_executable (oap_help_0 oap_help_0.c)
set_target_properties (oap_help_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_help_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_help_0 common)
ADD_TEST (oap_help_0 oap_help_0)

add_executable (oap_help_1 oap_help_1.c)
set_target_properties (oap_help_1 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (oap_help_1 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (oap_help_1 common)
ADD_TEST (oap_help_1 oap_help_1)

## Tests of the administrator

add_executable (read_protocol_0 read_protocol_0.c)
set_target_properties (read_protocol_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (read_protocol_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (read_protocol_0 common)
ADD_TEST (read_protocol_0 read_protocol_0)

add_executable (timeout_0 timeout_0.c)
set_target_properties (timeout_0 PROPERTIES COMPILE_FLAGS "${GLIB_CFLAGS} ${OVAS_CFLAGS}")
set_target_properties (timeout_0 PROPERTIES LINK_FLAGS "${OVAS_LDFLAG} ${GLIB_LDFLAGS}")
target_link_libraries (timeout_0 common)
ADD_TEST (timeout_0 timeout_0)

## End
