cmake_minimum_required(VERSION 2.8.9)

project( MathGL )

if(NOT CMAKE_BUILD_TYPE)
	set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are:
		None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif(NOT CMAKE_BUILD_TYPE)

set(CMAKE_VERBOSE_MAKEFILE ON)
set(MathGL_VERSION_MAJOR 2)
set(MathGL_VERSION_MINOR 2.2)
set(MathGL_SOVERSION 7.2.0)


MACRO(MGL_DEPENDENT_OPTION option doc default depends1 force1 depends2 force2)
  IF(${option}_ISSET MATCHES "^${option}_ISSET$")
    SET(${option}_AVAILABLE 1)
    IF(${force1})
    FOREACH(d ${depends1})
      STRING(REGEX REPLACE " +" ";" CMAKE_DEPENDENT_OPTION_DEP "${d}")
      IF(${CMAKE_DEPENDENT_OPTION_DEP})
      ELSE(${CMAKE_DEPENDENT_OPTION_DEP})
          SET(${option}_AVAILABLE 0)
          SET(depends1_AVAILABLE 1)
      ENDIF(${CMAKE_DEPENDENT_OPTION_DEP})
    ENDFOREACH(d)
    ENDIF(${force1})
    IF(${force2})
    FOREACH(d ${depends2})
      STRING(REGEX REPLACE " +" ";" CMAKE_DEPENDENT_OPTION_DEP "${d}")
      IF(${CMAKE_DEPENDENT_OPTION_DEP})
      ELSE(${CMAKE_DEPENDENT_OPTION_DEP})
          SET(${option}_AVAILABLE 0)
          SET(depends2_AVAILABLE 1)
      ENDIF(${CMAKE_DEPENDENT_OPTION_DEP})
    ENDFOREACH(d)
    ENDIF(${force2})
    IF(${option}_AVAILABLE)
      OPTION(${option} "${doc}" "${default}")
      SET(${option} "${${option}}" CACHE BOOL "${doc}" FORCE)
    ELSE(${option}_AVAILABLE)
      IF(${option} MATCHES "^${option}$")
      ELSE(${option} MATCHES "^${option}$")
        SET(${option} "${${option}}" CACHE INTERNAL "${doc}")
      ENDIF(${option} MATCHES "^${option}$")
        IF(depends1_AVAILABLE)
          SET(${option} OFF)
        ELSEIF(depends2_AVAILABLE)
          SET(${option} ON)
        ENDIF(depends1_AVAILABLE)
    ENDIF(${option}_AVAILABLE)
  ELSE(${option}_ISSET MATCHES "^${option}_ISSET$")
    SET(${option} "${${option}_ISSET}")
  ENDIF(${option}_ISSET MATCHES "^${option}_ISSET$")
ENDMACRO(MGL_DEPENDENT_OPTION)
include(CMakeDependentOption)

set(MGL_LIB_INSTALL_DIR "lib" CACHE STRING "Set library install directory")

option(enable-double "Enable double precision in MathGL library" ON)
option(enable-simple "Slightly increase drawing speed but disable mglDataA class")
option(enable-mpi "Enable mpi")
option(enable-opengl "Enable OpenGL support" ON)
option(enable-all-docs "Enable all documentation building")
#option(enable-doc "Enable documentation building")
option(enable-all "Enable all core features")
option(enable-all-widgets "Enable all Widgets")
option(enable-all-swig "Enable all SWIG based interfaces")
option(enable-pthread "Enable POSIX threads support" OFF)
option(enable-openmp "Enable OpenMP support" ON)
option(enable-lgpl "Enable only LGPL part of MathGL")
option(enable-mgl2 "Use names 'libmgl2-*' instead of 'libmgl-*'")
#option(enable-ltdl "Enable loading modules support")
CMAKE_DEPENDENT_OPTION(enable-doc-site "Enable HTML documentation for website" OFF "NOT enable-all-docs" ON)
CMAKE_DEPENDENT_OPTION(enable-doc-html "Enable HTML documentation" OFF "NOT enable-all-docs" ON)
CMAKE_DEPENDENT_OPTION(enable-doc-info "Enable INFO documentation" OFF "NOT enable-all-docs" ON)
CMAKE_DEPENDENT_OPTION(enable-doc-pdf-ru "Enable Russian PDF documentation" OFF "NOT enable-all-docs" ON)
CMAKE_DEPENDENT_OPTION(enable-doc-pdf-en "Enable English PDF documentation" OFF "NOT enable-all-docs" ON)
CMAKE_DEPENDENT_OPTION(enable-doc-prc "Enable PDF samples for HTML docs" OFF "NOT enable-all-docs" ON)
CMAKE_DEPENDENT_OPTION(enable-doc-json "Enable JSON samples for HTML docs" OFF "NOT enable-all-docs" ON)
option(enable-texi2html "Use texi2html (obsolete package) instead of texi2any" OFF)

