23 lines
1.3 KiB
CMake
23 lines
1.3 KiB
CMake
|
# Запись результатов сборки проекта внутрь иерархии каталогов с исходными
|
|||
|
# текстами приводит к засорению файлами формируемыми на этапе сборки, которые
|
|||
|
# затрудняют разработку, поиск в оригинальных файлах и мешают ориентироваться в
|
|||
|
# проекте. При работе с несколькими типами сборки, например, отладка и выпуск,
|
|||
|
# появляется необходимость корректного полного удаления результатов предыдущего
|
|||
|
# варианта.
|
|||
|
|
|||
|
get_filename_component(_source_realpath "${CMAKE_SOURCE_DIR}" REALPATH)
|
|||
|
get_filename_component(_binary_realpath "${CMAKE_BINARY_DIR}" REALPATH)
|
|||
|
get_filename_component(_install_realpath "${CMAKE_INSTALL_PREFIX}" REALPATH)
|
|||
|
|
|||
|
if(_install_realpath STREQUAL _binary_realpath)
|
|||
|
message(FATAL_ERROR "MyxCMake: Cannot install into build directory.")
|
|||
|
endif()
|
|||
|
|
|||
|
if(_install_realpath STREQUAL _source_realpath)
|
|||
|
message(FATAL_ERROR "MyxCMake: Cannot install into source directory.")
|
|||
|
endif()
|
|||
|
|
|||
|
if(_source_realpath STREQUAL _binary_realpath)
|
|||
|
message(FATAL_ERROR "MyxCMake: In-source builds are not allowed.")
|
|||
|
endif()
|