configure_file (${CMAKE_SOURCE_DIR}/src/odsstream/config.h.cmake ${CMAKE_SOURCE_DIR}/src/odsstream/config.h)

if (MINGW)
else (MINGW)
    #find zlib
    FIND_PACKAGE(ZLIB REQUIRED)
    set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/modules)
    FIND_PACKAGE(QuaZip REQUIRED)
endif (MINGW)

INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
#INCLUDE_DIRECTORIES(${QUAZIP_INCLUDE_DIRS})


#SET (QT_USE_QTXMLPATTERNS true)



SET(CPP_FILES 
  odsstream/reader/odscell.cpp
  odsstream/odsexception.h 
  odsstream/saxreader/saxhandlercontentxml.cpp 
  odsstream/odsdocreader.cpp
  odsstream/writer/options/odscolorscale.cpp
  odsstream/writer/options/odstablecellstyle.cpp
  odsstream/writer/options/odstablecellstyleref.cpp
  odsstream/writer/options/odstablesettings.cpp
  odsstream/writer/structure/stylesxml.cpp
  odsstream/writer/structure/contentxml.cpp
  odsstream/writer/structure/metaxml.cpp
  odsstream/writer/structure/settingsxml.cpp
  odsstream/writer/structure/manifestxml.cpp
  odsstream/odsdocwriter.cpp
  odsstream/tsvdirectorywriter.cpp
  odsstream/tsvoutputstream.cpp
  odsstream/tsvreader.cpp
)



SET(ODS2CSV_CPP_FILES 
  ods2csv.cpp
)

SET(TSV2ODS_CPP_FILES 
  tsv2ods.cpp
)



configure_file (${CMAKE_SOURCE_DIR}/src/config.h.cmake ${CMAKE_SOURCE_DIR}/src/config.h)

    MESSAGE ("LIBODSSTREAM_LIB_SOVERSION: ${LIBODSSTREAM_LIB_SOVERSION}")
  #qt5-default qtbase5-dev
  FIND_PACKAGE( Qt5Core REQUIRED )
  FIND_PACKAGE( Qt5Xml REQUIRED )
  FIND_PACKAGE( Qt5Gui REQUIRED )

  # Build the static lib
  ADD_LIBRARY(odsstream-static-qt5 STATIC ${CPP_FILES})
  target_include_directories (odsstream-static-qt5 PUBLIC ${Qt5Xml_INCLUDES} ${Qt5Core_INCLUDES} ${Qt5Gui_INCLUDES} ${QUAZIP_INCLUDE_DIR})
    
    SET_TARGET_PROPERTIES(odsstream-static-qt5
      PROPERTIES OUTPUT_NAME odsstream-qt5
      CLEAN_DIRECT_OUTPUT 1
      CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS}"
    )
  TARGET_LINK_LIBRARIES(odsstream-static-qt5 ${Qt5Xml_LIBRARIES} ${Qt5Gui_LIBRARIES}  ${QUAZIP_QT5_LIBRARIES} ${Qt5Core_LIBRARIES})

  # Build the shared lib
  ADD_LIBRARY(odsstream-shared-qt5 SHARED ${CPP_FILES})
  target_include_directories (odsstream-shared-qt5 PUBLIC ${Qt5Xml_INCLUDES} ${Qt5Core_INCLUDES} ${Qt5Gui_INCLUDES} ${QUAZIP_INCLUDE_DIR})
  SET_TARGET_PROPERTIES(odsstream-shared-qt5 PROPERTIES 
    OUTPUT_NAME odsstream-qt5
    VERSION ${LIBODSSTREAM_LIB_VERSION}
    SOVERSION ${LIBODSSTREAM_LIB_SOVERSION}
    CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS}"
    CLEAN_DIRECT_OUTPUT 1
    )
  TARGET_LINK_LIBRARIES(odsstream-shared-qt5 PUBLIC ${Qt5Xml_LIBRARIES} ${Qt5Gui_LIBRARIES} ${QUAZIP_QT5_LIBRARIES} )

  # Install libs
  if (MINGW)
	  INSTALL(TARGETS odsstream-shared-qt5 RUNTIME DESTINATION lib${LIB_SUFFIX})
  else (MINGW)
    INSTALL(TARGETS odsstream-shared-qt5 LIBRARY DESTINATION lib${LIB_SUFFIX})
  endif(MINGW)
  INSTALL(TARGETS odsstream-static-qt5 DESTINATION lib${LIB_SUFFIX})
  
  ADD_EXECUTABLE(ods2csv ${ODS2CSV_CPP_FILES})
  target_include_directories (ods2csv PUBLIC ${Qt5Core_INCLUDES} "${CMAKE_SOURCE_DIR}/src" )
  SET_TARGET_PROPERTIES(ods2csv
      PROPERTIES OUTPUT_NAME ods2tsv
      CLEAN_DIRECT_OUTPUT 1
      CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}"
    )
  TARGET_LINK_LIBRARIES(ods2csv odsstream-shared-qt5 ${Qt5Core_LIBRARIES})

  INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/src/ods2tsv DESTINATION bin)

  
   
  ADD_EXECUTABLE(tsv2ods ${TSV2ODS_CPP_FILES})
  target_include_directories (tsv2ods PUBLIC ${Qt5Core_INCLUDES} "${CMAKE_SOURCE_DIR}/src" )
  SET_TARGET_PROPERTIES(tsv2ods
      PROPERTIES OUTPUT_NAME tsv2ods
      CLEAN_DIRECT_OUTPUT 1
      CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}"
    )
  TARGET_LINK_LIBRARIES(tsv2ods odsstream-shared-qt5 ${Qt5Core_LIBRARIES})

  INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/src/tsv2ods DESTINATION bin)
 


# Install headers
INSTALL(DIRECTORY odsstream/ DESTINATION include/odsstream FILES_MATCHING PATTERN "*.h")

