CMakeLists.txt 3.8 KB
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -o  -lfcgi++  -lfcgi")

INCLUDE_DIRECTORIES(
  ${CMAKE_SOURCE_DIR}/src/server/spserver
)


ADD_SUBDIRECTORY(spserver)
ADD_SUBDIRECTORY(services)



########################################################
# Files
SET (DMAP_SERVER_SRCS
  dmpfilterresponsedecorator.cpp
  dmpmainserver.cpp
  dmprequesthandler.cpp
  dmpserver.cpp
  dmpserverapi.cpp
  dmpserverconfig.cpp
  dmpservercontext.cpp
  dmpserverapicontext.cpp
  dmpserverapihandler.cpp
  dmpserverfilter.cpp
  dmpserverinterface.cpp
  dmpserverinterfaceimpl.cpp
  dmpservermanager.cpp
  dmpservermanagerapi.cpp
  dmpserverresponse.cpp
  dmpserverrequest.cpp
  dmpserverparameters.cpp
  dmpserverplugins.cpp
  dmpserverutils.cpp
  dmpserverloader.cpp
  dmpserverproject.cpp
  dmpserverregistry.cpp
  python/dmppythonutils.cpp
  python/dmpserverwrapper.cpp
  dmphttpbase.cpp
  dmphttputils.cpp
 
)

SET (DMAP_SERVER_HDRS
  dmpfilterresponsedecorator.h
  dmpmainserver.h
  dmprequesthandler.h
  dmpserver.h
  dmpserverapi.h
  dmpserverapihandler.h
  dmpserverapicontext.h
  dmpservercontext.h
  dmpserverconfig.h
  dmpserverentity.h
  dmpserverfilter.h
  dmpserverinterface.h
  dmpserverinterfaceimpl.h
  dmpservermanager.h
  dmpservermanagerapi.h
  dmpserverrequest.h
  dmpserverresponse.h
  dmpserverparameters.h
  dmpserverplugins.h
  dmpserverutils.h
  dmpservice.h
  dmpservermodule.h
  dmpserverloader.h
  dmpserverproject.h
  dmpserverregistry.h
  python/dmppythonutils.h
  dmphttpbase.h
  dmphttputils.h
  
)

#############################################################
# dmap_server library



INCLUDE_DIRECTORIES(
  ${CMAKE_SOURCE_DIR}/src/core
  ${CMAKE_SOURCE_DIR}/src/core/geometry
  ${CMAKE_SOURCE_DIR}/src/core/symbology
)

INCLUDE_DIRECTORIES(SYSTEM
  ${PYTHON_INCLUDE_PATH}
)
ADD_LIBRARY(dmap_server SHARED ${DMAP_SERVER_SRCS} ${DMAP_SERVER_HDRS})

target_link_libraries(dmap_server 
  dmap_core
  ${Boost_LIBRARIES} 
  Boost::regex
  ${PYTHON_LIBRARIES}
  dl)

IF (WITH_BINDINGS)
  TARGET_LINK_LIBRARIES(dmap_server 
  Boost::${DMAP_BOOST_PYTHON_FOUND}
  )
ENDIF(WITH_BINDINGS)

set_target_properties(dmap_server
  PROPERTIES
    POSITION_INDEPENDENT_CODE 1
    CXX_VISIBILITY_PRESET hidden
    VISIBILITY_INLINES_HIDDEN 1
    #VERSION ${COMPLETE_VERSION}
    #SOVERSION ${COMPLETE_VERSION}
  )
  
generate_export_header(
  dmap_server
  BASE_NAME SERVER
  EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/dmap_server.h"
)


target_include_directories(dmap_server
  PUBLIC
    ${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}
  )
  MESSAGE(STATUS "dmap_server path: ${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}")


add_executable(dmap_spserv 
  dmap_spserv.cpp 
  dmpspserverrequest.h
  dmpspserverresponse.h
  dmpspserverrequest.cpp
  dmpspserverresponse.cpp
)

add_executable(dmap_serv 
  dmap_serv.cpp 
  dmpapacheserverrequest.h
  dmpapacheserverresponse.h
  dmpapacheserverrequest.cpp
  dmpapacheserverresponse.cpp
)

target_link_libraries(dmap_spserv
  spserver
  dmap_server
 )

target_link_libraries(dmap_serv
 dmap_server
)

INCLUDE_DIRECTORIES(
  ${CMAKE_SOURCE_DIR}/pgsql/include
)
LINK_DIRECTORIES(dmap_server  ${CMAKE_SOURCE_DIR}/pgsql/lib) 
TARGET_LINK_LIBRARIES(dmap_server   ${CMAKE_SOURCE_DIR}/pgsql/lib/libpq.so)

find_package(Fcgi REQUIRED)
if (NOT FCGI_FOUND)
  message (SEND_ERROR "Fast CGI dependency was not found!")
endif()

target_include_directories(dmap_serv SYSTEM PRIVATE
  ${FCGI_INCLUDE_DIR}
)
target_link_libraries(dmap_serv
  ${FCGI_LIBRARY}
)
########################################################
# Install
INSTALL(FILES
  dmpserver.ini
  DESTINATION ${DMAP_LIBEXEC_SUBDIR}
)

INSTALL(TARGETS dmap_server
  RUNTIME DESTINATION ${DMAP_BIN_DIR}
  LIBRARY DESTINATION ${DMAP_LIB_DIR}
  ARCHIVE DESTINATION ${DMAP_LIB_DIR}
  PUBLIC_HEADER DESTINATION ${DMAP_INCLUDE_DIR}
)

INSTALL(TARGETS dmap_serv
  DESTINATION ${DMAP_BIN_DIR}
)

INSTALL(TARGETS dmap_spserv
  DESTINATION ${DMAP_BIN_DIR}
)