mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +02:00
Description of the Core Build System. (#960)
A brief explanation of what the Core Build System is for end users.
This commit is contained in:
parent
9aa3144840
commit
8e157798fe
3 changed files with 79 additions and 2 deletions
|
@ -142,8 +142,7 @@ at any time by right-clicking on the project in the *Project Explorer*
|
||||||
view and clicking Properties.
|
view and clicking Properties.
|
||||||
|
|
||||||
xref:cdt_w_newcpp.adoc[image:ngnext.gif[Next
|
xref:cdt_w_newcpp.adoc[image:ngnext.gif[Next
|
||||||
Icon,width=16,height=16]] xref:cdt_w_newcpp.adoc[*Next: Creating your {cpp}
|
Icon,width=16,height=16]] xref:core_build_system.adoc[*Next: Core Build System*]
|
||||||
file*]
|
|
||||||
|
|
||||||
For more information about:
|
For more information about:
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
////
|
||||||
|
Copyright (c) 2000, 2025 Contributors to the Eclipse Foundation
|
||||||
|
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
|
||||||
|
////
|
||||||
|
|
||||||
|
// pull in shared headers, footers, etc
|
||||||
|
:docinfo: shared
|
||||||
|
|
||||||
|
// 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:
|
||||||
|
|
||||||
|
// Until ENDOFHEADER the content must match adoc-headers.txt for consistency,
|
||||||
|
// this is checked by the build in do_generate_asciidoc.sh, which also ensures
|
||||||
|
// that the checked in html is up to date.
|
||||||
|
// do_generate_asciidoc.sh can also be used to apply this header to all the
|
||||||
|
// adoc files.
|
||||||
|
// ENDOFHEADER
|
||||||
|
|
||||||
|
= 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]
|
|
@ -4,6 +4,7 @@
|
||||||
<topic label="Preparing the Workbench" href="getting_started/cdt_w_prepare_workbench.htm"/>
|
<topic label="Preparing the Workbench" href="getting_started/cdt_w_prepare_workbench.htm"/>
|
||||||
<topic label="Creating a simple application" href="getting_started/cdt_w_basic.htm"/>
|
<topic label="Creating a simple application" href="getting_started/cdt_w_basic.htm"/>
|
||||||
<topic label="Creating a Makefile project" href="getting_started/cdt_w_newproj.htm"/>
|
<topic label="Creating a Makefile project" href="getting_started/cdt_w_newproj.htm"/>
|
||||||
|
<topic label="Core Build System" href="getting_started/core_build_system.htm"/>
|
||||||
<topic label="Creating a CMake project" href="getting_started/new_cmake_proj.htm"/>
|
<topic label="Creating a CMake project" href="getting_started/new_cmake_proj.htm"/>
|
||||||
<topic label="Importing an existing project" href="getting_started/cdt_w_import.htm"/>
|
<topic label="Importing an existing project" href="getting_started/cdt_w_import.htm"/>
|
||||||
<topic href="getting_started/cdt_w_newcpp.htm" label="Creating a C++ file"/>
|
<topic href="getting_started/cdt_w_newcpp.htm" label="Creating a C++ file"/>
|
||||||
|
|
Loading…
Add table
Reference in a new issue