mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-09 18:56:02 +02:00

Some projects build some of their bin includes with maven
build, so remove the error in those cases.
fixup for 6eaaf714cc
126 lines
6.8 KiB
Bash
Executable file
126 lines
6.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
|
|
|
|
|
|
##
|
|
# 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
|
|
if echo $i | grep -E '\.docs?[/\.]' > /dev/null; then
|
|
# Docs plug-ins have an index/ directory created at build time
|
|
sed -i \
|
|
'-es@compilers.p.build.bin.includes=0@compilers.p.build.bin.includes=1@' \
|
|
$d/.settings/org.eclipse.pde.prefs
|
|
fi
|
|
if echo $i | grep -E 'org.eclipse.remote.proxy.server' > /dev/null; then
|
|
# Proxy server has a tar file created at build time
|
|
sed -i \
|
|
'-es@compilers.p.build.bin.includes=0@compilers.p.build.bin.includes=1@' \
|
|
$d/.settings/org.eclipse.pde.prefs
|
|
fi
|
|
if echo $i | grep 'org.eclipse.tm.terminal.view.ui' > /dev/null; then
|
|
# Special case, see comment in org.eclipse.tm.terminal.view.ui/plugin.xml
|
|
sed -i \
|
|
'-es@compilers.p.unknown-identifier=0@compilers.p.unknown-identifier=1@' \
|
|
$d/.settings/org.eclipse.pde.prefs
|
|
fi
|
|
else
|
|
rm -f $d/.settings/org.eclipse.pde*.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 && ! echo $i | grep -E 'org.eclipse.cdt.lsp.cquery' > /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
|
|
|