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/InstallRelative.cmake) include(${MYX_CMAKE_LIB_DIR}/macro/CheckEnableCxxCompilerFlag.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}/FetchContentAdd.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}/AddSaprBlock.cmake) include(${MYX_CMAKE_LIB_DIR}/TargetSetup.cmake) include(${MYX_CMAKE_LIB_DIR}/Qt5TargetSetup.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)