# Минимальная версия Cmake cmake_minimum_required(VERSION 3.3) cmake_policy(VERSION 3.0.2..3.7) # Название проекта project(myx VERSION 0.9.0 LANGUAGES C CXX) # Обязательные переменные set(MYX_CMAKE_ORGANIZATION_NAME "ECS5" CACHE STRING "") set(MYX_CMAKE_AUTHOR_NAME "Андрей Астафьев" CACHE STRING "") set(MYX_CMAKE_AUTHOR_EMAIL "dev@246060.ru" CACHE STRING "") set(MYX_CMAKE_DESCRIPTION "Разные функции" CACHE STRING "") if(NOT DEFINED MYXLIB_MASTER_PROJECT) if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) set(MYXLIB_MASTER_PROJECT ON) else() set(MYXLIB_MASTER_PROJECT OFF) endif() endif() find_package(MyxCMake 0.4.4 REQUIRED) #cmlib_set_cxx_standard(11) option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF) # Поиск библиотек с помощью pkgconfig find_package(PkgConfig REQUIRED) # Потоки set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) # Qt5 find_package(Qt5 COMPONENTS Core Network REQUIRED) myx_cmake_generate_private_config_header() # Библиотеки add_subdirectory(src/myx/backports/compiler) add_subdirectory(src/myx/backports/cpp) add_subdirectory(src/myx/backports/qt) add_subdirectory(src/myx/core) add_subdirectory(src/myx/filesystem) add_subdirectory(src/myx/qt) # Цель, используемая только для установки заголовочных файлов без компиляции проекта add_custom_target(myxlib-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=dev -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") # Примеры if(MYXLIB_BUILD_EXAMPLES) add_subdirectory(examples/core) add_subdirectory(examples/filesystem) add_subdirectory(examples/qt) add_custom_target(examples example-core-endian example-filesystem-paths example-qt-tranlators example-qt-posix-signal-watcher) endif() # Документация myx_cmake_doc_doxygen(LATEX YES HTML YES) myx_cmake_doc_breathe()