set(MathGL_VERSION_MAJOR 2)
set(MathGL_VERSION_MINOR 1.3)
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,relro")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro")
MACRO(MGL_DEPENDENT_OPTION option doc default depends1 force1 depends2 force2)
IF(${option}_ISSET MATCHES "^${option}_ISSET$")
option(enable-simple "Slightly increase drawing speed but disable mglDataA class")
option(enable-mpi "Enable mpi" ON)
option(enable-doc "Enable documentation building" ON)
-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-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-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-lgpl "Enable only LGPL part of MathGL" OFF)
+option(enable-mgl2 "Use names 'libmgl2-*' instead of 'libmgl-*'" OFF)
#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-pdf "Enable pdf support" ON "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-gif "Enable gif support" ON "NOT enable-all" ON)
CMAKE_DEPENDENT_OPTION(enable-opengl "Enable OpenGL support" ON "NOT enable-mpi" ON)
-MGL_DEPENDENT_OPTION(enable-glut "Enable glut support" ON "NOT enable-lgpl" ON "NOT enable-all-widgets" ON)
-MGL_DEPENDENT_OPTION(enable-fltk "Enable fltk widget" ON "NOT enable-lgpl" ON "NOT enable-all-widgets" ON)
-CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" ON "NOT enable-lgpl" ON)
-MGL_DEPENDENT_OPTION(enable-qt "Enable Qt4 widget" ON "NOT enable-lgpl" ON "NOT enable-all-widgets" ON)
-MGL_DEPENDENT_OPTION(enable-python "Enable python interface" ON "NOT enable-lgpl" ON "NOT enable-all-swig" ON)
-MGL_DEPENDENT_OPTION(enable-octave "Enable octave interface" ON "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)
+MGL_DEPENDENT_OPTION(enable-glut "Enable glut support" ON "NOT enable-lgpl;NOT enable-mpi" OFF "NOT enable-all-widgets" OFF)
+MGL_DEPENDENT_OPTION(enable-fltk "Enable fltk widget" ON "NOT enable-lgpl;NOT enable-mpi" OFF "NOT enable-all-widgets" OFF)
+CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" ON "NOT enable-lgpl;NOT enable-mpi" ON)
+MGL_DEPENDENT_OPTION(enable-qt "Enable Qt4 widget" ON "NOT enable-lgpl;NOT enable-mpi" OFF "NOT enable-all-widgets" OFF)
+MGL_DEPENDENT_OPTION(enable-python "Enable python interface" ON "NOT enable-lgpl" ON "NOT enable-all-swig" OFF)
+MGL_DEPENDENT_OPTION(enable-octave "Enable octave interface" ON "NOT enable-lgpl" ON "NOT enable-all-swig" OFF)
+MGL_DEPENDENT_OPTION(enable-octave-install "Octave interface will install for all users" ON "NOT enable-lgpl" ON "NOT enable-all-swig" OFF)
include_directories( ${MathGL_SOURCE_DIR}/include ${MathGL_BINARY_DIR}/include)
set(MGL_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/include/mgl2")
if(UNIX)
add_definitions(-DNO_COLOR_ARRAY)
+ add_definitions(-D_FORTIFY_SOURCE=2)
endif(UNIX)
if(WIN32)
-Include all available features, windows classes and languages during compilation
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -59,8 +59,8 @@
+@@ -11,6 +11,9 @@
+ set(MathGL_VERSION_MAJOR 2)
+ set(MathGL_VERSION_MINOR 1.3)
+
++set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro")
++set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,relro")
++set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro")
+
+ MACRO(MGL_DEPENDENT_OPTION option doc default depends1 force1 depends2 force2)
+ IF(${option}_ISSET MATCHES "^${option}_ISSET$")
+@@ -59,31 +62,31 @@
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-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-mpi "Enable mpi" ON)
+option(enable-doc "Enable documentation building" ON)
- option(enable-all "Enable all core features")
- option(enable-all-widgets "Enable all Widgets")
- option(enable-all-swig "Enable all SWIG based interfaces")
-@@ -70,19 +70,19 @@
++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-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-lgpl "Enable only LGPL part of MathGL" OFF)
++option(enable-mgl2 "Use names 'libmgl2-*' instead of 'libmgl-*'" OFF)
#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)
-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)
+CMAKE_DEPENDENT_OPTION(enable-jpeg "Enable jpeg support" ON "NOT enable-all" ON)
+MGL_DEPENDENT_OPTION(enable-gsl "Enable gsl support" ON "NOT enable-lgpl" ON "NOT enable-all" ON)
+MGL_DEPENDENT_OPTION(enable-hdf4 "Enable hdf4 support" ON "NOT enable-lgpl" ON "NOT enable-all" ON)
+CMAKE_DEPENDENT_OPTION(enable-pdf "Enable pdf support" ON "NOT enable-all" ON)
+CMAKE_DEPENDENT_OPTION(enable-gif "Enable gif support" ON "NOT enable-all" ON)
+CMAKE_DEPENDENT_OPTION(enable-opengl "Enable OpenGL support" ON "NOT enable-mpi" ON)
-+MGL_DEPENDENT_OPTION(enable-glut "Enable glut support" ON "NOT enable-lgpl" ON "NOT enable-all-widgets" ON)
-+MGL_DEPENDENT_OPTION(enable-fltk "Enable fltk widget" ON "NOT enable-lgpl" ON "NOT enable-all-widgets" ON)
-+CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" ON "NOT enable-lgpl" ON)
-+MGL_DEPENDENT_OPTION(enable-qt "Enable Qt4 widget" ON "NOT enable-lgpl" ON "NOT enable-all-widgets" ON)
-+MGL_DEPENDENT_OPTION(enable-python "Enable python interface" ON "NOT enable-lgpl" ON "NOT enable-all-swig" ON)
-+MGL_DEPENDENT_OPTION(enable-octave "Enable octave interface" ON "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)
++MGL_DEPENDENT_OPTION(enable-glut "Enable glut support" ON "NOT enable-lgpl;NOT enable-mpi" OFF "NOT enable-all-widgets" OFF)
++MGL_DEPENDENT_OPTION(enable-fltk "Enable fltk widget" ON "NOT enable-lgpl;NOT enable-mpi" OFF "NOT enable-all-widgets" OFF)
++CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" ON "NOT enable-lgpl;NOT enable-mpi" ON)
++MGL_DEPENDENT_OPTION(enable-qt "Enable Qt4 widget" ON "NOT enable-lgpl;NOT enable-mpi" OFF "NOT enable-all-widgets" OFF)
++MGL_DEPENDENT_OPTION(enable-python "Enable python interface" ON "NOT enable-lgpl" ON "NOT enable-all-swig" OFF)
++MGL_DEPENDENT_OPTION(enable-octave "Enable octave interface" ON "NOT enable-lgpl" ON "NOT enable-all-swig" OFF)
++MGL_DEPENDENT_OPTION(enable-octave-install "Octave interface will install for all users" ON "NOT enable-lgpl" ON "NOT enable-all-swig" OFF)
include_directories( ${MathGL_SOURCE_DIR}/include ${MathGL_BINARY_DIR}/include)
+ set(MGL_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/include/mgl2")
+@@ -402,6 +405,7 @@
+
+ if(UNIX)
+ add_definitions(-DNO_COLOR_ARRAY)
++ add_definitions(-D_FORTIFY_SOURCE=2)
+ endif(UNIX)
+
+ if(WIN32)