# Copyright (C) 2007  University of Rostock
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# 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 Street, Fifth Floor, Boston, MA
# 02110-1301 USA.

IF("${ALT_IO_MODE}" STREQUAL "none")
  INCLUDE_DIRECTORIES(AFTER ${DPWS_INCLUDES} ${GSOAP_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
ELSE("${ALT_IO_MODE}" STREQUAL "none")
  ADD_DEFINITIONS ( "-DWITH_NOIO -DWITH_SOAPDEFS_H" )
  INCLUDE_DIRECTORIES(AFTER ${DPWS_ALT_IO_INCLUDES} ${DPWS_INCLUDES} ${GSOAP_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
ENDIF("${ALT_IO_MODE}" STREQUAL "none")

SET(WS4D_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR})

IF(WITH_OTHER_ARCH)
  ADD_DEFINITIONS("-DWITH_OTHER_ARCH")
ENDIF(WITH_OTHER_ARCH)

################################################################################
# build list libs
################################################################################

ADD_LIBRARY(ws4d_listF STATIC ${CMAKE_CURRENT_SOURCE_DIR}/ws4d_eprflist.c)

IF(Threads_FOUND)
  ADD_LIBRARY(ws4d_listFmt STATIC ${CMAKE_CURRENT_SOURCE_DIR}/ws4d_eprflist.c)
  EXTEND_TGT_COMPILE_FLAGS(ws4d_listFmt FLAGS "-DWITH_MUTEXES")
ENDIF(Threads_FOUND)


ADD_LIBRARY(ws4d_listL STATIC ${CMAKE_CURRENT_SOURCE_DIR}/ws4d_eprllist.c)

IF(Threads_FOUND)
  ADD_LIBRARY(ws4d_listLmt STATIC ${CMAKE_CURRENT_SOURCE_DIR}/ws4d_eprllist.c)
  EXTEND_TGT_COMPILE_FLAGS(ws4d_listLmt FLAGS "-DWITH_MUTEXES")
ENDIF(Threads_FOUND)


IF(Threads_FOUND)
  INSTALL(TARGETS ws4d_listF ws4d_listFmt ws4d_listL ws4d_listLmt
          ARCHIVE DESTINATION lib/ws4d-gSOAP)
ELSE(Threads_FOUND)
  INSTALL(TARGETS ws4d_listF ws4d_listL
          ARCHIVE DESTINATION lib/ws4d-gSOAP)
ENDIF(Threads_FOUND)


SET(DPWS_LIST_LIBRARY
    ws4d_listL
    CACHE STRING ""
    FORCE)

IF(Threads_FOUND)
  SET(DPWS_LISTMT_LIBRARY
      ws4d_listLmt
      CACHE STRING ""
      FORCE)
ELSE(Threads_FOUND)
  SET(DPWS_LISTMT_LIBRARY
      "DPWS_LISTMT_LIBRARY-NOTFOUND"
      CACHE STRING "" FORCE)
ENDIF(Threads_FOUND)

################################################################################
# build tracker libs
################################################################################

IF(Threads_FOUND)
  SET(tracker_SRCS
      ws4d_tracker_worker.c
      ws4d_device_tracker.c
      ws4d_service_tracker.c)

  ADD_LIBRARY(ws4d_trackerCmt STATIC ${tracker_SRCS})

  EXTEND_TGT_COMPILE_FLAGS(ws4d_trackerCmt 
    FLAGS "-DWITH_MUTEXES -DDPWS_CLIENT")

  ADD_LIBRARY(ws4d_trackerPmt STATIC ${tracker_SRCS})

  EXTEND_TGT_COMPILE_FLAGS(ws4d_trackerPmt 
    FLAGS "-DWITH_MUTEXES -DDPWS_PEER")

  INSTALL(TARGETS ws4d_trackerCmt ws4d_trackerPmt ARCHIVE DESTINATION lib/ws4d-gSOAP)
ENDIF(Threads_FOUND)

ADD_SUBDIRECTORY(gsoap)

MARK_AS_ADVANCED(
  DPWS_LIST_LIBRARY
  DPWS_LISTMT_LIBRARY
  DPWS_LIST_LIBRARY)