CMAKE_DEPENDENT_OPTION(enable-zlib "Enable zlib support" ON "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-png "Enable png support" ON "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-jpeg "Enable jpeg support" OFF "NOT enable-all" ON)
MGL_DEPENDENT_OPTION(enable-gsl "Enable gsl support" OFF "NOT enable-lgpl" ON "NOT enable-all" ON)
MGL_DEPENDENT_OPTION(enable-hdf4 "Enable hdf4 support" OFF "NOT enable-lgpl" ON "NOT enable-all" ON)
MGL_DEPENDENT_OPTION(enable-hdf5 "Enable hdf5 support" OFF "NOT enable-lgpl" ON "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-pdf "Enable pdf support" OFF "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-gif "Enable gif support" OFF "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-glut "Enable glut support" OFF "NOT enable-all-widgets" ON)
CMAKE_DEPENDENT_OPTION(enable-fltk "Enable fltk widget" OFF "NOT enable-all-widgets" ON)
CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" OFF "NOT enable-all-widgets" ON)
CMAKE_DEPENDENT_OPTION(enable-qt4 "Enable Qt4 widget" OFF "NOT enable-all-widgets" ON)
CMAKE_DEPENDENT_OPTION(enable-qt5 "Enable Qt5 widget" OFF "NOT enable-all-widgets" ON)
CMAKE_DEPENDENT_OPTION(enable-qt5asqt "Set Qt5 as default libmgl-qt" ON "enable-qt5" OFF)

if(enable-qt4 OR enable-qt5)
set(enable-qt ON)
endif(enable-qt4 OR enable-qt5)

CMAKE_DEPENDENT_OPTION(enable-json-sample "Enable JSON sample" ON "enable-qt" OFF)
MGL_DEPENDENT_OPTION(enable-python "Enable python interface" OFF "NOT enable-lgpl" ON "NOT enable-all-swig" ON)
MGL_DEPENDENT_OPTION(enable-lua "Enable Lua (v.5.1) interface" OFF "NOT enable-lgpl" ON "NOT enable-all-swig" ON)
MGL_DEPENDENT_OPTION(enable-octave "Enable octave interface" OFF "NOT enable-lgpl" ON "NOT enable-all-swig" ON)
MGL_DEPENDENT_OPTION(enable-octave-install "Octave interface will install for all users" ON "NOT enable-lgpl" ON "NOT enable-all-swig" ON)

include_directories( ${MathGL_SOURCE_DIR}/include ${MathGL_BINARY_DIR}/include)
set(MGL_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/include/mgl2")
set(MGL_CGI_PATH "${CMAKE_INSTALL_PREFIX}/share/mathgl" CACHE STRING "Set CGI install directory")

if(NOT WIN32)
#	set(MGL_CGI_PATH "${CMAKE_INSTALL_PREFIX}/share/mathgl")
	set(MGL_DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/mathgl")
	set(MGL_DOC_PATH "${CMAKE_INSTALL_PREFIX}/share/doc/mathgl")
	set(MGL_MAN_PATH "${CMAKE_INSTALL_PREFIX}/share/man")
	set(MGL_INFO_PATH "${CMAKE_INSTALL_PREFIX}/share/info")
	set(MGL_FONT_PATH "${MGL_DATA_PATH}/fonts")
	install(DIRECTORY fonts/ DESTINATION ${MGL_FONT_PATH}
			PATTERN ".svn" EXCLUDE
			PATTERN "*.vfm")
endif(NOT WIN32)

include(CheckFunctionExists)
include(CMakePushCheckState)
include(TestBigEndian)

TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
if(WORDS_BIGENDIAN)
	ADD_DEFINITIONS("-DWORDS_BIGENDIAN")
endif(WORDS_BIGENDIAN)

CHECK_FUNCTION_EXISTS(sin MGL_SIN)
CHECK_FUNCTION_EXISTS(memrchr HAVE_MEMRCHR)
if(NOT MGL_SIN)
        cmake_push_check_state()
        set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} m)
        CHECK_FUNCTION_EXISTS(sin MGL_SIN_M)
        cmake_pop_check_state()
        if(MGL_SIN_M)
                set(M_LIB m)
        elseif(MGL_SIN_M)
                message(SEND_ERROR "Math library not found")
        endif(MGL_SIN_M)
endif(NOT MGL_SIN)
if(HAVE_MEMRCHR)
	ADD_DEFINITIONS("-DHAVE_MEMRCHR")
endif(HAVE_MEMRCHR)

if(enable-double)
	set(MGL_USE_DOUBLE 1)
else(enable-double)
	set(MGL_USE_DOUBLE 0)
endif(enable-double)

if(enable-qt4 OR enable-qt5)
	set(MGL_HAVE_QT 1)
endif(enable-qt4 OR enable-qt5)

if(enable-simple)
	set(MGL_NO_DATA_A 1)
message(STATUS "Class mglDataA is switched off.")
else(enable-simple)
	set(MGL_NO_DATA_A 0)
endif(enable-simple)

if(enable-openmp)
	find_package(OpenMP)
	if(OPENMP_FOUND)
		set(MGL_HAVE_OMP 1)
		set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
		set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
	else(OPENMP_FOUND)
		message(SEND_ERROR "Couldn't find OpenMP. You can enable POSIX threads instead.")
		set(MGL_HAVE_OMP 0)
	endif(OPENMP_FOUND)
else(enable-openmp)
	set(MGL_HAVE_OMP 0)
endif(enable-openmp)

if(enable-mpi)
	set(MGL_HAVE_MPI 1)
	find_package(MPI REQUIRED)
	set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
	set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS})
	include_directories(${MPI_INCLUDE_PATH})
