diff --git a/.cmake-format.yaml b/.cmake-format.yaml
new file mode 100644
index 0000000..81a5e26
--- /dev/null
+++ b/.cmake-format.yaml
@@ -0,0 +1,94 @@
+# https://pypi.org/project/cmakelang
+# https://github.com/cheshirekow/cmake_format
+
+# ----------------------
+# Options for formatting
+# ----------------------
+
+# How wide to allow formatted cmake files
+# TODO: Reflow the CMake files to allow setting the maximum line width to 100.
+line_width: 255
+
+# How many spaces to tab for indent
+tab_size: 2
+
+# If true, lines are indented using tab characters (utf-8 0x09) instead of
+# <tab_size> space characters (utf-8 0x20). In cases where the layout would
+# require a fractional tab character, the behavior of the fractional
+# indentation is governed by <fractional_tab_policy>
+use_tabchars: false
+
+# If <use_tabchars> is True, then the value of this variable indicates how
+# fractional indentions are handled during whitespace replacement. If set to
+# 'use-space', fractional indentation is left as spaces (utf-8 0x20). If set
+# to `round-up` fractional indentation is replaced with a single tab character
+# (utf-8 0x09) effectively shifting the column to the next tabstop
+fractional_tab_policy: "use-space"
+
+# Enable comment markup parsing and reflow
+enable_markup: false
+
+# -------------------
+# Options for linting
+# -------------------
+
+# Lint codes to disable
+disabled_codes: [
+  # TODO:
+  # Reconcile the CMake variable names with the patterns below, then
+  # re-enable the "invalid variable name XXX" messages.
+  "C0103",
+
+  # A custom command with one output doesn't really need a comment because
+  # the default "generating XXX" is a good message already.
+  "C0113",
+]
+
+# Regular expression pattern describing valid function names
+function_pattern: "[0-9a-z_]+"
+
+# Regular expression pattern describing valid macro names
+macro_pattern: "[0-9A-Z_]+"
+
+# Regular expression pattern describing valid names for variables with global
+# (cache) scope
+global_var_pattern: "[A-Z][0-9A-Z_]+"
+
+# Regular expression pattern describing valid names for variables with global
+# scope (but internal semantic)
+internal_var_pattern: "_[A-Z][0-9A-Z_]+"
+
+# Regular expression pattern describing valid names for variables with local
+# scope
+local_var_pattern: "[a-z][a-z0-9_]+"
+
+# Regular expression pattern describing valid names for privatedirectory
+# variables
+private_var_pattern: "_[0-9a-z_]+"
+
+# Regular expression pattern describing valid names for public directory
+# variables
+public_var_pattern: "[A-Z][0-9A-Z_]+"
+
+# Regular expression pattern describing valid names for function/macro
+# arguments and loop variables.
+argument_var_pattern: "[a-z][a-z0-9_]+"
+
+# Regular expression pattern describing valid names for keywords used in
+# functions or macros
+keyword_pattern: "[A-Z][0-9A-Z_]+"
+
+# In the heuristic for C0201, how many conditionals to match within a loop in
+# before considering the loop a parser
+max_conditionals_custom_parser: 2
+
+# Require at least this many newlines between statements
+min_statement_spacing: 1
+
+# Require no more than this many newlines between statements
+max_statement_spacing: 2
+max_returns: 6
+max_branches: 12
+max_arguments: 5
+max_localvars: 15
+max_statements: 50
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 77eafdb..e142761 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,7 +63,7 @@
 # Same as above, but for the third-party tools.
 # Although these tools are targetted at development environments only,
 # the users are allowed to override the option to build by default.
-if (ANDROID OR IOS)
+if(ANDROID OR IOS)
   option(PNG_TOOLS "Build the libpng tools" OFF)
 else()
   option(PNG_TOOLS "Build the libpng tools" ON)
@@ -92,7 +92,7 @@
 # to check CMAKE_OSX_ARCHITECTURES to identify which hardware-specific flags to
 # enable. Note that this will fail if you attempt to build a universal binary
 # in a single CMake invocation.
-if (APPLE AND CMAKE_OSX_ARCHITECTURES)
+if(APPLE AND CMAKE_OSX_ARCHITECTURES)
   string(TOLOWER "${CMAKE_OSX_ARCHITECTURES}" PNG_TARGET_ARCHITECTURE)
 else()
   string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" PNG_TARGET_ARCHITECTURE)
@@ -116,7 +116,9 @@
 
 find_package(ZLIB REQUIRED)
 
-if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU AND NOT EMSCRIPTEN)
+if(UNIX
+   AND NOT (APPLE OR BEOS OR HAIKU)
+   AND NOT EMSCRIPTEN)
   find_library(M_LIBRARY m)
   if(M_LIBRARY)
     set(M_LIBRARY m)
@@ -310,7 +312,7 @@
 endif(PNG_HARDWARE_OPTIMIZATIONS)
 
 option(ld-version-script "Enable linker version script" ON)
-if(ld-version-script AND NOT ANDROID AND NOT APPLE)
+if(ld-version-script AND NOT (ANDROID OR APPLE))
   # Check if LD supports linker scripts.
   file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map" "
 VERS_1 { global: sym1; local: *; };
@@ -356,7 +358,7 @@
   message(STATUS "Could not find an AWK-compatible program")
 endif()
 
