--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,7 @@
 cmake_minimum_required(VERSION 3.12)
 
 project(OpenSubdiv)
+include(GNUInstallDirs)
 
 # Set C++ standard requirements, allowing overrides
 if (NOT DEFINED CMAKE_CXX_STANDARD)
@@ -81,15 +82,15 @@ if (NOT DEFINED CMAKE_INSTALL_PREFIX)
 endif()
 
 if (NOT DEFINED CMAKE_INCDIR_BASE)
-    set( CMAKE_INCDIR_BASE include/opensubdiv )
+    set( CMAKE_INCDIR_BASE ${CMAKE_INSTALL_INCLUDEDIR}/opensubdiv )
 endif()
 
 if (NOT DEFINED CMAKE_BINDIR_BASE)
-    set( CMAKE_BINDIR_BASE bin )
+    set( CMAKE_BINDIR_BASE ${CMAKE_INSTALL_BINDIR} )
 endif()
 
 if (NOT DEFINED CMAKE_LIBDIR_BASE)
-    set( CMAKE_LIBDIR_BASE lib )
+    set( CMAKE_LIBDIR_BASE ${CMAKE_INSTALL_LIBDIR} )
 endif()
 
 if (NOT DEFINED CMAKE_FRAMEWORKDIR_BASE)
@@ -101,7 +102,7 @@ if (NOT DEFINED CMAKE_PLUGINDIR_BASE)
 endif()
 
 if (NOT DEFINED CMAKE_DOCDIR_BASE)
-    set( CMAKE_DOCDIR_BASE share/doc/opensubdiv )
+    set( CMAKE_DOCDIR_BASE ${CMAKE_INSTALL_DOCDIR} )
 else()
     if (IS_ABSOLUTE ${CMAKE_DOCDIR_BASE})
         set( CMAKE_DOCDIR_BASE "${CMAKE_DOCDIR_BASE}" )