else(enable-mpi)
	set(MGL_HAVE_MPI 0)
endif(enable-mpi)

if(enable-pthread)
	set(MGL_HAVE_PTHREAD 1)
	include(FindThreads)
	if(NOT CMAKE_USE_PTHREADS_INIT)
		message(SEND_ERROR "Couldn't find POSIX threads library.")
	endif(NOT CMAKE_USE_PTHREADS_INIT)
else(enable-pthread)
	set(MGL_HAVE_PTHREAD 0)
endif(enable-pthread)

if(enable-gsl)
	set(MGL_HAVE_GSL 1)
	find_library(GSL_LIB gsl)
	find_library(GSL_CBLAS_LIB gslcblas)
	find_path(GSL_INCLUDE_DIR gsl/gsl_fft_complex.h)
	if(NOT GSL_LIB OR NOT GSL_CBLAS_LIB OR NOT GSL_INCLUDE_DIR)
		message(SEND_ERROR "${GSL_LIB}")
		message(SEND_ERROR "${GSL_CBLAS_LIB}")
		message(SEND_ERROR "${GSL_INCLUDE_DIR}")
		message(SEND_ERROR "Couldn't find GSL libraries.")
	endif(NOT GSL_LIB OR NOT GSL_CBLAS_LIB OR NOT GSL_INCLUDE_DIR)
else(enable-gsl)
	set(MGL_HAVE_GSL 0)
endif(enable-gsl)

#if(enable-all OR enable-ltdl)
#	set(MGL_HAVE_LTDL 1)
#	find_library(LTDL_LIB ltdl)
#	find_path(LTDL_INCLUDE_DIR ltdl.h)
#	if(NOT LTDL_LIB OR NOT LTDL_INCLUDE_DIR)
#		message(SEND_ERROR "${LTDL_LIB}")
#		message(SEND_ERROR "${LTDL_INCLUDE_DIR}")
#		message(SEND_ERROR "Couldn't find LTDL library.")
#	endif(NOT LTDL_LIB OR NOT LTDL_INCLUDE_DIR)
#else(enable-all OR enable-ltdl)
#	set(MGL_HAVE_LTDL 0)
#endif(enable-all OR enable-ltdl)

