Исходники проекта
This commit is contained in:
		@@ -5,21 +5,28 @@ cmake_minimum_required(VERSION 3.3)
 | 
			
		||||
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
 | 
			
		||||
###
 | 
			
		||||
# Название организации
 | 
			
		||||
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
 | 
			
		||||
		Reference in New Issue
	
	Block a user