
FIND_PACKAGE( Qt5 COMPONENTS Core Gui Xml REQUIRED )

list( APPEND CMAKE_MODULE_PATH
    ${PROJECT_SOURCE_DIR}/cmake_modules
)

set (CImg_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/src/cimg")

if (DEBIAN_PACKAGE)
#  CImg_FOUND - system has CImg lib
    set (CImg_FOUND 1)
#  CImg_INCLUDE_DIRS - the CImg include directory
    set (CImg_INCLUDE_DIR "/usr/include")
#  CImg_SYSTEM_LIBS - external libraries that CImg uses
    set (CImg_SYSTEM_LIBS "/usr/lib${LIB_SUFFIX}/libz.so"
    "/usr/lib${LIB_SUFFIX}/libpng16.so"
    "/usr/lib${LIB_SUFFIX}/libjpeg.so"
    "/usr/lib${LIB_SUFFIX}/libtiff.so")
#  CImg_SYSTEM_LIBS_DIR - external library directories
    set (CImg_SYSTEM_LIBS_DIR "")
#  CImg_CFLAGS - compilation flags
    set (CImg_CFLAGS "pthread" "-Dcimg_use_png" "-Dcimg_use_jpeg" "-Dcimg_use_tiff" "-Dcimg_use_zlib")

else (DEBIAN_PACKAGE)
    find_package( CImg REQUIRED )
endif (DEBIAN_PACKAGE)

# Add CIMG Flags to Compilation Flags
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CIMG_CFLAGS}")

#INCLUDE_DIRECTORIES(${ODSSTREAM_INCLUDE_DIR})

if (MINGW32)
    INCLUDE_DIRECTORIES( ${QUAZIP_INCLUDE_DIR} )
ELSE (MINGW32)
    FIND_PACKAGE( Odsstream REQUIRED )
ENDIF (MINGW32)



SET( BEADS_FOR_QT_CPP
	ConfigFile/ConfigFile
	parameters
	encode/base64
	images/imageIntensity.cpp
	images/imageDirect.cpp
	images/imageCode
	images/imageCoule
	images/imagePaths
	images/imageConfluent
	images/imageProb
	images/parameterProb
	parameterDetection
	images/parameterConfluent
	detection
	images/imageDetection
	images/imageNumber
	images/parameterNumber
	images/imageContours
	spotPROTICdbDocument
	spot
	spotDocument
	spotSvgDocument
	images/imageDeNovo
)

IF(WIN32)
ELSE(WIN32)
	#FIND_PACKAGE(X11 REQUIRED)
	
	#INCLUDE_DIRECTORIES(X11_INCLUDE_DIR)
	# X11_FOUND is true if X11 is available.
	#    * X11_INCLUDE_DIR contains the include directories to use X11.
	#    * X11_LIBRARIES points to the libraries to link against to use X11.
	# Make sure the compiler can find include files from our Hello library.
	#include_directories (${X11_INCLUDE_DIR})
	
	#ADD_DEFINITIONS(${PTHREADS_DEFINITIONS})
	# -m -pthread FindThreads
	
	# Make sure the linker can find the Hello library once it is built.
	#link_directories (${X11_INCLUDE_DIR})
ENDIF(WIN32)


add_executable (beads beads.cpp )
target_include_directories (beads PUBLIC ${ODSSTREAM_INCLUDE_DIR} ${CImg_INCLUDE_DIRS} ${CImg_SYSTEM_LIBS_DIR})
SET_TARGET_PROPERTIES(beads
      PROPERTIES OUTPUT_NAME beads
      CLEAN_DIRECT_OUTPUT 1
      CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CImg_CFLAGS}"
    )

target_link_libraries (beads  cppbeads
        ${ODSSTREAM_QT5_LIBRARY} ${CImg_SYSTEM_LIBS} ${CImg_CFLAGS} Qt5::Core Qt5::Gui Qt5::Xml)


add_library ( cppbeads STATIC
		${BEADS_FOR_QT_CPP}
)

target_include_directories (cppbeads PUBLIC ${ODSSTREAM_INCLUDE_DIR}
    ${CImg_INCLUDE_DIRS} ${CImg_SYSTEM_LIBS_DIR})
SET_TARGET_PROPERTIES(cppbeads
      PROPERTIES OUTPUT_NAME cppbeads-qt5
      CLEAN_DIRECT_OUTPUT 1
      CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CImg_CFLAGS}"
)
target_link_libraries (cppbeads
        ${ODSSTREAM_QT5_LIBRARY} ${CImg_SYSTEM_LIBS} ${CImg_CFLAGS} Qt5::Core Qt5::Gui Qt5::Xml)

    
SUBDIRS (qtbeads)