if(enable-hdf4)
	set(MGL_HAVE_HDF4 1)
	find_library(HDF4_LIB df)
	find_library(HDF4MF_LIB mfhdf)
	find_path(HDF4_INCLUDE_DIR hdf/mfhdf.h)
	if(NOT HDF4_LIB OR NOT HDF4MF_LIB OR NOT HDF4_INCLUDE_DIR)
		message(SEND_ERROR "${HDF4_LIB}")
		message(SEND_ERROR "${HDF4MF_LIB}")
		message(SEND_ERROR "${HDF4_INCLUDE_DIR}")
		message(SEND_ERROR "Couldn't find HDF4 libraries.")
	endif(NOT HDF4_LIB OR NOT HDF4MF_LIB OR NOT HDF4_INCLUDE_DIR)
else(enable-hdf4)
	set(MGL_HAVE_HDF4 0)
endif(enable-hdf4)

if(enable-hdf5)
	set(MGL_HAVE_HDF5 1)
	include(FindHDF5)
	if(NOT HDF5_FOUND)
		message(SEND_ERROR "Couldn't find HDF5 library.")
	endif(NOT HDF5_FOUND)
else(enable-hdf5)
	set(MGL_HAVE_HDF5 0)
endif(enable-hdf5)

if(enable-jpeg)
	set(MGL_HAVE_JPEG 1)
	include(FindJPEG)
	if(NOT JPEG_FOUND)
		message(SEND_ERROR "Couldn't find JPEG library.")
	endif(NOT JPEG_FOUND)
else(enable-jpeg)
	set(MGL_HAVE_JPEG 0)
endif(enable-jpeg)


if(enable-zlib)
	set(MGL_HAVE_ZLIB 1)
	include(FindZLIB)
	if(NOT ZLIB_FOUND)
		message(SEND_ERROR "Couldn't find ZLib library.")
	endif(NOT ZLIB_FOUND)
else(enable-zlib)
	set(MGL_HAVE_ZLIB 0)
endif(enable-zlib)

if(enable-png)
	set(MGL_HAVE_PNG 1)
	if(NOT MGL_HAVE_ZLIB)
		message(SEND_ERROR "You have to enable ZLib if you plan to use PNG export.")
	endif(NOT MGL_HAVE_ZLIB)
	include(FindPNG)
	if(NOT PNG_FOUND)
		message(SEND_ERROR "Couldn't find PNG library.")
	endif(NOT PNG_FOUND)
else(enable-png)
	set(MGL_HAVE_PNG 0)
endif(enable-png)


if(enable-pdf)
	set(MGL_HAVE_PDF 1)
	if(NOT MGL_HAVE_PNG)
		message(SEND_ERROR "You have to enable PNG if you plan to use PDF export.")
	endif(NOT MGL_HAVE_PNG)
	find_library(HPDF_LIB hpdf)
	if(NOT HPDF_LIB)
		message(SEND_ERROR "Couldn't find libHaru or libhpdf.")
	endif(NOT HPDF_LIB)
	find_path(HPDF_INCLUDE_DIR hpdf_u3d.h)
	if(NOT HPDF_INCLUDE_DIR)
		message(SEND_ERROR "Couldn't find headers of 3d-enabled version of libhpdf.")
	endif(NOT HPDF_INCLUDE_DIR)
else(enable-pdf)
	set(MGL_HAVE_PDF 0)
endif(enable-pdf)

if(enable-gif)
	set(MGL_HAVE_GIF 1)
	include(FindGIF)
	if(NOT GIF_FOUND)
		message(SEND_ERROR "Couldn't find GIF library.")
	endif(NOT GIF_FOUND)
else(enable-gif)
	set(MGL_HAVE_GIF 0)
endif(enable-gif)

if(enable-opengl)
	set(MGL_HAVE_OPENGL 1)
	include(FindOpenGL)
	if(NOT OPENGL_FOUND)
		message(SEND_ERROR "Couldn't find OpenGL libraries.")
	endif(NOT OPENGL_FOUND)
else(enable-opengl)
	set(MGL_HAVE_OPENGL 0)
endif(enable-opengl)

if(enable-glut)
	set(MGL_HAVE_GLUT 1)
	if(NOT MGL_HAVE_OPENGL)
		message(SEND_ERROR "You have to enable OpenGL if you plan to use GLUT.")
	endif(NOT MGL_HAVE_OPENGL)
	include(FindGLUT)
	if(NOT GLUT_FOUND)
		message(SEND_ERROR "Couldn't find GLUT library.")
	endif(NOT GLUT_FOUND)
