To test it out, try this: ./do -j10 build cd docs/cookbook/c redo -j10 test It should detect all the compilers on your system and make three separate builds for each one: normal, debug, and optimized. Then it tries to run a test program under each one. If there are windows cross compilers and you also have 'wine' installed, it'll try running the test program under wine as well. redoconf currently has no documentation other than the example program. We'll fix that later.
35 lines
835 B
Text
35 lines
835 B
Text
. ./redoconf.rc
|
|
rc_include rc/CC.rc
|
|
|
|
rc_helpmsg CXX "C++ compiler name (c++)"
|
|
rc_helpmsg CXXFLAGS "Extra C++ compiler flags (eg. -O2 -g)"
|
|
|
|
if [ -n "$CXX" ]; then
|
|
set -- "$CXX"
|
|
else
|
|
# Note: $ARCH has already been set correctly by CC.rc
|
|
set -- \
|
|
"${ARCH}c++" "${ARCH}g++" \
|
|
"${ARCH}clang++" "/usr/bin/${ARCH}clang++"-[0-9]*
|
|
fi
|
|
|
|
for d in "$@"; do
|
|
[ -n "$d" ] || continue
|
|
echo "Trying C++ compiler: '$d'" >&2
|
|
if CC="" CXX="$d" LINK="$d" rc_compile cxx link 'class A {};'; then
|
|
rc_replaceln CXX "$d"
|
|
# If the project activates CXX.rc, then we
|
|
# replace the C linker with C++. This causes
|
|
# it to include -lstdc++, etc.
|
|
# A future .rc could override this again.
|
|
rc_replaceln LINK "$d"
|
|
rc_save
|
|
exit 0
|
|
fi
|
|
done
|
|
|
|
echo "Warning: Can't find a working C++ compiler." >&2
|
|
rc_undo
|
|
rc_replaceln CXX ""
|
|
rc_save
|
|
exit 0
|