#!/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 -DuseSimrelRepo -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