1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-04 07:35:24 +02:00
cdt/releng/scripts/do_rebuild_natives.sh
Jonah Graham 8687aec665 [releng] Require target platform bundles as minimum version
Using:

```
mvn org.eclipse.tycho.extras:tycho-version-bump-plugin:4.0.12:update-manifest
```

and then multiple iterations to bump the bundle-version:

```
mvn verify org.eclipse.tycho:tycho-versions-plugin:4.0.12:bump-versions -Dtycho.bump-versions.increment=100 -DskipDoc=true         -DskipTests=true         -P baseline-compare-and-replace -fae -Djgit.dirtyWorkingTree-cdtDefault=warning
```

Make sure bounds of all dependencies match what we built against. This
prevents issues such as Bug 536448 from recurring. In 2025-06 there
are a number of Eclipse Platform changes that make CDT susceptible
to these types of issues again.

Note that this change is similar to previous iterations, such
as 1087dc5f22, but with the automatation
we can now apply this to *all* bundles.

In addition, with the tighter version constraints, building from
simrel repo for the jniheader (releng/scripts/do_rebuild_natives.sh)
is no longer sufficient. This speedup has been removed as it was probably
incorrect to have by default.

The api filters were introduced because some bundles are re-exported. Those
re-exported bundle requirements mean that technically we need to bump
the version, but in reality we effectively required the range as now
documented anyway, so doing a major version bump is unneeded.
2025-05-19 14:28:08 -04:00

52 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
###############################################################################
# Copyright (c) 2018, 2020 Kichwa Coders Ltd 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
###############################################################################
set -e
SCRIPT=$( basename "${BASH_SOURCE[0]}" )
if ! command -v x86_64-apple-darwin21.1-clang &> /dev/null
then
echo "WARNING: Skipping ${SCRIPT} because Darwin clang is not available"
exit 0
fi
##
# Make sure that natives are up to date
##
for p in native/org.eclipse.cdt.native.serial core/org.eclipse.cdt.core.native; do
echo "Rebuilding $p JNI headers to make sure they match source"
logfile=jni-headers-${p//\//-}.log
if ! ${MVN:-mvn} -B -V process-resources -P jniheaders -f $p >${logfile} 2>&1; then
echo "Rebuilding of $p JNI headers failed. The log (${logfile}) is part of the artifacts of the build"
exit 1
fi
# Need to apply format after header files are generated
echo "Applying enforcing formatting rules to $p native source files"
clang-format -i --style=file $(git ls-files $p/native_src/\*\*/\*.{c,cpp,cc,h,hh,hpp})
echo "Rebuilding $p natives to make sure they match source"
logfile=make-natives-${p//\//-}.log
if ! make -C $p/native_src rebuild >${logfile} 2>&1; then
echo "Rebuilding of $p natives failed. The log (${logfile}) is part of the artifacts of the build"
exit 1
fi
done
##
# Mark Windows binaries as executable
##
echo "Marking Windows binaries as executable"
git ls-files -- \*.exe \*.dll | while read line; do
chmod +x "$line"
done