1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 00:45:28 +02:00
Commit graph

20 commits

Author SHA1 Message Date
Torbjörn Svensson
2a669100f0 Bug 577263: CommandGenerator not respected for option value type libs
Contributed by STMicroelectronics

Change-Id: I2c332eb40b6b69aff405c2c7c86cdcd4acaf5d19
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
Also-By: Erik Hentschke <erik.hentschke@bachmann.info>
Also-By: John Dallaway <john@dallaway.org.uk>
2022-05-04 12:45:27 -04:00
Christian Walther
3afae27158 Bug 575702: Nondeterministic makefile ordering
Several parts of makefile output were generated by iterating over
HashMaps, which do not have a deterministic iteration order. Use
TreeMaps instead to output in sorted order. This is possible now that
the API function with return type HashMap is no longer public API and
can be changed to return Map instead.

Benchmark files for affected tests are updated to the new ordering.
This would not be strictly necessary: the tests would also succeed
without, since org.eclipse.cdt.managedbuilder.testplugin.
ManagedBuildTestHelper.compareMakefiles() uses a reordering-tolerant
comparison. However, recording the new (now hopefully stable) order
makes future development on makefile generation easier by avoiding
spurious diff output when tests fail due to changes to other parts of
makefiles.

Change-Id: I20f2e51bd5b9e3bcc5da245d781ca5b4a34fc0b2
Signed-off-by: Christian Walther <walther@indel.ch>
2021-11-02 10:47:17 +01:00
Torbjörn Svensson
15c29ebf2c Bug 505882: Generate clean target per subdir.mk
To avoid errors like "Command line too long" when removing build
artifacts, split the clean command on multiple lines. In order to
properly handle whitespace etc, generate a new clean target in each
subdir.mk with the explicit list of files to remove in that directory.
The command should be splited on a sane length, 6000 is used in the
internal builder, so reuse that limit here.

Contributed by STMicroelectronics

Change-Id: I843e1ac896076d279173c421210b72f4a325296f
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2021-10-20 13:56:36 -04:00
Christian Walther
ce521345e0 Bug 574741: Always add main-build to .PHONY.
Addendum to 0436516 (Bug 573502): The main-build target now always
exists, not just when there is a pre-build step, so it must always be
marked as .PHONY.

Change-Id: I478222bcc319c516a6e116f710d8382346b5ded5
Signed-off-by: Christian Walther <walther@indel.ch>
2021-07-08 16:11:59 +02:00
Torbjörn Svensson
043651694a Bug 573502: Ensure post-build step is executed last
The post-build step may depend on secondary artifacts of the build and
should thus be executed last.

Contributed by STMicroelectronics

Change-Id: Iaf67f6b3e1fcab008798d2712e15d0a6a46ceae8
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2021-05-14 18:35:54 -04:00
Torbjörn SVENSSON
c809bde381 Bug 571384: Rebuild required files when configuration has changed
A change of build configuration should rebuild the artifact.
With make, this is achieved by depending on the makefile that contains
the rule to build the artifact. If the flags change, so will the
makefile do and the artifact is rebuilt.

Contributed by STMicroelectronics

Change-Id: I56e0376ff9bfa5629b55c1b6c9f94a6f930e0d69
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
2021-02-22 14:53:52 -05:00
Torbjörn SVENSSON
b063af68ad Bug 571405: Generate rules with -MT"$@"
When there is a linked file in the project, the build target for the
content in the .d file should be the .o file as that is what is
depending on the source file.

Use "$@" rather than "$(@)" as it's the usual syntax for single letter
variables in make.

Contributed by STMicroelectronics

Change-Id: I6b024b2b3a1a8b061740e99de5e96923981c92fa
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
2021-02-22 14:35:58 -05:00
Torbjörn SVENSSON
07d8edaf28 Bug 571381: Generate BUILD_ARTIFACT* symbols in makefile
The symbols generated are:
* BUILD_ARTIFACT_NAME
  Value of "Artifact name" field defined in the build configuration