else(enable-glut)
	set(MGL_HAVE_GLUT 0)
endif(enable-glut)

if(enable-fltk)
	set(MGL_HAVE_FLTK 1)
	include(FindFLTK)
	if(NOT FLTK_FOUND)
		message(SEND_ERROR "Couldn't find FLTK library.")
	endif(NOT FLTK_FOUND)
else(enable-fltk)
	set(MGL_HAVE_FLTK 0)
endif(enable-fltk)

if(enable-wx)
	set(MGL_HAVE_WX 1)
	FIND_PACKAGE(wxWidgets COMPONENTS base core gl)
	if(NOT wxWidgets_FOUND)
		message(SEND_ERROR "Couldn't find wxWidgets library.")
	endif(NOT wxWidgets_FOUND)
else(enable-wx)
	set(MGL_HAVE_WX 0)
endif(enable-wx)

if(enable-python)
	set(MGL_HAVE_SWIG 1)
	set(MGL_HAVE_PYTHON 1)
	set(Python_ADDITIONAL_VERSIONS 2.7)
	FIND_PACKAGE(PythonInterp)
	if(NOT PYTHONINTERP_FOUND)
		message(SEND_ERROR "Couldn't find python interpreter.")
	endif(NOT PYTHONINTERP_FOUND)
	FIND_PACKAGE(PythonLibs)
	if(NOT PYTHONLIBS_FOUND)
		message(SEND_ERROR "Couldn't find python development libraries.")
	endif(NOT PYTHONLIBS_FOUND)
	execute_process(
		COMMAND ${PYTHON_EXECUTABLE} -c "import numpy; print numpy.get_include()"
		OUTPUT_VARIABLE NUMPY_INCLUDE_PATH
		RESULT_VARIABLE NUMPY_ERR
		OUTPUT_STRIP_TRAILING_WHITESPACE
	)
	if(NOT NUMPY_INCLUDE_PATH)
		message(SEND_ERROR "Couldn't find numpy.")
	endif(NOT NUMPY_INCLUDE_PATH)
else(enable-python)
	set(MGL_HAVE_PYTHON 0)
endif(enable-python)

if(enable-lua)
	set(MGL_HAVE_SWIG 1)
	set(MGL_HAVE_LUA 1)
	INCLUDE(FindLua51)
	if(NOT LUA51_FOUND)
		message(SEND_ERROR "Couldn't find Lua 5.1 library.")
	endif(NOT LUA51_FOUND)
else(enable-lua)
	set(MGL_HAVE_LUA 0)
endif(enable-lua)


if(enable-octave)
	set(MGL_HAVE_SWIG 1)
	set(MGL_HAVE_OCTAVE 1)
	find_program(oct_prog octave-config)
	if(NOT oct_prog)
		message(SEND_ERROR "Couldn't find octave-config needed for octave interfaces compiling.")
	endif(NOT oct_prog)
	find_program(oct_exec octave)
	if(NOT oct_exec)
		message(SEND_ERROR "Couldn't find octave needed for octave interfaces compiling.")
	endif(NOT oct_exec)
	find_program(oct_mk mkoctfile)
	if(NOT oct_mk)
		message(SEND_ERROR "Couldn't find mkoctfile needed for octave interfaces compiling.")
	endif(NOT oct_mk)
	find_program(oct_tar tar)
	if(NOT oct_tar)
		message(SEND_ERROR "Couldn't find tar needed for octave interfaces creation.")
	endif(NOT oct_tar)
else(enable-octave)
	set(MGL_HAVE_OCTAVE 0)
endif(enable-octave)

if(enable-doc-info)
	set(MGL_HAVE_DOC_INFO 1)
	find_program(findmi makeinfo)
	if(NOT findmi)
		message(SEND_ERROR "Couldn't find makeinfo needed for documentation building.")
	endif(NOT findmi)
else(enable-doc-info)
	set(MGL_HAVE_DOC_INFO 0)
endif(enable-doc-info)

