Difference between revisions of "Using CMake build system"

From Qt Wiki
Jump to: navigation, search
(Convert ExpressionEngine links)
(Convert ExpressionEngine section headers)
Line 1: Line 1:
 
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
 
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
  
h1. CMake
+
= CMake =
 
 
 
CMake - the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.
 
CMake - the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.
  
Line 19: Line 18:
 
As you can see, this project consists from 4 files. Three of them is implementing MainWindow class and one is main.cpp file.
 
As you can see, this project consists from 4 files. Three of them is implementing MainWindow class and one is main.cpp file.
  
h5. CMakeLists.txt for same project
+
===== CMakeLists.txt for same project =====
 
 
 
<code>cmake_minimum_required(VERSION 2.6)
 
<code>cmake_minimum_required(VERSION 2.6)
 
project ( PROJECT_NAME )
 
project ( PROJECT_NAME )

Revision as of 16:35, 5 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

CMake

CMake - the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.

You can use it instead qmake, native Qt buid system. In this article i describe base functionality, that usualy used to build simple project.

===== qmake typical .pro file

TEMPLATE = app
SOURCES ''= main.cpp  mainwindow.cpp
HEADERS''= mainwindow.h
FORMS ''= mainwindow.ui
RESOURCES''= main.qrc

As you can see, this project consists from 4 files. Three of them is implementing MainWindow class and one is main.cpp file.

CMakeLists.txt for same project
cmake_minimum_required(VERSION 2.6)
project ( PROJECT_NAME )

# declaring files in your project

set ( SOURCES
 main.cpp
 mainwindow.cpp
)

set ( MOC_HEADERS
 mainwindow.h
)

set ( UIS
 mainwindow.ui
)

set ( RESOURCES
 main.qrc
)

# Next lines needed for building all Qt projects
find_package( Qt4 REQUIRED )
include( ${QT_USE_FILE} )
add_definitions( ${QT_DEFINITIONS} )
include_directories( ${CMAKE_BINARY_DIR} )


# Next, using precompiler, compiler and linker

# using Qt meta-system (precompiler)
QT4_ADD_RESOURCES( RES_SOURCES ${RESOURCES} )
QT4_WRAP_UI( UI_HEADERS ${UIS} )
QT4_WRAP_CPP( MOC_SRCS ${MOC_HEADERS} )

# compile
add_executable( PROJECT_NAME ${SOURCES} ${MOC_SRCS} ${RES_SOURCES} ${UI_HEADERS} )
# or use line below instead, if you using Windows ™ Operating System.
#add_executable( PROJECT_NAME WIN32 ${SOURCES} ${MOC_SRCS} ${RES_SOURCES} ${UI_HEADERS} )

# build it (link libraries)
target_link_libraries( PROJECT_NAME ${QT_LIBRARIES} )

You may use CMake, but most of people advice, not to use CMake for simple projects, because qmake build system functionality is more than enough for simple projects.

h2. Project using CMake KDE SC

  • Second Life =====

== Links