mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00

Added a new C/C++ formatter profile called "Unmanaged profile 'CDT'" (name stolen from the Java formatter) that is basically K&R with the tweak of maxium line width set to 120 (same width as for .java files). Added enforcement of the formatter during build. libspawner.so/jnilib have differences because the re-formatting changes line numbers and therefore the __LINE__ macro expands to a different value. Change-Id: Id3a0619cb31640c7817dc684c72139f90cab0fc6 Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
126 lines
6.5 KiB
Bash
Executable file
126 lines
6.5 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
|
|
|
|
|
|
##
|
|
# This script is reused by other projects, if so, COREPROJECT should be set
|
|
# to the project to use a basis for project settings
|
|
##
|
|
: ${COREPROJECT:=core/org.eclipse.cdt.core}
|
|
|
|
##
|
|
# Setup Eclipse Core Preferences
|
|
##
|
|
git ls-files -- \*\*/.project | while read i ; do
|
|
d=`dirname $i`;
|
|
mkdir -p $d/.settings
|
|
if ! test -e $d/.settings/org.eclipse.core.resources.prefs; then
|
|
echo 'eclipse.preferences.version=1' > $d/.settings/org.eclipse.core.resources.prefs
|
|
echo 'encoding/<project>=UTF-8' >> $d/.settings/org.eclipse.core.resources.prefs
|
|
fi
|
|
if ! grep 'encoding/<project>=UTF-8' $d/.settings/org.eclipse.core.resources.prefs > /dev/null; then
|
|
echo 'encoding/<project>=UTF-8' >> $d/.settings/org.eclipse.core.resources.prefs
|
|
fi
|
|
if ! grep 'eclipse.preferences.version=1' $d/.settings/org.eclipse.core.resources.prefs > /dev/null; then
|
|
echo 'eclipse.preferences.version=1' >> $d/.settings/org.eclipse.core.resources.prefs
|
|
fi
|
|
done
|
|
|
|
##
|
|
# Copy JDT/PDE preferences
|
|
##
|
|
git ls-files -- \*\*/.project ":!$COREPROJECT/.project" | while read i ; do
|
|
d=`dirname $i`;
|
|
natures=$(xmllint --xpath 'string(//projectDescription/natures)' $i)
|
|
mkdir -p $d/.settings
|
|
|
|
# JDT
|
|
if [[ $natures == *"org.eclipse.jdt.core.javanature"* ]]; then
|
|
cp $COREPROJECT/.settings/org.eclipse.jdt.* $d/.settings
|
|
# For test plug-ins we are more lenient so don't warn on some items
|
|
if echo $i | grep -E '\.tests?[/\.]' > /dev/null; then
|
|
sed -i \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.discouragedReference=warning@org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.deprecation=warning@org.eclipse.jdt.core.compiler.problem.deprecation=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.discouragedReference=warning@org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.emptyStatement=warning@org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.fieldHiding=warning@org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning@org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.forbiddenReference=error@org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning@org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.unusedLocal=warning@org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning@org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning@org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning@org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore@' \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning@org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore@' \
|
|
$d/.settings/org.eclipse.jdt.core.prefs
|
|
fi
|
|
if echo $i | grep 'org.eclipse.cdt.examples.dsf' > /dev/null; then
|
|
sed -i \
|
|
'-es@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore@' \
|
|
$d/.settings/org.eclipse.jdt.core.prefs
|
|
fi
|
|
else
|
|
rm -f $d/.settings/org.eclipse.jdt*.prefs
|
|
fi
|
|
|
|
# PDE
|
|
if [[ $natures == *"org.eclipse.pde.PluginNature"* ]]; then
|
|
cp $COREPROJECT/.settings/org.eclipse.pde.prefs $d/.settings
|
|
cp $COREPROJECT/.settings/org.eclipse.pde.api.tools.prefs $d/.settings
|
|
if echo $i | grep -E '\.tests?[/\.]' > /dev/null; then
|
|
sed -i \
|
|
'-es@compilers.p.not-externalized-att=1@compilers.p.not-externalized-att=2@' \
|
|
$d/.settings/org.eclipse.pde.prefs
|
|
fi
|
|
else
|
|
rm -f $d/.settings/org.eclipse.pde*.prefs
|
|
fi
|
|
|
|
# CDT (native code)
|
|
if [[ $natures == *"org.eclipse.cdt.core.cnature"* ]]; then
|
|
cp $COREPROJECT/.settings/org.eclipse.cdt.*.prefs $d/.settings
|
|
if echo $i | grep -E '\.tests?[/\.]' > /dev/null; then
|
|
# Disable indexer for test plugins
|
|
sed -i '
|
|
/^eclipse.preferences.version/ {
|
|
p # Print line
|
|
i indexer/indexerId=org.eclipse.cdt.core.nullindexer
|
|
i indexerId=org.eclipse.cdt.core.nullindexer
|
|
i instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
|
d # Already printed
|
|
}' $d/.settings/org.eclipse.cdt.core.prefs
|
|
fi
|
|
else
|
|
rm -f $d/.settings/org.eclipse.cdt.*.prefs
|
|
fi
|
|
done
|
|
|
|
##
|
|
# Verify API Tooling is enabled for all non-test/example bundles
|
|
##
|
|
git ls-files -- \*\*/.project | while read i ; do
|
|
d=`dirname $i`;
|
|
natures=$(xmllint --xpath 'string(//projectDescription/natures)' $i)
|
|
if [[ $natures == *"org.eclipse.pde.PluginNature"* ]] && [[ $natures == *"org.eclipse.jdt.core.javanature"* ]]; then
|
|
if [[ $natures != *"org.eclipse.pde.api.tools.apiAnalysisNature"* ]]; then
|
|
if ! echo $i | grep -E '\.tests?[/\.]' > /dev/null && ! echo $i | grep -E '\.examples?[/\.]' > /dev/null; then
|
|
echo "$d is missing API Tools Nature - Turn it on in Eclipse by 1) Right-click project 2) Plug-in tools -> API Tools Setup"
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|