myxlib/CMakeLists.txt

62 lines
2.0 KiB
CMake
Raw Normal View History

2019-10-02 10:47:26 +00:00
# Минимальная версия Cmake
cmake_minimum_required(VERSION 3.3)
cmake_policy(VERSION 3.0.2..3.7)
# Название проекта
project(myx VERSION 0.9.0 LANGUAGES C CXX)
2019-10-02 10:47:26 +00:00
2021-06-08 16:47:03 +00:00
# Обязательные переменные
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 "")
2019-10-02 10:47:26 +00:00
2020-04-22 07:17:37 +00:00
if(NOT DEFINED MYXLIB_MASTER_PROJECT)
2020-04-22 15:54:40 +00:00
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
2020-04-22 07:17:37 +00:00
set(MYXLIB_MASTER_PROJECT ON)
else()
set(MYXLIB_MASTER_PROJECT OFF)
endif()
endif()
2021-12-24 12:09:46 +00:00
find_package(MyxCMake 0.4.4 REQUIRED)
2019-10-02 10:47:26 +00:00
#cmlib_set_cxx_standard(11)
option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF)
2019-10-02 10:47:26 +00:00
# Поиск библиотек с помощью pkgconfig
find_package(PkgConfig REQUIRED)
2019-10-02 10:47:26 +00:00
# Потоки
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
2019-10-02 10:47:26 +00:00
# Qt5
2020-04-22 15:54:40 +00:00
find_package(Qt5 COMPONENTS Core Network REQUIRED)
2019-10-02 10:47:26 +00:00
myx_cmake_generate_private_config_header()
2019-10-02 10:47:26 +00:00
# Библиотеки
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)
2019-10-02 10:47:26 +00:00
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
add_custom_target(myxlib-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=dev -P
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
2019-10-02 10:47:26 +00:00
# Примеры
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()
2019-10-02 10:47:26 +00:00
# Документация
myx_cmake_doc_doxygen(LATEX YES HTML YES)
myx_cmake_doc_breathe()