Skip to content

Commit

Permalink
STYLE: Modifying uncrustify config, and automating
Browse files Browse the repository at this point in the history
  • Loading branch information
jacob-moore22 committed Feb 23, 2024
1 parent 93b2892 commit c650b8a
Show file tree
Hide file tree
Showing 38 changed files with 2,109 additions and 1,205 deletions.
34 changes: 34 additions & 0 deletions docs/formatting/HeaderForSources.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**********************************************************************************************
© 2020. Triad National Security, LLC. All rights reserved.
This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
Department of Energy/National Nuclear Security Administration. All rights in the program are
reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
Security Administration. The Government is granted for itself and others acting on its behalf a
nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
derivative works, distribute copies to the public, perform publicly and display publicly, and
to permit others to do so.
This program is open source under the BSD-3 License.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used
to endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**********************************************************************************************/

30 changes: 27 additions & 3 deletions docs/formatting/uncrustify.cfg
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ indent_func_call_param = true # false/true
# Same as indent_func_call_param, but for function defs
indent_func_def_param = false # false/true

# for function definitions, only if indent_func_def_param is false
# Allows to align params when appropriate and indent them when not
# behave as if it was true if paren position is more than this value
# if paren position is more than the option value
indent_func_def_param_paren_pos_threshold = 6 # unsigned number

# Same as indent_func_call_param, but for function protos
indent_func_proto_param = false # false/true

Expand Down Expand Up @@ -369,18 +375,36 @@ align_var_class_span = 1 # number
align_var_class_thresh = 6 # number

# Whether to align variable definitions in prototypes and functions.
align_func_params = true # true/false
align_func_params = false # true/false

# The span for aligning parameter definitions in function on parameter name.
#
# 0: Don't align (default).
align_func_params_span = 1 # unsigned number


# The threshold for aligning function parameter definitions.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_func_params_thresh = -5 # number

# The span for aligning on '=' in assignments.
#
# 0 = Don't align (default).
align_assign_span = 1 # unsigned number

# The span for aligning function prototypes (0=don't align)
align_func_proto_span = 0 # number

# The threshold for aligning on '=' in assignments.
# Use a negative number for absolute thresholds.
#
# 0 = No limit (default).
align_assign_thresh = 6 # number
align_assign_thresh = 4 # number

# The threshold for aligning variable definitions (0=no limit)
align_var_def_thresh = 4 # number

# Whether to align lines that start with '<<' with previous '<<'.
#
Expand Down Expand Up @@ -440,7 +464,7 @@ cmt_indent_multi = false # false/true

# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
# Will substitute $(filename) with the current file's name.
# cmt_insert_file_header = "../HeaderForSources.txt"
cmt_insert_file_header = "HeaderForSources.txt"

# If a namespace body exceeds the specified number of newlines and doesn't have a comment after
# the close brace, a comment will be added.
Expand Down
76 changes: 76 additions & 0 deletions scripts/uncrustify.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#!/bin/bash -e

# This script must be run from the top level Fierro directory
# This script assumes uncrustify has been installed


uncrustifyConfigDir="docs/formatting"
# Save the directory the user had before calling
startDir=$(pwd)
thisScriptDir=$(dirname "$0")
echo "Start Directory: $startDir"
echo "This Script Directory: $thisScriptDir"
echo "Uncrustify config directory: $uncrustifyConfigDir"

# Get the full path to the config needed by uncrustify
cd $uncrustifyConfigDir
fullUncrustifyDir=$(pwd)
cd $startDir

# Get the source directory
cd src
sourceDir=$(pwd)

# Function to walk through files
treeProcess() {

echo "calling tree in $(pwd)"
# For every file in the directory
for file in *.cpp; do
if [ -f "$file" ]; then
# echo "Using: $(pwd)/$f"
uncrustify -c "$fullUncrustifyDir"/uncrustify.cfg --no-backup "$(pwd)/$file"
fi
done

for file in *.h; do
if [ -f "$file" ]; then
# echo "Using: $(pwd)/$f"
uncrustify -c "$fullUncrustifyDir"/uncrustify.cfg --no-backup "$(pwd)/$file"
fi
done

# For every directory, recurse
for dir in */; do
if [ -d "$dir" ]; then
cd "$dir" || exit
treeProcess
cd ..
fi

done
}


# Uncrustify SGH Solver
echo "Uncrusting: $sourceDir/Parallel-Solvers/Parallel-Explicit/SGH_Solver"
cd "$sourceDir/Parallel-Solvers/Parallel-Explicit/SGH_Solver" || exit
treeProcess

# Uncrustify Topology Optimization
echo "Uncrusting: $sourceDir/Parallel-Solvers/Parallel-Explicit/Topology_Optimization"
cd "$sourceDir/Parallel-Solvers/Parallel-Explicit/Topology_Optimization" || exit
treeProcess

# Uncrustify Eulerian Solver
echo "Uncrusting: $sourceDir/Parallel-Solvers/Parallel-Explicit/Eulerian_Solver"
cd "$sourceDir/Parallel-Solvers/Parallel-Explicit/Eulerian_Solver" || exit
treeProcess

# Uncrustify Dynamic Elastic
echo "Uncrusting: $sourceDir/Parallel-Solvers/Parallel-Explicit/Dynamic_Elastic_Solver"
cd "$sourceDir/Parallel-Solvers/Parallel-Explicit/Dynamic_Elastic_Solver" || exit
treeProcess

exit

Loading

0 comments on commit c650b8a

Please sign in to comment.