CONFIG: support FOAM_EXTRA_CXXFLAGS (#1256)
- allows custom tuning of compilation parameters
This commit is contained in:
parent
ba3a31af95
commit
ac8b64df46
@ -136,6 +136,11 @@ projectDir="$HOME/OpenFOAM/OpenFOAM-$WM_PROJECT_VERSION"
|
|||||||
# * on a 32-bit OS this option is ignored (always 32-bit)
|
# * on a 32-bit OS this option is ignored (always 32-bit)
|
||||||
#export WM_ARCH_OPTION=64
|
#export WM_ARCH_OPTION=64
|
||||||
|
|
||||||
|
# [FOAM_EXTRA_CXXFLAGS]
|
||||||
|
# Additional compilation flags - do not inherit from the environment.
|
||||||
|
# Set after sourcing or via <prefs.sh> to avoid surprises.
|
||||||
|
unset FOAM_EXTRA_CXXFLAGS
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# NO (NORMAL) USER EDITING BELOW HERE
|
# NO (NORMAL) USER EDITING BELOW HERE
|
||||||
|
|
||||||
|
@ -9,8 +9,7 @@
|
|||||||
# Copyright (C) 2016-2019 OpenCFD Ltd.
|
# Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||||
# <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
#
|
||||||
# File
|
# File
|
||||||
# etc/config.csh/unset
|
# etc/config.csh/unset
|
||||||
@ -46,20 +45,15 @@ endif
|
|||||||
|
|
||||||
unsetenv WM_ARCH
|
unsetenv WM_ARCH
|
||||||
unsetenv WM_ARCH_OPTION
|
unsetenv WM_ARCH_OPTION
|
||||||
unsetenv WM_CC
|
|
||||||
unsetenv WM_CFLAGS
|
|
||||||
unsetenv WM_COMPILER
|
unsetenv WM_COMPILER
|
||||||
unsetenv WM_COMPILER_ARCH
|
unsetenv WM_COMPILER_ARCH
|
||||||
unsetenv WM_COMPILER_TYPE
|
unsetenv WM_COMPILER_TYPE
|
||||||
unsetenv WM_COMPILER_LIB_ARCH
|
unsetenv WM_COMPILER_LIB_ARCH
|
||||||
unsetenv WM_COMPILE_OPTION
|
unsetenv WM_COMPILE_OPTION
|
||||||
unsetenv WM_CXX
|
|
||||||
unsetenv WM_CXXFLAGS
|
|
||||||
unsetenv WM_DIR
|
unsetenv WM_DIR
|
||||||
unsetenv WM_HOSTS
|
unsetenv WM_HOSTS
|
||||||
unsetenv WM_LABEL_OPTION
|
unsetenv WM_LABEL_OPTION
|
||||||
unsetenv WM_LABEL_SIZE
|
unsetenv WM_LABEL_SIZE
|
||||||
unsetenv WM_LDFLAGS
|
|
||||||
unsetenv WM_MPLIB
|
unsetenv WM_MPLIB
|
||||||
unsetenv WM_NCOMPPROCS
|
unsetenv WM_NCOMPPROCS
|
||||||
unsetenv WM_OPTIONS
|
unsetenv WM_OPTIONS
|
||||||
@ -75,6 +69,11 @@ unsetenv WM_PROJECT_VERSION
|
|||||||
unsetenv WM_SCHEDULER
|
unsetenv WM_SCHEDULER
|
||||||
unsetenv WM_THIRD_PARTY_DIR
|
unsetenv WM_THIRD_PARTY_DIR
|
||||||
|
|
||||||
|
# Older variables
|
||||||
|
|
||||||
|
# Before 1906
|
||||||
|
unsetenv WM_CC WM_CXX WM_CFLAGS WM_CXXFLAGS WM_LDFLAGS
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Unset FOAM_* environment variables
|
# Unset FOAM_* environment variables
|
||||||
@ -84,8 +83,9 @@ unsetenv FOAM_APPBIN
|
|||||||
unsetenv FOAM_APP
|
unsetenv FOAM_APP
|
||||||
unsetenv FOAM_CODE_TEMPLATES
|
unsetenv FOAM_CODE_TEMPLATES
|
||||||
unsetenv FOAM_ETC
|
unsetenv FOAM_ETC
|
||||||
|
unsetenv FOAM_EXTRA_CXXFLAGS
|
||||||
|
unsetenv FOAM_EXTRA_LDFLAGS
|
||||||
unsetenv FOAM_EXT_LIBBIN
|
unsetenv FOAM_EXT_LIBBIN
|
||||||
unsetenv FOAM_INST_DIR
|
|
||||||
unsetenv FOAM_JOB_DIR
|
unsetenv FOAM_JOB_DIR
|
||||||
unsetenv FOAM_LIBBIN
|
unsetenv FOAM_LIBBIN
|
||||||
unsetenv FOAM_MPI
|
unsetenv FOAM_MPI
|
||||||
@ -102,6 +102,10 @@ unsetenv FOAM_USER_APPBIN
|
|||||||
unsetenv FOAM_USER_LIBBIN
|
unsetenv FOAM_USER_LIBBIN
|
||||||
unsetenv FOAM_UTILITIES
|
unsetenv FOAM_UTILITIES
|
||||||
|
|
||||||
|
# Old variables
|
||||||
|
|
||||||
|
# Before 1812
|
||||||
|
unsetenv FOAM_INST_DIR
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Unset MPI-related environment variables
|
# Unset MPI-related environment variables
|
||||||
|
@ -6,11 +6,10 @@
|
|||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
# Copyright (C) 2016-2019 OpenCFD Ltd.
|
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||||
# <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
#
|
||||||
# File
|
# File
|
||||||
# etc/config.sh/unset
|
# etc/config.sh/unset
|
||||||
@ -35,19 +34,14 @@ foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
|
|||||||
|
|
||||||
unset WM_ARCH
|
unset WM_ARCH
|
||||||
unset WM_ARCH_OPTION
|
unset WM_ARCH_OPTION
|
||||||
unset WM_CC
|
|
||||||
unset WM_CFLAGS
|
|
||||||
unset WM_COMPILER
|
unset WM_COMPILER
|
||||||
unset WM_COMPILER_TYPE
|
unset WM_COMPILER_TYPE
|
||||||
unset WM_COMPILER_LIB_ARCH
|
unset WM_COMPILER_LIB_ARCH
|
||||||
unset WM_COMPILE_OPTION
|
unset WM_COMPILE_OPTION
|
||||||
unset WM_CXX
|
|
||||||
unset WM_CXXFLAGS
|
|
||||||
unset WM_DIR
|
unset WM_DIR
|
||||||
unset WM_HOSTS
|
unset WM_HOSTS
|
||||||
unset WM_LABEL_OPTION
|
unset WM_LABEL_OPTION
|
||||||
unset WM_LABEL_SIZE
|
unset WM_LABEL_SIZE
|
||||||
unset WM_LDFLAGS
|
|
||||||
unset WM_MPLIB
|
unset WM_MPLIB
|
||||||
unset WM_NCOMPPROCS
|
unset WM_NCOMPPROCS
|
||||||
unset WM_OPTIONS
|
unset WM_OPTIONS
|
||||||
@ -63,6 +57,10 @@ unset WM_PROJECT_VERSION
|
|||||||
unset WM_SCHEDULER
|
unset WM_SCHEDULER
|
||||||
unset WM_THIRD_PARTY_DIR
|
unset WM_THIRD_PARTY_DIR
|
||||||
|
|
||||||
|
# Older variables
|
||||||
|
|
||||||
|
# Before 1906
|
||||||
|
unset WM_CC WM_CXX WM_CFLAGS WM_CXXFLAGS WM_LDFLAGS
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Unset FOAM_* environment variables
|
# Unset FOAM_* environment variables
|
||||||
@ -72,8 +70,9 @@ unset FOAM_APPBIN
|
|||||||
unset FOAM_APP
|
unset FOAM_APP
|
||||||
unset FOAM_CODE_TEMPLATES
|
unset FOAM_CODE_TEMPLATES
|
||||||
unset FOAM_ETC
|
unset FOAM_ETC
|
||||||
|
unset FOAM_EXTRA_CXXFLAGS
|
||||||
|
unset FOAM_EXTRA_LDFLAGS
|
||||||
unset FOAM_EXT_LIBBIN
|
unset FOAM_EXT_LIBBIN
|
||||||
unset FOAM_INST_DIR
|
|
||||||
unset FOAM_JOB_DIR
|
unset FOAM_JOB_DIR
|
||||||
unset FOAM_LIBBIN
|
unset FOAM_LIBBIN
|
||||||
unset FOAM_MPI
|
unset FOAM_MPI
|
||||||
@ -90,6 +89,10 @@ unset FOAM_USER_APPBIN
|
|||||||
unset FOAM_USER_LIBBIN
|
unset FOAM_USER_LIBBIN
|
||||||
unset FOAM_UTILITIES
|
unset FOAM_UTILITIES
|
||||||
|
|
||||||
|
# Old variables
|
||||||
|
|
||||||
|
# Before 1812
|
||||||
|
unset FOAM_INST_DIR
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Unset MPI-related environment variables
|
# Unset MPI-related environment variables
|
||||||
|
@ -138,6 +138,11 @@ set projectDir=`lsof +p $$ |& \
|
|||||||
# * on a 32-bit OS this option is ignored (always 32-bit)
|
# * on a 32-bit OS this option is ignored (always 32-bit)
|
||||||
#setenv WM_ARCH_OPTION 64
|
#setenv WM_ARCH_OPTION 64
|
||||||
|
|
||||||
|
# [FOAM_EXTRA_CXXFLAGS]
|
||||||
|
# Additional compilation flags - do not inherit from the environment.
|
||||||
|
# Set after sourcing or via <prefs.csh> to avoid surprises.
|
||||||
|
unsetenv FOAM_EXTRA_CXXFLAGS
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# NO (NORMAL) USER EDITING BELOW HERE
|
# NO (NORMAL) USER EDITING BELOW HERE
|
||||||
|
|
||||||
|
@ -14,9 +14,12 @@ c++WARN = \
|
|||||||
-Wall -Wextra -Wold-style-cast \
|
-Wall -Wextra -Wold-style-cast \
|
||||||
-Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
|
-Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
|
||||||
-Wno-undefined-var-template \
|
-Wno-undefined-var-template \
|
||||||
-Wno-unknown-warning-option
|
-Wno-unknown-warning-option \
|
||||||
|
$(FOAM_EXTRA_CXXFLAGS)
|
||||||
|
|
||||||
c++LESSWARN = \
|
c++LESSWARN = \
|
||||||
-Wno-old-style-cast -Wno-unused-local-typedefs \
|
-Wno-old-style-cast -Wno-unused-local-typedefs \
|
||||||
-Wno-tautological-undefined-compare -Wno-shift-negative-value \
|
-Wno-tautological-undefined-compare -Wno-shift-negative-value \
|
||||||
-Wno-null-pointer-arithmetic
|
-Wno-null-pointer-arithmetic
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
@ -13,9 +13,12 @@ ptFLAGS = -DNoRepository -ftemplate-depth-100
|
|||||||
c++WARN = \
|
c++WARN = \
|
||||||
-Wall -Wextra -Wold-style-cast \
|
-Wall -Wextra -Wold-style-cast \
|
||||||
-Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
|
-Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
|
||||||
-Wno-attributes -Wno-unknown-pragmas
|
-Wno-attributes -Wno-unknown-pragmas \
|
||||||
|
$(FOAM_EXTRA_CXXFLAGS)
|
||||||
|
|
||||||
c++LESSWARN = \
|
c++LESSWARN = \
|
||||||
-Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds \
|
-Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds \
|
||||||
-Wno-deprecated-declarations \
|
-Wno-deprecated-declarations \
|
||||||
-fpermissive
|
-fpermissive
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
@ -14,7 +14,10 @@ c++WARN = \
|
|||||||
-Wall -Wextra \
|
-Wall -Wextra \
|
||||||
-Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
|
-Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
|
||||||
-Wno-unknown-pragmas \
|
-Wno-unknown-pragmas \
|
||||||
-diag-disable 327,654,1125,1292,2289,2304,11062,11074,11076
|
-diag-disable 327,654,1125,1292,2289,2304,11062,11074,11076 \
|
||||||
|
$(FOAM_EXTRA_CXXFLAGS)
|
||||||
|
|
||||||
c++LESSWARN = \
|
c++LESSWARN = \
|
||||||
-diag-disable 1224,2026,2305
|
-diag-disable 1224,2026,2305
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
@ -10,5 +10,9 @@ ptFLAGS = -DNoRepository
|
|||||||
# - Standard warnings
|
# - Standard warnings
|
||||||
# - Less restrictive warnings (may be needed for flex++, CGAL, etc.)
|
# - Less restrictive warnings (may be needed for flex++, CGAL, etc.)
|
||||||
|
|
||||||
c++WARN =
|
c++WARN = \
|
||||||
|
$(FOAM_EXTRA_CXXFLAGS)
|
||||||
|
|
||||||
c++LESSWARN =
|
c++LESSWARN =
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
51
wmake/wclean
51
wmake/wclean
@ -7,7 +7,7 @@
|
|||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
# Copyright (C) 2017 OpenCFD Ltd.
|
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM.
|
# This file is part of OpenFOAM.
|
||||||
@ -37,37 +37,52 @@
|
|||||||
# lnInclude directories generated for libraries.
|
# lnInclude directories generated for libraries.
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
Script=${0##*/} # Use 'Script' for error messages in wmakeFunctions
|
Script="${0##*/}" # Use 'Script' for error messages in wmakeFunctions
|
||||||
. ${0%/*}/scripts/wmakeFunctions # Source wmake functions
|
. "${0%/*}/scripts/wmakeFunctions" # Source wmake functions
|
||||||
|
|
||||||
usage() {
|
printHelp() {
|
||||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
cat<<HELP_INFO
|
||||||
cat<<USAGE
|
|
||||||
|
|
||||||
Usage: $Script [OPTION] [dir]
|
Usage: $Script [OPTION] [dir]
|
||||||
$Script [OPTION] target [dir [MakeDir]]
|
$Script [OPTION] target [dir [MakeDir]]
|
||||||
options:
|
options:
|
||||||
-a | -all Same as the 'all' target
|
-a | -all All subdirectories, uses Allwclean, Allclean if they exist
|
||||||
-s | -silent Ignored - for compatibility with wmake
|
-s | -silent Ignored - for compatibility with wmake
|
||||||
-help Print the usage
|
-h | -help Display short help and exit
|
||||||
|
-help-full Display full help and exit
|
||||||
|
|
||||||
Clean up the wmake control directory Make/\$WM_OPTIONS and remove the
|
Clean up the wmake control directory Make/\$WM_OPTIONS and remove the
|
||||||
lnInclude directories generated for libraries.
|
lnInclude directories generated for libraries.
|
||||||
|
|
||||||
The targets correspond to a subset of the 'wmake' special targets:
|
HELP_INFO
|
||||||
all All subdirectories, uses any Allwclean or Allclean
|
|
||||||
files if they exist
|
cat<<HELP_TAIL_FULL
|
||||||
|
Special targets:
|
||||||
|
all Same as -all option
|
||||||
exe | lib | libo | libso
|
exe | lib | libo | libso
|
||||||
Clean Make, any *.dep files and lnInclude directories
|
|
||||||
empty Remove empty sub-directories for the requested dir.
|
empty Remove empty sub-directories for the requested dir.
|
||||||
If executed in the main project directory, it will also
|
If executed in the main project directory, it will also
|
||||||
remove deprecated object directories and respective binaries
|
remove deprecated object directories and respective binaries
|
||||||
that refer to no-longer-existing source code.
|
that refer to no-longer-existing source code.
|
||||||
|
|
||||||
USAGE
|
HELP_TAIL_FULL
|
||||||
|
exit 0 # clean exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Report error and exit
|
||||||
|
die()
|
||||||
|
{
|
||||||
|
exec 1>&2
|
||||||
|
echo
|
||||||
|
echo "Error encountered:"
|
||||||
|
while [ "$#" -ge 1 ]; do echo " $1"; shift; done
|
||||||
|
echo
|
||||||
|
echo "See '${0##*/} -help' for usage"
|
||||||
|
echo
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Parse arguments and options
|
# Parse arguments and options
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
@ -78,16 +93,20 @@ MakeDir=Make
|
|||||||
while [ "$#" -gt 0 ]
|
while [ "$#" -gt 0 ]
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-h | -help*)
|
-help-f*) # Full help
|
||||||
usage
|
printHelp -full
|
||||||
|
;;
|
||||||
|
-h | -help*) # Short help
|
||||||
|
printHelp
|
||||||
;;
|
;;
|
||||||
-a | -all | all)
|
-a | -all | all)
|
||||||
targetType=all
|
targetType=all
|
||||||
;;
|
;;
|
||||||
-s | -silent) # Ignored - for compatibility with wmake
|
-s | -silent) # Ignored - for compatibility with wmake
|
||||||
|
export WM_QUIET=true
|
||||||
;;
|
;;
|
||||||
-*)
|
-*)
|
||||||
usage "unknown option: '$1'"
|
die "unknown option: '$1'"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
break
|
break
|
||||||
|
32
wmake/wmake
32
wmake/wmake
@ -7,7 +7,7 @@
|
|||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
# Copyright (C) 2017-2019 OpenCFD Ltd.
|
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM.
|
# This file is part of OpenFOAM.
|
||||||
@ -94,19 +94,22 @@ cat<<HELP_FULL
|
|||||||
HELP_FULL
|
HELP_FULL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat<<HELP_TAIL
|
cat<<HELP_TAIL_COMMON
|
||||||
-pwd Print root directory containing a Make/ directory
|
-pwd Print root directory containing a Make/ directory
|
||||||
-version | --version Print version, which is the same as -show-api
|
-version | --version Print version (same as -show-api)
|
||||||
-h | -help Display short help and exit
|
-h | -help Display short help and exit
|
||||||
-help-full Display full help and exit
|
-help-full Display full help and exit
|
||||||
|
|
||||||
A general, easy-to-use make system for multi-platform development
|
A general, easy-to-use make system for multi-platform development
|
||||||
with support for local and network parallel compilation.
|
with support for local and network parallel compilation.
|
||||||
|
|
||||||
The 'target' is a Makefile target:
|
HELP_TAIL_COMMON
|
||||||
e.g., platforms/linux64GccDPOpt/.../fvMesh.o
|
|
||||||
|
|
||||||
or a special target:
|
if [ -n "$1" ]
|
||||||
|
then
|
||||||
|
cat<<HELP_TAIL_FULL
|
||||||
|
Makefile targets: platforms/linux64GccDPInt32Opt/.../fvMesh.o (for example)
|
||||||
|
Special targets:
|
||||||
all | queue Same as -all | -queue options
|
all | queue Same as -all | -queue options
|
||||||
exe Compile statically linked executable
|
exe Compile statically linked executable
|
||||||
lib Compile statically linked archive lib (.a)
|
lib Compile statically linked archive lib (.a)
|
||||||
@ -116,10 +119,23 @@ or a special target:
|
|||||||
updatedep Compile dependencies only (in case of broken dependencies)
|
updatedep Compile dependencies only (in case of broken dependencies)
|
||||||
objects Compile but not link
|
objects Compile but not link
|
||||||
|
|
||||||
HELP_TAIL
|
Environment
|
||||||
exit 1
|
FOAM_EXTRA_CXXFLAGS
|
||||||
|
|
||||||
|
HELP_TAIL_FULL
|
||||||
|
else
|
||||||
|
cat<<HELP_TAIL_BRIEF
|
||||||
|
Some special targets (see -help-full for details):
|
||||||
|
all | queue Same as -all | -queue options
|
||||||
|
exe Executables
|
||||||
|
lib libo libso Libraries
|
||||||
|
|
||||||
|
HELP_TAIL_BRIEF
|
||||||
|
fi
|
||||||
|
exit 0 # clean exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Report error and exit
|
# Report error and exit
|
||||||
die()
|
die()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user