d1810b0dce
Simplify things by putting setup.h files themselves under version control and getting rid of setup0.h ones. The initial motivation for using separate setup0.h files was to allow having local changes to setup.h, but with Git there is a simple way to do it by using "git update-index --skip-worktree include/wx/msw/setup.h" for example, so we don't really need setup0.h any more and dropping them makes things simpler.
130 lines
3.7 KiB
Bash
Executable File
130 lines
3.7 KiB
Bash
Executable File
#!/bin/sh
|
|
##############################################################################
|
|
# Name: build/update-setup.h
|
|
# Purpose: run from root wx directory to update wx/*/setup.h files: those
|
|
# having special comment markers in them will be update using
|
|
# include/wx/setup_inc.h contents
|
|
# Created: 2005-01-15
|
|
# Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
# Licence: wxWindows licence
|
|
##############################################################################
|
|
|
|
rc=0
|
|
|
|
error()
|
|
{
|
|
echo $* 1>&2
|
|
}
|
|
|
|
msg()
|
|
{
|
|
# TODO: only output from here if "quiet" option is not given
|
|
echo "$*"
|
|
}
|
|
|
|
# write all the common options to stdout, massaging them specially if they are
|
|
# meant to be included in a configure input file setup.h.in
|
|
#
|
|
# usage: cat_common_options_for setup_inc.h setup.h
|
|
cat_common_options_for()
|
|
{
|
|
# get rid of the copyright header on top of the file
|
|
cmd="sed '1,/^\$/d' $1"
|
|
|
|
# the file used for configure is special: we need to get rid of C++
|
|
# comments in it because it is included by some C code and we also have to
|
|
# set all options to 0 by default as they're put to 1 only by configure
|
|
# (and hence any #ifdefs setting default values for them become unneeded)
|
|
if [ $2 = "setup.h.in" ]; then
|
|
cmd="$cmd | sed -e '/^\/\//d' \
|
|
-e 's@ *//.*\$@@' \
|
|
-e 's/# *define \(.\+\) \+1 *\$/#define \1 0/'"
|
|
elif [ $2 = "build/cmake/setup.h.in" ]; then
|
|
# The setup.h.in template for cmake needs special processing
|
|
cmd="$cmd | sed -e '/^\/\//d' \
|
|
-e 's@ *//.*\$@@' \
|
|
-e 's/# *define \([^ ]\+\) \+\(1\|0\) *\$/#cmakedefine01 \1/'"
|
|
fi
|
|
|
|
eval $cmd
|
|
}
|
|
|
|
# update the single setup.h file passed in as the parameter if it is out of
|
|
# date
|
|
#
|
|
# usage: update_single_setup_h {common|MSW} setup_inc.h setup.h
|
|
update_single_setup_h()
|
|
{
|
|
section=$1
|
|
shift
|
|
setup_inc=$1
|
|
shift
|
|
|
|
echo -n "Updating $1 ..."
|
|
|
|
tmp=$i.$$.tmp
|
|
sed -e "/^\/\* --- start $section options --- \*\/\$/q" $1 > $tmp &&
|
|
cat_common_options_for $setup_inc $1 >> $tmp &&
|
|
sed -n -e "/^\/\* --- end $section options --- \*\/\$/,\$p" $1 >> $tmp
|
|
|
|
if cmp -s $1 $tmp; then
|
|
rm $tmp
|
|
msg " unchanged"
|
|
else
|
|
mv $tmp $1
|
|
|
|
if [ $? -ne 0 ]; then
|
|
msg " FAILED"
|
|
error "$0: failed to update file $1"
|
|
rc=2
|
|
else
|
|
msg " ok"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# wrapper for update_single_setup_h which only updates the common options
|
|
update_common_setup_h()
|
|
{
|
|
update_single_setup_h common include/wx/setup_inc.h $1
|
|
}
|
|
|
|
# wrapper for update_single_setup_h which only updates the MSW options
|
|
update_msw_setup_h()
|
|
{
|
|
update_single_setup_h MSW include/wx/msw/setup_inc.h $1
|
|
}
|
|
|
|
# wrapper for update_single_setup_h which only updates the OSX options
|
|
update_osx_setup_h()
|
|
{
|
|
update_single_setup_h OSX include/wx/osx/setup_inc.h $1
|
|
}
|
|
|
|
# entry point
|
|
if [ ! -f wxwin.m4 ]; then
|
|
error "$0: must be ran from root wx directory"
|
|
exit 1
|
|
fi
|
|
|
|
update_common_setup_h include/wx/android/setup.h
|
|
update_common_setup_h include/wx/motif/setup.h
|
|
update_common_setup_h include/wx/msw/setup.h
|
|
update_common_setup_h include/wx/gtk/setup.h
|
|
update_common_setup_h include/wx/osx/setup.h
|
|
update_common_setup_h include/wx/univ/setup.h
|
|
update_common_setup_h setup.h.in
|
|
update_common_setup_h build/cmake/setup.h.in
|
|
|
|
update_msw_setup_h include/wx/msw/setup.h
|
|
update_msw_setup_h include/wx/gtk/setup.h
|
|
update_msw_setup_h setup.h.in
|
|
update_msw_setup_h build/cmake/setup.h.in
|
|
|
|
update_osx_setup_h include/wx/osx/setup.h
|
|
|
|
update_single_setup_h wxUniv include/wx/univ/setup_inc.h include/wx/univ/setup.h
|
|
|
|
exit $rc
|
|
|