80 lines
3.4 KiB
CMake
80 lines
3.4 KiB
CMake
cmake_policy(PUSH)
|
||
cmake_policy(SET CMP0057 NEW) # IN_LIST operator
|
||
|
||
# CMake выполняет проверку системного окружения с помощью модулей,
|
||
# расположенных в следующих каталогах:
|
||
# /usr/share/cmake-${CMAKE_VERSION}/Modules
|
||
# /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/cmake
|
||
# /usr/lib/cmake
|
||
# Если для используемой программы или библиотеки нет стандартного
|
||
# модуля для поиска, то можно использовать собственный.
|
||
# С помощью переменной `CMAKE_MODULE_PATH` указывается перечень
|
||
# дополнительных каталогов, в которых производится поиск модулей.
|
||
set(MYX_CMAKE_FIND_DIR "${PROJECT_SOURCE_DIR}/cmake/find")
|
||
if(IS_DIRECTORY "${MYX_CMAKE_FIND_DIR}")
|
||
if(NOT ${MYX_CMAKE_FIND_DIR} IN_LIST CMAKE_MODULE_PATH)
|
||
list(INSERT CMAKE_MODULE_PATH 0 "${MYX_CMAKE_FIND_DIR}")
|
||
endif()
|
||
endif()
|
||
|
||
get_filename_component(MYX_CMAKE_SOURCE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
|
||
|
||
set(MYX_CMAKE_BACKPORTS_DIR "${MYX_CMAKE_SOURCE_DIR}/backports")
|
||
set(MYX_CMAKE_LIB_DIR "${MYX_CMAKE_SOURCE_DIR}/lib")
|
||
|
||
# Модули для обеспечения обратной совместимости со старыми версиями CMake
|
||
include(${MYX_CMAKE_BACKPORTS_DIR}/IncludeGuard.cmake)
|
||
include(${MYX_CMAKE_BACKPORTS_DIR}/TopLevelProject.cmake)
|
||
if(${CMAKE_VERSION} VERSION_LESS "3.11.0")
|
||
include(${MYX_CMAKE_BACKPORTS_DIR}/FetchContent.cmake)
|
||
else()
|
||
include(FetchContent)
|
||
endif()
|
||
|
||
# Загрузка стандартных модулей
|
||
include(GNUInstallDirs)
|
||
include(CMakeDependentOption)
|
||
|
||
# Полезные макросы
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/CreateSymlink.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/FindPackages.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/FindQt.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/InstallRelative.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/CheckEnableCxxCompilerFlag.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/GTest.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/macro/QTest.cmake)
|
||
|
||
include(${MYX_CMAKE_LIB_DIR}/ColoredMessages.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/PopulateCMakeBinaryDir.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/CurrentDate.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/NinjaGeneratorWarning.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/DirectoriesGuards.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/SemanticProjectVersion.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/NinjaGeneratorWrapper.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/DownloadContent.cmake)
|
||
|
||
set(MYX_CMAKE_TOOLCHAINS_DIR "${MYX_CMAKE_LIB_DIR}/toolchains")
|
||
include(${MYX_CMAKE_LIB_DIR}/Toolchains.cmake)
|
||
unset(MYX_CMAKE_TOOLCHAINS_DIR)
|
||
|
||
include(${MYX_CMAKE_LIB_DIR}/AddExecutable.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/AddInterfaceLibrary.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/AddObjectLibrary.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/TargetSetup.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/TargetSetupQt.cmake)
|
||
|
||
include(${MYX_CMAKE_LIB_DIR}/uncrustify/Uncrustify.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/doc/Doxygen.cmake)
|
||
|
||
include(${MYX_CMAKE_LIB_DIR}/generators/PrivateConfigHeader.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/generators/GitInfoHeader.cmake)
|
||
|
||
include(${MYX_CMAKE_LIB_DIR}/CreatePackages.cmake)
|
||
include(${MYX_CMAKE_LIB_DIR}/Uninstall.cmake)
|
||
|
||
unset(MYX_CMAKE_SOURCE_DIR)
|
||
unset(MYX_CMAKE_BACKPORTS_DIR)
|
||
unset(MYX_CMAKE_LIB_DIR)
|
||
|
||
cmake_policy(POP)
|