Исходники проекта
This commit is contained in:
parent
0715861184
commit
ed9ede7e9e
@ -5,21 +5,28 @@ cmake_minimum_required(VERSION 3.3)
|
|||||||
cmake_policy(VERSION 3.0.2..3.7)
|
cmake_policy(VERSION 3.0.2..3.7)
|
||||||
|
|
||||||
# Название и версия проекта и используемые языки программирования
|
# Название и версия проекта и используемые языки программирования
|
||||||
project(FIXME VERSION 0.2.0 LANGUAGES C CXX)
|
project(myx-cmake-example-features VERSION 0.2.0 LANGUAGES CXX)
|
||||||
|
|
||||||
###
|
###
|
||||||
# Обязательные переменные для MyxCMake
|
# Обязательные переменные для MyxCMake
|
||||||
###
|
###
|
||||||
# Название организации
|
# Название организации
|
||||||
set(MYX_CMAKE_ORGANIZATION_NAME "FIXME" CACHE STRING "")
|
set(MYX_CMAKE_ORGANIZATION_NAME "Org." CACHE STRING "")
|
||||||
|
|
||||||
# Имя автора
|
# Имя автора
|
||||||
set(MYX_CMAKE_AUTHOR_NAME "FIXME" CACHE STRING "")
|
set(MYX_CMAKE_AUTHOR_NAME "John Doe" CACHE STRING "")
|
||||||
|
|
||||||
# Почта автора
|
# Почта автора
|
||||||
set(MYX_CMAKE_AUTHOR_EMAIL "FIXME" CACHE STRING "")
|
set(MYX_CMAKE_AUTHOR_EMAIL "mail@johndoe.com" CACHE STRING "")
|
||||||
|
|
||||||
# Краткое описание проекта
|
# Краткое описание проекта
|
||||||
set(MYX_CMAKE_DESCRIPTION "FIXME" CACHE STRING "")
|
set(MYX_CMAKE_DESCRIPTION "Пример проекта: разные возможности" CACHE STRING "")
|
||||||
|
|
||||||
|
find_package(MyxCMake 0.3.7 REQUIRED)
|
||||||
|
|
||||||
|
# Qt5
|
||||||
|
find_package(Qt5 COMPONENTS Core REQUIRED)
|
||||||
|
|
||||||
|
# Приложение
|
||||||
|
add_subdirectory(src/myx-cmake-example-features)
|
||||||
|
|
||||||
find_package(MyxCMake 0.3.2 REQUIRED)
|
|
||||||
|
32
src/myx-cmake-example-features/CMakeLists.txt
Normal file
32
src/myx-cmake-example-features/CMakeLists.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# Название основной цели и имени программы в текущем каталоге
|
||||||
|
set(TRGT myx-cmake-example-features)
|
||||||
|
|
||||||
|
# Список файлов исходных текстов
|
||||||
|
set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
|
||||||
|
|
||||||
|
# Заголовочные файлы, для которых необходима обработка препроцессором moc
|
||||||
|
# (содержат класс, унаследованный от QObject, использующий сигналы и/или слоты)
|
||||||
|
set(TRGT_moc_hpp ${CMAKE_CURRENT_SOURCE_DIR}/processor.hpp)
|
||||||
|
|
||||||
|
# Заголовочные файлы
|
||||||
|
set(TRGT_hpp)
|
||||||
|
|
||||||
|
set(TRGT_headers ${TRGT_hpp} ${TRGT_moc_hpp})
|
||||||
|
|
||||||
|
# Правило для автоматической генерации препроцессором moc
|
||||||
|
qt5_wrap_cpp(TRGT_moc_cpp ${TRGT_moc_hpp})
|
||||||
|
|
||||||
|
# Функция для создания цели, результатом которой будет сборка приложения
|
||||||
|
add_executable(${TRGT} ${TRGT_cpp} ${TRGT_headers} ${TRGT_moc_cpp})
|
||||||
|
myx_cmake_common_target_properties(${TRGT})
|
||||||
|
|
||||||
|
# Qt5: подключение заголовочных файлов
|
||||||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# Qt5: подключение библиотек
|
||||||
|
target_link_libraries(${TRGT} Qt5::Core)
|
||||||
|
|
||||||
|
# Дополнительные функции для цели ${TRGT}.
|
||||||
|
# Вызов обязательно после всех функций target_link_libraries
|
||||||
|
myx_cmake_common_target_properties_post_link(${TRGT})
|
||||||
|
|
50
src/myx-cmake-example-features/main.cpp
Normal file
50
src/myx-cmake-example-features/main.cpp
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#include "processor.hpp"
|
||||||
|
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
int qStringToInt( const QString s )
|
||||||
|
{
|
||||||
|
return( s.toInt() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main( int argc, char** argv )
|
||||||
|
{
|
||||||
|
QCoreApplication app( argc, argv );
|
||||||
|
|
||||||
|
// qt-keywords
|
||||||
|
QList< int > il;
|
||||||
|
il << 111 << 222;
|
||||||
|
Q_FOREACH ( int i, il )
|
||||||
|
{
|
||||||
|
qDebug() << i;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList sl;
|
||||||
|
sl << "111" << "222";
|
||||||
|
for ( auto s: sl )
|
||||||
|
{
|
||||||
|
qDebug() << s;
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( auto s: qAsConst( sl ) )
|
||||||
|
{
|
||||||
|
s.append( "0" );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString s { QStringLiteral( "100" ) };
|
||||||
|
auto ir = qStringToInt( s );
|
||||||
|
|
||||||
|
QFile f;
|
||||||
|
Processor p;
|
||||||
|
QObject::connect( &app, SIGNAL(aboutToQuit()), &p, SLOT(process()));
|
||||||
|
QTimer::singleShot( 100, &app, SLOT(quit()));
|
||||||
|
|
||||||
|
int arr[3];
|
||||||
|
qCritical() << arr[2];
|
||||||
|
|
||||||
|
return( QCoreApplication::exec() );
|
||||||
|
} // main
|
16
src/myx-cmake-example-features/processor.hpp
Normal file
16
src/myx-cmake-example-features/processor.hpp
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#ifndef PROCESSOR_HPP_
|
||||||
|
#define PROCESSOR_HPP_
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
class Processor : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
Q_SLOT void process() { qCritical() << "about to close"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user