diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000..515394d348
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,112 @@
+# Copyright (c) 2026 Narta Xaymar Dirks (info at xaymar dot com)
+#
+# Distributed under the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+# Require the latest CMake version.
+cmake_minimum_required(VERSION 4.2.1)
+
+project(asio)
+
+# Is this the new or old layout?
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include")
+ # New Layout
+ set(_src "${CMAKE_CURRENT_SOURCE_DIR}")
+else()
+ # Old Layout
+ set(_src "${CMAKE_CURRENT_SOURCE_DIR}/asio")
+endif()
+
+# Figure out the version from the provided version.hpp.
+if(EXISTS "${_src}/include/asio/version.hpp")
+ file(READ "${_src}/include/asio/version.hpp" ASIO_VERSION_HPP)
+ string(REGEX MATCH "#define ASIO_VERSION ([0-9]+) // ([0-9]+)\.([0-9]+)\.([0-9]+)" ASIO_VERSION "${ASIO_VERSION_HPP}")
+ set(ASIO_VERSION_INT ${CMAKE_MATCH_1})
+ set(ASIO_VERSION_MAJOR ${CMAKE_MATCH_2}) # Trust the comment for now.
+ set(ASIO_VERSION_MINOR ${CMAKE_MATCH_3})
+ set(ASIO_VERSION_PATCH ${CMAKE_MATCH_4})
+ project(${PROJECT_NAME} VERSION "${ASIO_VERSION_MAJOR}.${ASIO_VERSION_MINOR}.${ASIO_VERSION_PATCH}")
+endif()
+
+
+#--------------------------------------------------------------------------------#
+# Options
+#--------------------------------------------------------------------------------#
+
+# What options?
+
+#--------------------------------------------------------------------------------#
+# Library
+#--------------------------------------------------------------------------------#
+
+add_library(${PROJECT_NAME} INTERFACE)
+
+target_include_directories(${PROJECT_NAME}
+ INTERFACE
+ $
+ $
+)
+
+target_compile_definitions(${PROJECT_NAME}
+ INTERFACE
+ ASIO_STANDALONE
+)
+
+set_target_properties(${PROJECT_NAME} PROPERTIES
+ # Only necessary for source builds, which only work on MSVC anyway.
+ CXX_STANDARD 11
+ CXX_STANDARD_REQUIRED ON
+ CXX_EXTENSIONS OFF
+)
+
+#--------------------------------------------------------------------------------#
+# Install
+#--------------------------------------------------------------------------------#
+
+install(TARGETS ${PROJECT_NAME}
+ EXPORT ${PROJECT_NAME}-targets
+ LIBRARY RUNTIME FRAMEWORK
+ PERMISSIONS OWNER_WRITE GROUP_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE
+)
+install(
+ DIRECTORY "${_src}/include/"
+ TYPE INCLUDE
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ
+ DIRECTORY_PERMISSIONS OWNER_WRITE GROUP_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE
+ FILES_MATCHING
+ REGEX ".*\.hpp$"
+ REGEX ".*\.ipp$"
+)
+install(
+ FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/asio-config.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/asio-config-version.cmake"
+ DESTINATION "share/cmake/asio/"
+)
+
+#--------------------------------------------------------------------------------#
+# CMake Config
+#--------------------------------------------------------------------------------#
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(
+ "cmake/config.cmake.in"
+ "${PROJECT_NAME}-config.cmake"
+ INSTALL_DESTINATION "share/cmake/asio/"
+)
+write_basic_package_version_file(
+ "${PROJECT_NAME}-config-version.cmake"
+ COMPATIBILITY SameMinorVersion
+ ARCH_INDEPENDENT
+)
+
+# Generate asio-targets.cmake and asio-targets${CMAKE_BUILD_TYPE}.cmake files.
+export(EXPORT ${PROJECT_NAME}-targets
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake"
+ NAMESPACE ${PROJECT_NAME}::
+)
+install(EXPORT ${PROJECT_NAME}-targets
+ DESTINATION "share/cmake/asio/"
+ NAMESPACE ${PROJECT_NAME}::
+)
+
diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in
new file mode 100644
index 0000000000..27eabfaaed
--- /dev/null
+++ b/cmake/config.cmake.in
@@ -0,0 +1,8 @@
+# Copyright (c) 2026 Narta Xaymar Dirks (info at xaymar dot com)
+#
+# Distributed under the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/asio-targets.cmake")