-if(NOT AWK OR ANDROID OR IOS)
+if(NOT AWK OR (ANDROID OR IOS))
   # No awk available to generate sources; use pre-built pnglibconf.h
   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt
                  ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h)
@@ -377,7 +379,7 @@
                  NEWLINE_STYLE LF)
 
   # Generate .chk from .out with awk:
-  # generate_chk(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]])
+  # generate_chk(INPUT <file> OUTPUT <file> [DEPENDS <deps>...])
   function(generate_chk)
     set(options)
     set(oneValueArgs INPUT OUTPUT)
@@ -399,8 +401,8 @@
                        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
   endfunction()
 
-  # Generate .out from .c with awk
-  # generate_out(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]])
+  # Generate .out from .c with awk:
+  # generate_out(INPUT <file> OUTPUT <file> [DEPENDS <deps>...])
   function(generate_out)
     set(options)
     set(oneValueArgs INPUT OUTPUT)
@@ -422,8 +424,8 @@
                        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
   endfunction()
 
-  # Generate specific source file with awk
-  # generate_source(OUTPUT outputfile [DEPENDS dep1 [dep2...]])
+  # Generate specific source file with awk:
+  # generate_source(OUTPUT <file> [DEPENDS <deps>...])
   function(generate_source)
     set(options)
     set(oneValueArgs OUTPUT)
@@ -441,8 +443,8 @@
                        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
   endfunction()
 
-  # Copy file
-  # generate_copy(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]])
+  # Copy file:
+  # generate_copy(INPUT <file> OUTPUT <file> [DEPENDS <deps>...])
   function(generate_copy)
     set(options)
     set(oneValueArgs INPUT OUTPUT)
@@ -584,7 +586,7 @@
                             "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk" png_scripts_symbols_chk
                             "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" png_scripts_symbols_out
                             "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out" png_scripts_vers_out)
-endif(NOT AWK OR ANDROID OR IOS)
+endif(NOT AWK OR (ANDROID OR IOS))
 
 # List the source code files.
 set(libpng_public_hdrs
@@ -598,7 +600,7 @@
     pnginfo.h
     pngstruct.h
 )
-if(AWK AND NOT ANDROID AND NOT IOS)
+if(AWK AND NOT (ANDROID OR IOS))
   list(APPEND libpng_private_hdrs "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h")
 endif()
 set(libpng_sources
@@ -769,6 +771,8 @@
 if(PNG_TESTS AND PNG_SHARED)
   enable_testing()
 
+  # Add a custom target to run a test:
+  # png_add_test(NAME <test> COMMAND <command> [OPTIONS <options>...] [FILES <files>...])
   function(png_add_test)
     set(options)
     set(oneValueArgs NAME COMMAND)
@@ -966,8 +970,9 @@
   list(APPEND PNG_BIN_TARGETS png-fix-itxt)
 endif()
 
-# Create a symlink from src to dest (if possible), or, alternatively,
-# copy src to dest if different.
+# Create a symlink that points to a target file (if symlinking is possible),
+# or make a copy of the target file (if symlinking is not possible):
+# create_symlink(<destfile> [FILE <file> | TARGET <target>])
 function(create_symlink DEST_FILE)
   cmake_parse_arguments(_SYM "" "FILE;TARGET" "" ${ARGN})
   if(NOT _SYM_FILE AND NOT _SYM_TARGET)
diff --git a/scripts/cmake/PNGConfig.cmake b/scripts/cmake/PNGConfig.cmake
index 3b6f646..b569d45 100644
--- a/scripts/cmake/PNGConfig.cmake
+++ b/scripts/cmake/PNGConfig.cmake
@@ -1,15 +1,28 @@
-include(CMakeFindDependencyMacro)
-
-find_dependency(ZLIB REQUIRED)
-
-include("${CMAKE_CURRENT_LIST_DIR}/PNGTargets.cmake")
-
-if(NOT TARGET PNG::PNG)
-  if(TARGET PNG::png_shared)
-    add_library(PNG::PNG INTERFACE IMPORTED)
-    target_link_libraries(PNG::PNG INTERFACE PNG::png_shared)
-  elseif(TARGET PNG::png_static)
-    add_library(PNG::PNG INTERFACE IMPORTED)
-    target_link_libraries(PNG::PNG INTERFACE PNG::png_static)
-  endif()
-endif()
+# PNGConfig.cmake
+# CMake config file compatible with the FindPNG module.
+
+# Copyright (c) 2024 Cosmin Truta
+# Written by Benjamin Buch, 2024
+#
+# Use, modification and distribution are subject to
+# the same licensing terms and conditions as libpng.
+# Please see the copyright notice in png.h or visit
+# http://libpng.org/pub/png/src/libpng-LICENSE.txt
+#
+# SPDX-License-Identifier: libpng-2.0
+
+include(CMakeFindDependencyMacro)
+
+find_dependency(ZLIB REQUIRED)
+
+include("${CMAKE_CURRENT_LIST_DIR}/PNGTargets.cmake")
+
+if(NOT TARGET PNG::PNG)
+  if(TARGET PNG::png_shared)
+    add_library(PNG::PNG INTERFACE IMPORTED)
+    target_link_libraries(PNG::PNG INTERFACE PNG::png_shared)
+  elseif(TARGET PNG::png_static)
+    add_library(PNG::PNG INTERFACE IMPORTED)
+    target_link_libraries(PNG::PNG INTERFACE PNG::png_static)
+  endif()
+endif()
