CMake Script

Thanks to Kevin Brightwell, you can drop this CMake Script into your CMake Projects to have Sol part of one of its builds:

CMake Build Script
# Needed for ExternalProject_Add()
include(ExternalProject)

# Needed for building single header for sol2
find_package(PythonInterp 3 REQUIRED)

# Configuration data for What sol2 version to use and where to put it
set(SOL2_TAG v2.5.6)
set(SOL2_HPP "${CMAKE_BINARY_DIR}/include/sol.hpp")

# Download and "install" sol2
ExternalProject_add(
    sol2
    PREFIX ${VENDOR_PATH} # Set this value yourself

    GIT_REPOSITORY "https://github.com/ThePhD/sol2.git"
    GIT_TAG ${SOL2_TAG}

    # No CMake commands to run, so tell CMake not to configure
    CONFIGURE_COMMAND ""

    # Generate the single header and put it in ${SOL2_HPP}
    BINARY_DIR ${VENDOR_PREFIX}/src/sol2
    BUILD_COMMAND
            ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include
        COMMAND
            ${PYTHON_EXECUTABLE} ./single.py -o "${SOL2_HPP}"

    # No install or test command for the library
    INSTALL_COMMAND ""
    TEST_COMMAND "")

# Conditionally turn on SOL_CHECK_ARGUMENTS if using Debug mode
if (CMAKE_BUILD_TYPE MATCHES "[Dd]ebug")
    if (VERBOSE)
        message(STATUS "Turning on SOL_CHECK_ARGUMENTS in Debug mode.")
    endif()
    add_definitions(-DSOL_CHECK_ARGUMENTS)
endif()

# Make sure sol2 is found as a system directory
include_directories(SYSTEM ${CMAKE_BINARY_DIR}/include)