mirror of
https://github.com/libretro/RetroArch
synced 2025-04-02 07:20:34 +00:00
Merge pull request #6701 from orbea/cxx
qb: Fix checking the CXX compiler
This commit is contained in:
commit
4a1fc9b598
21
Makefile
21
Makefile
@ -92,20 +92,19 @@ APPEND_CFLAGS := $(CFLAGS)
|
|||||||
CXXFLAGS += $(APPEND_CFLAGS) -std=c++11 -D__STDC_CONSTANT_MACROS
|
CXXFLAGS += $(APPEND_CFLAGS) -std=c++11 -D__STDC_CONSTANT_MACROS
|
||||||
OBJCFLAGS := $(CFLAGS) -D__STDC_CONSTANT_MACROS
|
OBJCFLAGS := $(CFLAGS) -D__STDC_CONSTANT_MACROS
|
||||||
|
|
||||||
ifeq ($(CXX_BUILD), 1)
|
ifeq ($(HAVE_CXX), 1)
|
||||||
LINK = $(CXX)
|
ifeq ($(CXX_BUILD), 1)
|
||||||
CFLAGS := $(CXXFLAGS) -xc++
|
LINK = $(CXX)
|
||||||
CFLAGS += -DCXX_BUILD
|
CFLAGS := $(CXXFLAGS) -xc++
|
||||||
CXXFLAGS += -DCXX_BUILD
|
CFLAGS += -DCXX_BUILD
|
||||||
else
|
CXXFLAGS += -DCXX_BUILD
|
||||||
ifeq ($(NEED_CXX_LINKER),1)
|
else ifeq ($(NEED_CXX_LINKER),1)
|
||||||
LINK = $(CXX)
|
LINK = $(CXX)
|
||||||
else ifeq ($(findstring Win32,$(OS)),)
|
|
||||||
LINK = $(CC)
|
|
||||||
else
|
else
|
||||||
# directx-related code is c++
|
LINK = $(CC)
|
||||||
LINK = $(CXX)
|
|
||||||
endif
|
endif
|
||||||
|
else
|
||||||
|
LINK = $(CC)
|
||||||
|
|
||||||
ifneq ($(GNU90_BUILD), 1)
|
ifneq ($(GNU90_BUILD), 1)
|
||||||
ifneq ($(findstring icc,$(CC)),)
|
ifneq ($(findstring icc,$(CC)),)
|
||||||
|
@ -1,6 +1,2 @@
|
|||||||
USE_LANG_C="yes"
|
USE_LANG_C="yes"
|
||||||
|
USE_LANG_CXX="yes"
|
||||||
# C++ compiler is optional in other platforms supported by ./configure
|
|
||||||
if [ "$OS" = 'Win32' ]; then
|
|
||||||
USE_LANG_CXX="yes"
|
|
||||||
fi
|
|
||||||
|
@ -270,6 +270,8 @@ check_val '' PULSE -lpulse
|
|||||||
check_val '' SDL -lSDL SDL
|
check_val '' SDL -lSDL SDL
|
||||||
check_val '' SDL2 -lSDL2 SDL2
|
check_val '' SDL2 -lSDL2 SDL2
|
||||||
|
|
||||||
|
check_enabled QT 'Qt companion'
|
||||||
|
|
||||||
if [ "$HAVE_QT" != 'no' ] && [ "$MOC_PATH" != 'none' ]; then
|
if [ "$HAVE_QT" != 'no' ] && [ "$MOC_PATH" != 'none' ]; then
|
||||||
check_pkgconf QT5CORE Qt5Core 5.2
|
check_pkgconf QT5CORE Qt5Core 5.2
|
||||||
check_pkgconf QT5GUI Qt5Gui 5.2
|
check_pkgconf QT5GUI Qt5Gui 5.2
|
||||||
@ -487,6 +489,8 @@ fi
|
|||||||
check_lib '' STRCASESTR "$CLIB" strcasestr
|
check_lib '' STRCASESTR "$CLIB" strcasestr
|
||||||
check_lib '' MMAP "$CLIB" mmap
|
check_lib '' MMAP "$CLIB" mmap
|
||||||
|
|
||||||
|
check_enabled VULKAN vulkan
|
||||||
|
|
||||||
if [ "$HAVE_VULKAN" != "no" ] && [ "$OS" = 'Win32' ]; then
|
if [ "$HAVE_VULKAN" != "no" ] && [ "$OS" = 'Win32' ]; then
|
||||||
HAVE_VULKAN=yes
|
HAVE_VULKAN=yes
|
||||||
else
|
else
|
||||||
|
@ -11,6 +11,7 @@ int main(void) { puts("Hai world!"); return 0; }
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
cc_works=0
|
cc_works=0
|
||||||
|
HAVE_CC=no
|
||||||
if [ "$CC" ]; then
|
if [ "$CC" ]; then
|
||||||
"$CC" -o "$TEMP_EXE" "$TEMP_C" >/dev/null 2>&1 && cc_works=1
|
"$CC" -o "$TEMP_EXE" "$TEMP_C" >/dev/null 2>&1 && cc_works=1
|
||||||
else
|
else
|
||||||
@ -29,6 +30,7 @@ rm -f -- "$TEMP_C" "$TEMP_EXE"
|
|||||||
cc_status='does not work'
|
cc_status='does not work'
|
||||||
if [ "$cc_works" = '1' ]; then
|
if [ "$cc_works" = '1' ]; then
|
||||||
cc_status='works'
|
cc_status='works'
|
||||||
|
HAVE_CC='yes'
|
||||||
elif [ -z "$CC" ]; then
|
elif [ -z "$CC" ]; then
|
||||||
cc_status='not found'
|
cc_status='not found'
|
||||||
fi
|
fi
|
||||||
@ -46,6 +48,7 @@ int main() { std::cout << "Hai guise" << std::endl; return 0; }
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
cxx_works=0
|
cxx_works=0
|
||||||
|
HAVE_CXX=no
|
||||||
if [ "$CXX" ]; then
|
if [ "$CXX" ]; then
|
||||||
"$CXX" -o "$TEMP_EXE" "$TEMP_CXX" >/dev/null 2>&1 && cxx_works=1
|
"$CXX" -o "$TEMP_EXE" "$TEMP_CXX" >/dev/null 2>&1 && cxx_works=1
|
||||||
else
|
else
|
||||||
@ -64,6 +67,7 @@ rm -f -- "$TEMP_CXX" "$TEMP_EXE"
|
|||||||
cxx_status='does not work'
|
cxx_status='does not work'
|
||||||
if [ "$cxx_works" = '1' ]; then
|
if [ "$cxx_works" = '1' ]; then
|
||||||
cxx_status='works'
|
cxx_status='works'
|
||||||
|
HAVE_CXX='yes'
|
||||||
elif [ -z "$CXX" ]; then
|
elif [ -z "$CXX" ]; then
|
||||||
cxx_status='not found'
|
cxx_status='not found'
|
||||||
fi
|
fi
|
||||||
@ -71,7 +75,7 @@ fi
|
|||||||
echo "Checking for suitable working C++ compiler ... $CXX $cxx_status"
|
echo "Checking for suitable working C++ compiler ... $CXX $cxx_status"
|
||||||
|
|
||||||
if [ "$cxx_works" = '0' ] && [ "$USE_LANG_CXX" = 'yes' ]; then
|
if [ "$cxx_works" = '0' ] && [ "$USE_LANG_CXX" = 'yes' ]; then
|
||||||
die 1 'Error: Cannot proceed without a working C++ compiler.'
|
die : 'Warning: A working C++ compiler was not found, C++ features will be disabled.'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$OS" = "Win32" ]; then
|
if [ "$OS" = "Win32" ]; then
|
||||||
|
@ -28,6 +28,18 @@ check_compiler() # $1 = language $2 = function in lib
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_enabled() # $1 = HAVE_$1 $2 = lib
|
||||||
|
{ [ "$HAVE_CXX" != 'no' ] && return 0
|
||||||
|
tmpval="$(eval "printf %s \"\$HAVE_$1\"")"
|
||||||
|
|
||||||
|
if [ "$tmpval" != 'yes' ]; then
|
||||||
|
eval "HAVE_$1=no"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
die 1 "Forced to build with $2 support and the C++ compiler is disabled. Exiting ..."
|
||||||
|
}
|
||||||
|
|
||||||
check_lib() # $1 = language $2 = HAVE_$2 $3 = lib $4 = function in lib $5 = extralibs $6 = headers $7 = critical error message [checked only if non-empty]
|
check_lib() # $1 = language $2 = HAVE_$2 $3 = lib $4 = function in lib $5 = extralibs $6 = headers $7 = critical error message [checked only if non-empty]
|
||||||
{ tmpval="$(eval "printf %s \"\$HAVE_$2\"")"
|
{ tmpval="$(eval "printf %s \"\$HAVE_$2\"")"
|
||||||
[ "$tmpval" = 'no' ] && return 0
|
[ "$tmpval" = 'no' ] && return 0
|
||||||
@ -222,8 +234,8 @@ create_config_make()
|
|||||||
|
|
||||||
printf %s\\n "Creating make config: $outfile"
|
printf %s\\n "Creating make config: $outfile"
|
||||||
|
|
||||||
{ [ "${CC}" ] && printf %s\\n "CC = $CC" "CFLAGS = $CFLAGS"
|
{ [ "$HAVE_CC" = 'yes' ] && printf %s\\n "CC = $CC" "CFLAGS = $CFLAGS"
|
||||||
[ "${CXX}" ] && printf %s\\n "CXX = $CXX" "CXXFLAGS = $CXXFLAGS"
|
[ "$HAVE_CXX" = 'yes' ] && printf %s\\n "CXX = $CXX" "CXXFLAGS = $CXXFLAGS"
|
||||||
|
|
||||||
printf %s\\n "WINDRES = $WINDRES" \
|
printf %s\\n "WINDRES = $WINDRES" \
|
||||||
"MOC = $MOC" \
|
"MOC = $MOC" \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user