Skip to content

Commit 52df7f8

Browse files
committed
Description of the Core Build System.
A brief explanation of what the Core Build System is for end users.
1 parent 1a8b186 commit 52df7f8

File tree

3 files changed

+72
-3
lines changed

3 files changed

+72
-3
lines changed

doc/org.eclipse.cdt.doc.user/getting_started/cdt_w_newproj.htm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@
9999
<p><strong>Tip:</strong> You can view and modify the properties of your
100100
HelloWorld project at any time by right-clicking on the project in the <strong>Project Explorer</strong>
101101
view and clicking Properties.</p> <p><a style="text-decoration: none" href="cdt_w_newcpp.htm"><img
102-
src="../images/ngnext.gif" height="16" width="16" alt="Next Icon"></a> <a href="cdt_w_newcpp.htm"><strong>
103-
Next: Creating your C++ file</strong></a></p> <p>For more information
102+
src="../images/ngnext.gif" height="16" width="16" alt="Next Icon"></a> <a href="../html/core_build_system.html"><strong>
103+
Next: Core Build System</strong></a></p> <p>For more information
104104
about:</p> <ul>
105105
<li>Projects, see <strong>Workbench User Guide > Concepts > Workbench > Resources
106106
</strong></li>
@@ -117,4 +117,4 @@
117117
<p><img src="../images/ng00_04a.gif" ALT="QNX Copyright Statement" ></p>
118118

119119
</div></body>
120-
</html>
120+
</html>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
////
2+
Copyright (c) 2000-2024 QNX Software Systems and others
3+
This program and the accompanying materials
4+
are made available under the terms of the Eclipse Public License 2.0
5+
which accompanies this distribution, and is available at
6+
https://www.eclipse.org/legal/epl-2.0/
7+
8+
SPDX-License-Identifier: EPL-2.0
9+
////
10+
11+
12+
// support image rendering and table of contents within GitHub
13+
ifdef::env-github[]
14+
:imagesdir: ../../images
15+
:toc:
16+
:toc-placement!:
17+
endif::[]
18+
19+
// enable support for button, menu and keyboard macros
20+
:experimental:
21+
22+
= Core Build System
23+
24+
The Core Build System is the successor of the legacy Managed Build
25+
System.
26+
27+
The classical Makefile projects are based on the Managed Build System.
28+
Managed Build projects can generate a Makefile based on GUI controlled
29+
build configurations in the project properties. The user can
30+
manage the separate build configurations for Run and Debug. There is a
31+
notion of "active" build configuration, which is the one that gets
32+
built when the build button is pressed.
33+
34+
The Core Build System is the basis for CMake projects and Core Build
35+
Makefile projects. The CDT LaunchBar plays a central role and is used
36+
for building and launching the program. The philosophy is "Build for
37+
launch". It simplifies the flow a lot.
38+
39+
These are the main differences compared with the Managed Build System:
40+
41+
* No build configurations. No build file (Makefile or
42+
CMakeLists.txt) generation. The user writes it by hand. A
43+
"helloworld" example build file can be created for new projects.
44+
* Each new project is created with a launch configuration tied to it.
45+
* Build settings are presented in the launch configuration Build Settings tab.
46+
* The LaunchBar determines Run or Debug mode for building. There is no
47+
concept of an active build configuration as there is in Managed
48+
Build projects.
49+
* Auto discovery. The project's macro definitions and include paths,
50+
needed for indexing, are extracted from the build step. For CMake
51+
projects, data is obtained from the generated JSON file. For Makefile
52+
projects, data is extracted from the build step console output.
53+
* Simpler wizards. Creation of a CMake project is via a simple one page
54+
wizard. Using existing code is simply done by creating a new project
55+
on top of the existing code. It is not necessary to import the project
56+
(menu:File[Import...]).
57+
58+
Core Build connects CDT projects to industry standard external build
59+
systems like CMake, Makefile, and Meson. The removal of the CDT
60+
specific build configurations allow Core Build projects to be
61+
easily be shared with other IDEs, command-line use, and Continuous
62+
Integration (CI) flows.
63+
64+
Thanks to the auto discovery, the indexing of the C/C++ code has
65+
improved, because all compilation flags are known per file. This is especially
66+
beneficial for projects that use multiple toolchains in one project.
67+
68+
icon:arrow-circle-right[] link:pass:[../html/new_cmake_proj.html][Next: Creating a CMake project]

doc/org.eclipse.cdt.doc.user/topics_Getting_Started.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<topic label="Preparing the Workbench" href="getting_started/cdt_w_prepare_workbench.htm"/>
55
<topic label="Creating a simple application" href="getting_started/cdt_w_basic.htm"/>
66
<topic label="Creating a Makefile project" href="getting_started/cdt_w_newproj.htm"/>
7+
<topic label="Core Build System" href="html/core_build_system.html"/>
78
<topic label="Creating a CMake project" href="html/new_cmake_proj.html"/>
89
<topic label="Importing an existing project" href="getting_started/cdt_w_import.htm"/>
910
<topic href="getting_started/cdt_w_newcpp.htm" label="Creating a C++ file"/>

0 commit comments

Comments
 (0)