-
Notifications
You must be signed in to change notification settings - Fork 206
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Description of the Core Build System.
A brief explanation of what the Core Build System is for end users.
- Loading branch information
1 parent
9aa3144
commit 21f46f7
Showing
3 changed files
with
70 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
68 changes: 68 additions & 0 deletions
68
doc/org.eclipse.cdt.doc.user/src/getting_started/core_build_system.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
//// | ||
Copyright (c) 2025 Intel corporation and others | ||
This program and the accompanying materials | ||
are made available under the terms of the Eclipse Public License 2.0 | ||
which accompanies this distribution, and is available at | ||
https://www.eclipse.org/legal/epl-2.0/ | ||
|
||
SPDX-License-Identifier: EPL-2.0 | ||
//// | ||
|
||
|
||
// support image rendering and table of contents within GitHub | ||
ifdef::env-github[] | ||
:imagesdir: ../../images | ||
:toc: | ||
:toc-placement!: | ||
endif::[] | ||
|
||
// enable support for button, menu and keyboard macros | ||
:experimental: | ||
|
||
= Core Build System | ||
|
||
The Core Build System is the successor of the legacy Managed Build | ||
System. | ||
|
||
The classical Makefile projects are based on the Managed Build System. | ||
Managed Build projects can generate a Makefile based on GUI controlled | ||
build configurations in the project properties. The user can | ||
manage the separate build configurations for Run and Debug. There is a | ||
notion of "active" build configuration, which is the one that gets | ||
built when the build button is pressed. | ||
|
||
The Core Build System is the basis for CMake projects and Core Build | ||
Makefile projects. The CDT LaunchBar plays a central role and is used | ||
for building and launching the program. The philosophy is "Build for | ||
launch". It simplifies the flow a lot. | ||
|
||
These are the main differences compared with the Managed Build System: | ||
|
||
* No build configurations. No build file (Makefile or | ||
CMakeLists.txt) generation. The user writes it by hand. A | ||
"helloworld" example build file can be created for new projects. | ||
* Each new project is created with a launch configuration tied to it. | ||
* Build settings are presented in the launch configuration Build Settings tab. | ||
* The LaunchBar determines Run or Debug mode for building. There is no | ||
concept of an active build configuration as there is in Managed | ||
Build projects. | ||
* Auto discovery. The project's macro definitions and include paths, | ||
needed for indexing, are extracted from the build step. For CMake | ||
projects, data is obtained from the generated JSON file. For Makefile | ||
projects, data is extracted from the build step console output. | ||
* Simpler wizards. Creation of a CMake project is via a simple one page | ||
wizard. Using existing code is simply done by creating a new project | ||
on top of the existing code. It is not necessary to import the project | ||
(menu:File[Import...]). | ||
|
||
Core Build connects CDT projects to industry standard external build | ||
systems like CMake, Makefile, and Meson. The removal of the CDT | ||
specific build configurations allow Core Build projects to be | ||
easily be shared with other IDEs, command-line use, and Continuous | ||
Integration (CI) flows. | ||
|
||
Thanks to the auto discovery, the indexing of the C/C++ code has | ||
improved, because all compilation flags are known per file. This is especially | ||
beneficial for projects that use multiple toolchains in one project. | ||
|
||
icon:arrow-circle-right[] link:pass:[../html/new_cmake_proj.html][Next: Creating a CMake project] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters