Merge tag 'upstream/2.1.2+svn722' into experimental
authorDimitrios Eftaxiopoulos <eftaxi12@otenet.gr>
Sun, 21 Apr 2013 15:56:10 +0000 (18:56 +0300)
committerDimitrios Eftaxiopoulos <eftaxi12@otenet.gr>
Sun, 21 Apr 2013 15:56:10 +0000 (18:56 +0300)
Upstream version 2.1.2+svn722

Conflicts:
CMakeLists.txt

1  2 
CMakeLists.txt.orig

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ae44f81472b0aa72014f687ff6122d5453e926ce
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,448 @@@
++cmake_minimum_required(VERSION 2.8.6)
++
++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 1.2)
++
++
++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)
++<<<<<<< HEAD
++option(enable-simple "Slightly increase drawing speed but disable mglDataA class" OFF)
++option(enable-mpi "Enable mpi" ON)
++option(enable-all "Enable all core features" ON)
++option(enable-all-widgets "Enable all Widgets" ON)
++option(enable-all-swig "Enable all SWIG based interfaces" ON)
++option(enable-lgpl "Enable only LGPL part of MathGL" OFF)
++#option(enable-ltdl "Enable loading modules support")
++option(enable-pthread "Enable POSIX threads support" ON)
++option(enable-gsl "Enable gsl support" ON)
++option(enable-jpeg "Enable jpeg support" ON)
++option(enable-png "Enable png support" ON)
++option(enable-zlib "Enable zlib support" ON)
++option(enable-pdf "Enable pdf support" ON)
++option(enable-gif "Enable gif support" ON)
++option(enable-hdf4 "Enable hdf4 support" ON)
++option(enable-hdf5 "Enable hdf5 support" ON)
++option(enable-opengl "Enable OpenGL support" ON)
++option(enable-glut "Enable glut support" ON)
++option(enable-fltk "Enable fltk widget" ON)
++option(enable-wx "Enable wxWidget widget" ON)
++option(enable-qt "Enable Qt4 widget" ON)
++option(enable-python "Enable python interface" ON)
++option(enable-octave "Enable octave interface" ON)
++option(enable-octave-install "Octave interface will install for all users" ON)
++option(enable-doc "Enable documentation building" ON)
++=======
++option(enable-simple "Slightly increase drawing speed but disable mglDataA class")
++option(enable-mpi "Enable mpi")
++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" 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-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-opengl "Enable OpenGL support" ON "NOT enable-mpi" OFF)
++MGL_DEPENDENT_OPTION(enable-glut "Enable glut support" OFF "NOT enable-lgpl;NOT enable-mpi" ON "NOT enable-all-widgets" ON)
++MGL_DEPENDENT_OPTION(enable-fltk "Enable fltk widget" OFF "NOT enable-lgpl;NOT enable-mpi" ON "NOT enable-all-widgets" ON)
++CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" OFF "NOT enable-lgpl;NOT enable-mpi" OFF)
++MGL_DEPENDENT_OPTION(enable-qt "Enable Qt4 widget" OFF "NOT enable-lgpl;NOT enable-mpi" ON "NOT enable-all-widgets" ON)
++MGL_DEPENDENT_OPTION(enable-python "Enable python 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)
++>>>>>>> upstream/2.1.2+svn722
++
++include_directories( ${MathGL_SOURCE_DIR}/include ${MathGL_BINARY_DIR}/include)
++set(MGL_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/include/mgl2")
++
++include(CheckFunctionExists)
++include(CMakePushCheckState)
++CHECK_FUNCTION_EXISTS(sin MGL_SIN)
++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(enable-double)
++      set(MGL_USE_DOUBLE 1)
++else(enable-double)
++      set(MGL_USE_DOUBLE 0)
++endif(enable-double)
++
++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-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)
++#     message(STATUS "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)
++#     message(STATUS "Found libHaru library at: ${HPDF_LIB}")
++#     message(STATUS "Found libHaru headers: ${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-all-widgets OR enable-wx) AND (NOT enable-lgpl) )
++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-all-widgets OR enable-wx) AND (NOT enable-lgpl) )
++else(enable-wx)
++      set(MGL_HAVE_WX 0)
++#endif((enable-all-widgets OR enable-wx) AND (NOT enable-lgpl) )
++endif(enable-wx)
++
++if(enable-qt)
++      set(MGL_HAVE_QT 1)
++      FIND_PACKAGE(Qt4 4.8 REQUIRED QtCore QtGui QtNetwork QtWebKit)
++      if(NOT QT4_FOUND)
++              message(SEND_ERROR "Couldn't find Qt4 library.")
++      endif(NOT QT4_FOUND)
++else(enable-qt)
++      set(MGL_HAVE_QT 0)
++endif(enable-qt)
++
++if(enable-python)
++      set(MGL_HAVE_PYTHON 1)
++      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-octave)
++      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)
++      set(MGL_HAVE_DOC 1)
++      find_program(findmi makeinfo)
++      if(NOT findmi)
++              message(SEND_ERROR "Couldn't find makeinfo needed for documentation building.")
++      endif(NOT findmi)
++      find_program(findth texi2html)
++      if(NOT findth)
++              message(SEND_ERROR "Couldn't find texi2html needed for documentation building.")
++      endif(NOT findth)
++      find_program(findtp texi2pdf)
++      if(NOT findtp)
++              message(SEND_ERROR "Couldn't find texi2pdf needed for documentation building.")
++      endif(NOT findtp)
++else(enable-doc)
++      set(MGL_HAVE_DOC 0)
++endif(enable-doc)
++
++if(MGL_HAVE_PYTHON OR MGL_HAVE_OCTAVE)
++      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_PYTHON OR MGL_HAVE_OCTAVE)
++
++#execute_process(
++#     COMMAND ${oct_prog} -q --eval \'strcat\(octave_config_info\("canonical_host_type"\), "-", octave_config_info\("api_version"\)\)'|sed -e 's/ans = //'
++#     OUTPUT_VARIABLE OCTAVE_ARCH
++#     )
++#message(SEND_ERROR "${OCTAVE_ARCH}")
++
++if(UNIX)
++      add_definitions(-DNO_COLOR_ARRAY)
++endif(UNIX)
++
++if(WIN32)
++      add_definitions(-DWIN32)
++endif(WIN32)
++
++if(NOT WIN32)
++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)
++
++add_subdirectory( src )
++add_subdirectory( widgets )
++add_subdirectory( include )
++add_subdirectory( udav )
++add_subdirectory( json )
++#add_subdirectory( mgllab )
++add_subdirectory( lang )
++if(NOT MSVC AND NOT BORLAND)
++add_subdirectory( utils )
++add_subdirectory( examples )
++add_subdirectory( texinfo )
++endif(NOT MSVC AND NOT BORLAND)