diff --git a/CMakeLists.txt b/CMakeLists.txt
index 46d19405faef055b819a7b3d2abc9158abb13061..ca80590476ccea8086ccb6ace21ce86f39b3caf4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/modules")
 include(CMakeDependentOption)
 include(GNUInstallDirs)
 include(GenerateExportHeader)
+include(CMakePackageConfigHelpers)
 
 # Load lib version from debian/substvars
 file(READ ${CMAKE_CURRENT_SOURCE_DIR}/debian/substvars DEBIAN_SUBSTVARS)
@@ -174,7 +175,9 @@ install(EXPORT shadertoy
 # Configure the -config.cmake file
 configure_file(shadertoy-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/shadertoy-config.cmake @ONLY)
 # Configure -version.cmake file
-configure_file(shadertoy-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/shadertoy-config-version.cmake @ONLY)
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/shadertoy-config-version.cmake
+	VERSION ${VERSION}
+	COMPATIBILITY SameMajorVersion)
 
 # Install cmake config files
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/shadertoy-config.cmake
diff --git a/shadertoy-config-version.cmake.in b/shadertoy-config-version.cmake.in
deleted file mode 100644
index 582f19efd63f807efc65288b5fcf130d616db5e9..0000000000000000000000000000000000000000
--- a/shadertoy-config-version.cmake.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# libshadertoy versioning package script
-
-set(PACKAGE_VERSION @VERSION@)
-
-if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@VERSION_MAJOR@")
-    if ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL "@VERSION_MINOR@")
-        set(PACKAGE_VERSION_EXACT TRUE)
-    elseif("${PACKAGE_FIND_VERSION_MINOR}" LESS "@VERSION_MINOR@")
-        set(PACKAGE_VERSION_COMPATIBLE TRUE)
-    else()
-        set(PACKAGE_VERSION_UNSUITABLE TRUE)
-    endif()
-else()
-    set(PACKAGE_VERSION_UNSUITABLE TRUE)
-endif()