* BUILD_ARTIFACT_EXTENSION
  Value of "Artifact extension" field defined in the build configuration
* BUILD_ARTIFACT_PREFIX
  Value of "Output prefix" field defined in the build configuration
* BUILD_ARTIFACT
  Assembly of the other values to build the target file name

The above symbols make it easier to extend the generated makefile using
the provided makefile hooks "makefile.init", "makefile.defs" and
"makefile.targets". There is no longer need to duplicate the name of
the target artifact in the hooks files.
The hooks can for example be used when the post-build step is not
flexible enough. By placing the post-build step in makefile.targets,
when done properly, will let the user have full control over the
sequence, including parallelism, for the required steps.

Contributed by STMicroelectronics

Change-Id: I163917837b65cb397eb5943c4357a54e9576cf42
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
2021-02-20 15:22:22 +01:00
Torbjörn Svensson
e632011f2c Bug 568728: Drop execute permission on files
Add enforecment script that verifies that only specified file types are
allowed to be mared as executable.

Change-Id: I4b40e3a46b03bfc78a9dcd52e8bf29cb079b7f3b
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-11-18 17:38:22 +01:00
Jonah Graham
7f8440b6b2 Bug 516813: don't mark all targets as secondary
Change-Id: I9da30b0504f1f89e927b9f735fc98a09bfea08b5
2017-05-17 14:34:09 +01:00
ocagdas
6ab4145c56 Bug 468417
The '.d' files that are generated by CDT, contain 'file_name.d:
file_name.cpp file_name.h' type of target prerequisite relations. 

However, to get benefit of the dependency mechanism, this should be
something like 'file_name.o: file_name.cpp file_name.h'.

Therefore, we need to change ''options[3] = "-MT\"$(@:%.o=%.d)\"";'' as
'options[3] = "-MT\"$(@)\"";'

Also update the test cases.

Change-Id: Iee829a8564e1b134905ee06a8a4b76a1e3b30ecc
Signed-off-by: ocagdas <ocagdas@yahoo.com>
2015-06-24 21:54:00 -04:00
Marc Khouzam
79ff9f136c Change output to fix failing tests.
The cause of the different output is a change in o.e.core.resources
where the order of visiting a project has changed to become
alphabetical.  See 
http://eclip.se/461838

Therefore, our benchmark files must also have the output of
subdirectories in alphabetical order.

Change-Id: I3331649cf516adbe3b453b11f1ed6733a007ce4d
2015-05-08 09:04:37 -04:00
Andrew Gvozdev
6bbc31c7a2 bug 312835: CDT build settings which are set at the folder level are
ignored in certain situations - restored reverse sorting plus
unit tests adjusted
2011-07-02 02:25:38 -04:00
Andrew Gvozdev
c1d17327f3 bug 232373: cdt generated make file has options with no spaces between option and argument 2010-10-24 04:06:38 +00:00
Andrew Gvozdev
f2b3b42052 bug 294135: JUnit failures related to files with spaces in managedbuilder test suite
Fixed regression bug and updated benchmarks.
2009-11-04 23:00:48 +00:00
Andrew Gvozdev
2321c8338a bug 212596: JUnit failures in cdt.managedbuilder.test.suite
Added missing empty lines to benchmarks to turn down noise on the console
2009-11-03 23:31:50 +00:00
Andrew Gvozdev
07339a8260 bug 212596: JUnit failures in cdt.managedbuilder.test.suite
Benchmarks/ moved out of archive
2009-10-10 15:58:17 +00:00
Andrew Gvozdev
614148c280 bug 212596: JUnit failures in cdt.managedbuilder.test.suite
Setting benchmarks to pass with 6.0.0 release.
2009-08-01 01:00:58 +00:00
Leo Treggiari
8fb351caba Test makefile benchmark changes to match changes in makefile generation for double quotes and Echo. 2006-04-28 13:30:12 +00:00
Leo Treggiari
61c6b0788f Add tests for new default dependency calculators 2006-02-27 17:57:02 +00:00