if(enable-doc-html OR enable-doc-site)
	if(enable-texi2html)
		find_program(findth texi2html)
		if(NOT findth)
			message(SEND_ERROR "Couldn't find texi2html needed for documentation building.")
		endif(NOT findth)
	else(enable-texi2html)
		find_program(findth texi2any)
		if(NOT findth)
			message(SEND_ERROR "Couldn't find texi2any needed for documentation building.")
		endif(NOT findth)
	endif(enable-texi2html)
endif(enable-doc-html OR enable-doc-site)

if(enable-texi2html)
	set(site_en ${CMAKE_BINARY_DIR}/texinfo/doc_en/doc_en.html)
	set(site_ru ${CMAKE_BINARY_DIR}/texinfo/doc_ru/doc_ru.html)
	set(th_opt )
else(enable-texi2html)
	set(th_opt --html)
	set(site_en ${CMAKE_BINARY_DIR}/texinfo/doc_en/index.html)
	set(site_ru ${CMAKE_BINARY_DIR}/texinfo/doc_ru/index.html)
endif(enable-texi2html)

if(enable-doc-html)
	set(MGL_HAVE_DOC_HTML 1)
else(enable-doc-html)
	set(MGL_HAVE_DOC_HTML 0)
endif(enable-doc-html)


if(enable-doc-site)
	set(MGL_HAVE_DOC_SITE 1)
else(enable-doc-site)
	set(MGL_HAVE_DOC_SITE 0)
endif(enable-doc-site)

if(enable-doc-pdf-ru)
	set(MGL_HAVE_DOC_PDF_RU 1)
	find_program(findtp texi2pdf)
	if(NOT findtp)
		message(SEND_ERROR "Couldn't find texi2pdf needed for documentation building.")
	endif(NOT findtp)
else(enable-doc-pdf-ru)
	set(MGL_HAVE_DOC_PDF_RU 0)
endif(enable-doc-pdf-ru)

if(enable-doc-pdf-en)
	set(MGL_HAVE_DOC_PDF_EN 1)
	find_program(findtp texi2pdf)
	if(NOT findtp)
		message(SEND_ERROR "Couldn't find texi2pdf needed for documentation building.")
	endif(NOT findtp)
else(enable-doc-pdf-en)
	set(MGL_HAVE_DOC_PDF_EN 0)
endif(enable-doc-pdf-en)

if(enable-doc-json)
	set(MGL_HAVE_DOC_JSON 1)
else(enable-doc-json)
	set(MGL_HAVE_DOC_JSON 0)
endif(enable-doc-json)

if(enable-doc-prc)
	set(MGL_HAVE_DOC_PRC 1)
	if(NOT enable-pdf)
		message(SEND_ERROR "You need to enable pdf support for MathGL.")
	endif(NOT enable-pdf)
else(enable-doc-prc)
	set(MGL_HAVE_DOC_PRC 0)
endif(enable-doc-prc)

if(MGL_HAVE_SWIG)
	FIND_PACKAGE(SWIG)
	if(NOT SWIG_FOUND)
		message(SEND_ERROR "Couldn't find swig needed for interfaces compiling.")
	endif(NOT SWIG_FOUND)
	INCLUDE(${SWIG_USE_FILE})
endif(MGL_HAVE_SWIG)

if(UNIX)
	add_definitions(-DNO_COLOR_ARRAY)
endif(UNIX)

if(WIN32)
	add_definitions(-DWIN32)
endif(WIN32)

add_subdirectory( src )
add_subdirectory( widgets )
add_subdirectory( include )
if(NOT enable-lgpl)
	add_subdirectory( udav )
	add_subdirectory( json )
	add_subdirectory( lang )
	add_subdirectory( utils )
#	add_subdirectory( mgllab )
endif(NOT enable-lgpl)

if(NOT MSVC AND NOT BORLAND)
	add_subdirectory( examples )

	if(MGL_HAVE_DOC_HTML OR MGL_HAVE_DOC_SITE OR MGL_HAVE_DOC_INFO OR MGL_HAVE_DOC_PDF_RU OR MGL_HAVE_DOC_PDF_EN )
		add_subdirectory( texinfo )
	endif(MGL_HAVE_DOC_HTML OR MGL_HAVE_DOC_SITE OR MGL_HAVE_DOC_INFO OR MGL_HAVE_DOC_PDF_RU OR MGL_HAVE_DOC_PDF_EN )

endif(NOT MSVC AND NOT BORLAND)
