CMakeLists.txt 4.4 KB

find_package(Boost 1.75 REQUIRED COMPONENTS log_setup)
find_package(Boost 1.75 REQUIRED COMPONENTS log)
link_libraries("cairo")
############################################################
# sources

SET(DMAP_CORE_SRCS
  geometry/dmprectangle.cpp
  geometry/dmpwkbtypes.cpp
  geometry/dmppoint.cpp
  symbology/dmprenderer.cpp
  symbology/dmpsinglesymbolrenderer.cpp
  symbology/dmpsymbol.cpp
  dmpapplication.cpp
  dmpcoordinatereferencesystem.cpp
  dmpdataprovider.cpp
  dmplogger.cpp
  dmpmaplayer.cpp
  dmpproject.cpp
  dmpproviderregistry.cpp
  dmprendercontext.cpp
  dmptilelayer.cpp
  dmptilematrixset.cpp
  dmpvectordataprovider.cpp
  dmpvectorlayer.cpp
  dmpvectorvacuatelayer.cpp
  dmpvectorlayerrenderer.cpp
  dmpxmlutils.cpp

  renderer/clsMalloc.cpp
  renderer/clsStruct.cpp
  renderer/clsPtree.cpp
  renderer/clsJson.cpp
  renderer/clsXML.cpp
  renderer/clsUtil.cpp
  renderer/clsRect.cpp
  renderer/AppendBuffer.cpp
  renderer/clsCrSurf.cpp
  renderer/legendParamater.cpp
  renderer/DataCollection.cpp

  renderer/SimpleLineSymbol.cpp
  renderer/SimpleMarkerSymbol.cpp
  renderer/TrueTypeMarkerSymbol.cpp
  renderer/TextSymbol.cpp
  renderer/SimplePolygonSymbol.cpp

 # renderer/ScaleDependentRenderer.cpp
 # renderer/RangeLabelRenderer.cpp
  renderer/SimpleLabelRenderer.cpp
  renderer/SimpleRenderer.cpp
  renderer/Renderer.cpp
  renderer/ValueMapRendererComponent.cpp
  renderer/ValueMapRenderer.cpp
  renderer/GroupRenderer.cpp
)

SET(DMAP_CORE_HDRS
  geometry/dmprectangle.h
  geometry/dmpwkbtypes.h
  geometry/dmppoint.h
  symbology/dmprenderer.h
  symbology/dmpsinglesymbolrenderer.h
  symbology/dmpsymbol.h
  dmpapplication.h
  dmpcoordinatereferencesystem.h
  dmpdataprovider.h
  dmpfeature.h
  dmplogger.h
  dmpmaplayer.h
  dmpproject.h
  dmpproviderregistry.h
  dmprendercontext.h
  dmptilelayer.h
  dmptilematrixset.h
  dmpvectordataprovider.h
  dmpvectorlayer.h
  dmpvectorvacuatelayer.h
  dmpvectorlayerrenderer.h
  dmpxmlutils.h

  renderer/clsMalloc.h
  renderer/clsStruct.h
  renderer/clsJson.h
  renderer/clsPtree.h
  renderer/clsXML.h
  renderer/clsUtil.h
  renderer/clsRect.h
  renderer/AppendBuffer.h
  renderer/clsCrSurf.h
  renderer/legendParamater.h
  renderer/DataCollection.h

  renderer/SimpleLineSymbol.h
  renderer/SimpleMarkerSymbol.h
  renderer/TrueTypeMarkerSymbol.h
  renderer/TextSymbol.h
  renderer/SimplePolygonSymbol.h
  #renderer/RangMapRenderer.h
  #renderer/RangeMapRenderer.h
  #renderer/ScaleDependentRenderer.h
  #renderer/RangeLabelRenderer.h
  renderer/SimpleLabelRenderer.h
  renderer/SimpleRenderer.h
  renderer/Renderer.h
  renderer/ValueMapRendererComponent.h
  renderer/ValueMapRenderer.h
  renderer/GroupRenderer.h
)

INCLUDE_DIRECTORIES(
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_SOURCE_DIR}/pgsql/include
  geometry
  symbology
  renderer
)

ADD_LIBRARY(dmap_core SHARED ${DMAP_CORE_SRCS} ${DMAP_CORE_HDRS})

find_package(Cairo)
if(CAIRO_FOUND)
  include_directories(${Cairo_INCLUDE_DIRS})
  target_link_libraries(dmap_core ${Cairo_LIBRARIES})
else(CAIRO_FOUND)
  MESSAGE (SEND_ERROR "CAIRO dependency was not found!")
endif(CAIRO_FOUND)

target_link_libraries(dmap_core 
PUBLIC
  ${Boost_LIBRARIES} 
  Boost::log_setup
  Boost::log
  dl)

set_target_properties(dmap_core
  PROPERTIES
    POSITION_INDEPENDENT_CODE 1
    CXX_VISIBILITY_PRESET hidden
    VISIBILITY_INLINES_HIDDEN 1
    #VERSION ${COMPLETE_VERSION}
    #SOVERSION ${COMPLETE_VERSION}
  )

include(GenerateExportHeader)
generate_export_header(
  dmap_core
  BASE_NAME CORE
  EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/dmap_core.h"
)

SET(DMAP_CORE_HDRS ${DMAP_CORE_HDRS} ${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/dmap_core.h)

target_include_directories(dmap_core
  PUBLIC
    ${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}
  )


#file(COPY  ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/dmap_server.so DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/python/dmap)

#FILE(COPY log.config DESTINATION .)
############################################################
INSTALL(FILES
  log.config
  DESTINATION ${DMAP_LIBEXEC_SUBDIR}
)

INSTALL(FILES ${DMAP_CORE_HDRS} DESTINATION ${DMAP_INCLUDE_DIR})

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