diff --git a/CMakeLists.txt b/CMakeLists.txt
index e73e7582b6d3aa1e3d5d8100003a515f11070f3b..bf9924fff7a1ae341e2d6fff45dd7fe67f881140 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1623,10 +1623,11 @@ if(WIN32 OR CYGWIN)
     set(GMSH_DOC .)
     set(GMSH_MAN .)
   else(ENABLE_OS_SPECIFIC_INSTALL)
-    set(GMSH_BIN bin)
-    set(GMSH_LIB lib)
-    set(GMSH_DOC share/doc/gmsh)
-    set(GMSH_MAN share/man/man1)
+    include(GNUInstallDirs)
+    set(GMSH_BIN ${CMAKE_INSTALL_BINDIR})
+    set(GMSH_LIB ${CMAKE_INSTALL_LIBDIR})
+    set(GMSH_DOC ${CMAKE_INSTALL_DOCDIR})
+    set(GMSH_MAN ${CMAKE_INSTALL_MANDIR}/man1)
   endif(ENABLE_OS_SPECIFIC_INSTALL)
   if(CYGWIN)
     unix2dos(GMSH_API)