CMake - Usual Build System
The code is mostly fine, however there are some problems:
SET(BOOST_ROOT &quot;C:/Program Files (x86)/boost/boost_1_74_0&quot;)

^ This is wrong, because other developers may have Boost installed into different directory. Remove this line and let the user set BOOST_ROOT during configuration.
include_directories(${BOOST_ROOT})
include_directories(${BOOST_ROOT}/stage/lib)

^ Why is this required? The later find_package(Boost ...) call should set all required directories for you, which you can use in include_directories. This actually shouldn't be required at all, because linking to Boost using target_link_libraries should also set correct include directories.
add_executable(Odin ...
)

add_library(Engine ...
)

^ This looks wrong. First, you can remove code duplication by placing source files list into a variable:
set(SRCS ...
)

add_executable(Odin ${SRCS})
add_library(Engine ${SRCS})

Second, it looks strange that both library and executable consist of same source files. You probably want to keep most files being a part of the library and then link the library to executable. This is achieved by the same target_link_libraries command.
set(CMAKE_MODULE_PATH &quot;${doctest_SOURCE_DIR}/scripts/cmake&quot;
        ${CMAKE_MODULE_PATH})

^ Use list(APPEND ...), just like you did earlier in the code.