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


set(CPP_FILES 
  odsstream/reader/odscell.cpp
  odsstream/odsexception.h 
  odsstream/saxreader/qxmlstreamreadercontentxml.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/qtablewriter.cpp
  odsstream/tsvdirectorywriter.cpp
  odsstream/tsvoutputstream.cpp
  odsstream/tsvreader.cpp
  odsstream/ziptsvoutputstream.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}")

find_package(Qt6 COMPONENTS Gui Xml REQUIRED)

# Build the static lib
add_library(odsstream-static STATIC ${CPP_FILES})

set_target_properties(odsstream-static
  PROPERTIES OUTPUT_NAME odsstream
  CLEAN_DIRECT_OUTPUT 1
)

target_link_libraries(odsstream-static
  Qt6::Xml
  Qt6::Gui
  ZLIB::ZLIB
  QuaZip::QuaZip
)

# Build the shared lib
add_library(Core SHARED ${CPP_FILES})

set_target_properties(Core PROPERTIES
  OUTPUT_NAME odsstream
  VERSION ${LIBODSSTREAM_LIB_VERSION}
  SOVERSION ${LIBODSSTREAM_LIB_SOVERSION}
)


target_link_libraries(Core
  Qt6::Xml
  Qt6::Gui
  ZLIB::ZLIB
  QuaZip::QuaZip
)


# Install shared lib

install(TARGETS Core
  EXPORT OdsStreamTargets
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  # This one is for WIN32
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/odsstream
)


#if (WIN32 OR _WIN32)
#install(TARGETS odsstream-shared RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
#else ()
#install(TARGETS odsstream-shared LIBRARY DESTINATION  ${CMAKE_INSTALL_LIBDIR})
#endif()

# Install static lib

install(TARGETS odsstream-static 
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})

add_executable(ods2csv ${ODS2CSV_CPP_FILES})

target_include_directories (ods2csv PUBLIC
  "${CMAKE_SOURCE_DIR}/src"
)

set_target_properties(ods2csv
  PROPERTIES OUTPUT_NAME ods2tsv
  CLEAN_DIRECT_OUTPUT 1
)

target_link_libraries(ods2csv 
  Core
  Qt6::Core
  Qt6::Gui
  QuaZip::QuaZip
)

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


add_executable(tsv2ods ${TSV2ODS_CPP_FILES})

target_include_directories (tsv2ods PUBLIC
  "${CMAKE_SOURCE_DIR}/src"
)

set_target_properties(tsv2ods
  PROPERTIES OUTPUT_NAME tsv2ods
  CLEAN_DIRECT_OUTPUT 1
)


target_link_libraries(tsv2ods 
  Core
  Qt6::Core
  Qt6::Gui
  QuaZip::QuaZip
)

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


# Install headers
install(DIRECTORY odsstream/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/odsstream 
  FILES_MATCHING PATTERN "*.h"
  PATTERN "*.hpp")

