Browse Source

linux build: use c++14

niki 2 years ago
parent
commit
850749fac0

+ 1 - 1
CMakeLists.txt

@@ -1766,7 +1766,7 @@ set(LOVE_SRC_3P_VMA src/libraries/vma/vk_mem_alloc.h)
 
 
 set(LOVE_SRC_3P_VOLK 
 set(LOVE_SRC_3P_VOLK 
 	src/libraries/volk/volk.h
 	src/libraries/volk/volk.h
-	src/libraries/volk/volk.cpp)
+	src/libraries/volk/volk.c)
 
 
 add_library(love_3p_volk ${LOVE_SRC_3P_VOLK})
 add_library(love_3p_volk ${LOVE_SRC_3P_VOLK})
 
 

+ 5 - 3
platform/unix/configure.ac

@@ -18,7 +18,7 @@ AC_C_BIGENDIAN
 AC_LANG([C++])
 AC_LANG([C++])
 
 
 dnl Workaround for old aclocal versions
 dnl Workaround for old aclocal versions
-m4_include([platform/unix/cpp11.m4])
+m4_include([platform/unix/cpp14.m4])
 m4_include([platform/unix/deps.m4])
 m4_include([platform/unix/deps.m4])
 
 
 includes=
 includes=
@@ -26,8 +26,8 @@ includes=
 AC_DEFUN([LOVE_MSG_ERROR],
 AC_DEFUN([LOVE_MSG_ERROR],
 		 [AC_MSG_ERROR([LÖVE needs "$1"[,] please install "$1" with development files and try again])])
 		 [AC_MSG_ERROR([LÖVE needs "$1"[,] please install "$1" with development files and try again])])
 
 
-# C++11 support in cpp11.m4
-ACLOVE_CPP11_TEST
+# C++14 support in cpp14.m4
+ACLOVE_CPP14_TEST
 
 
 # Allow people on OSX to use autotools, they need their platform files
 # Allow people on OSX to use autotools, they need their platform files
 AC_ARG_ENABLE([osx],
 AC_ARG_ENABLE([osx],
@@ -81,6 +81,8 @@ AS_VAR_IF([enable_module_filesystem], [yes], [enable_library_physfs=yes], [enabl
 AS_VAR_IF([enable_module_physics], [yes], [enable_library_box2d=yes], [enable_library_box2d=no])
 AS_VAR_IF([enable_module_physics], [yes], [enable_library_box2d=yes], [enable_library_box2d=no])
 AS_VAR_IF([enable_module_image], [yes], [enable_library_ddsparse=yes], [enable_library_ddsparse=no])
 AS_VAR_IF([enable_module_image], [yes], [enable_library_ddsparse=yes], [enable_library_ddsparse=no])
 AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glad=yes], [enable_library_glad=no])
 AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glad=yes], [enable_library_glad=no])
+AS_VAR_IF([enable_module_graphics], [yes], [enable_library_spirv_cross=yes], [enable_library_spirv_cross=no])
+AS_VAR_IF([enable_module_graphics], [yes], [enable_library_volk=yes], [enable_library_volk=no])
 AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glslang=yes], [enable_library_glslang=no])
 AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glslang=yes], [enable_library_glslang=no])
 AS_VAR_IF([enable_module_image], [yes], [enable_library_lodepng=yes], [enable_library_lodepng=no])
 AS_VAR_IF([enable_module_image], [yes], [enable_library_lodepng=yes], [enable_library_lodepng=no])
 AS_VAR_IF([enable_module_data], [yes], [enable_library_lua53=yes], [])
 AS_VAR_IF([enable_module_data], [yes], [enable_library_lua53=yes], [])

+ 26 - 27
platform/unix/cpp11.m4 → platform/unix/cpp14.m4

@@ -22,48 +22,47 @@ AC_DEFUN([ACLOVE_GET_CLANG_VERSION], [
 	AC_COMPUTE_INT(aclove_clang_version_patch, __clang_patchlevel__,, aclove_clang_version_found="no")
 	AC_COMPUTE_INT(aclove_clang_version_patch, __clang_patchlevel__,, aclove_clang_version_found="no")
 ])
 ])
 
 
-AC_DEFUN([ACLOVE_CPP11_TEST_FLAG], [
-	aclove_cpp11_test_cxx11name="no"
-	ACLOVE_CXX_FLAG_TEST([-std=c++0x], aclove_cpp11_test_cxx11name="c++0x", [])
-	ACLOVE_CXX_FLAG_TEST([-std=c++11], aclove_cpp11_test_cxx11name="c++11", [])
-	AS_VAR_IF([aclove_cpp11_test_cxx11name], [no],
-		[AC_MSG_ERROR([LÖVE needs a C++ compiler with C++11 support])],
-		[CXXFLAGS="$CXXFLAGS -std=$aclove_cpp11_test_cxx11name"])
+AC_DEFUN([ACLOVE_CPP14_TEST_FLAG], [
+	aclove_cpp14_test_cxx14name="no"
+	ACLOVE_CXX_FLAG_TEST([-std=c++14], aclove_cpp14_test_cxx14name="c++14", [])
+	AS_VAR_IF([aclove_cpp14_test_cxx14name], [no],
+		[AC_MSG_ERROR([LÖVE needs a C++ compiler with C++14 support])],
+		[CXXFLAGS="$CXXFLAGS -std=$aclove_cpp14_test_cxx14name"])
 ])
 ])
 
 
-AC_DEFUN([ACLOVE_CPP11_CHECK_VERSION], [ dnl compiler, targetmajor, targetminor, on-failure
-	aclove_cpp11_check_version_status="no"
+AC_DEFUN([ACLOVE_CPP14_CHECK_VERSION], [ dnl compiler, targetmajor, targetminor, on-failure
+	aclove_cpp14_check_version_status="no"
 	AC_MSG_CHECKING([whether $1 version is at least $2.$3])
 	AC_MSG_CHECKING([whether $1 version is at least $2.$3])
-	AS_IF([test "$aclove_[]$1[]_version_major" -gt $2], aclove_cpp11_check_version_status="yes")
-	AS_IF([test "$aclove_[]$1[]_version_major" -eq $2 && test "$aclove_[]$1[]_version_minor" -ge $3], aclove_cpp11_check_version_status="yes")
-	AC_MSG_RESULT([$aclove_cpp11_check_version_status])
-	AS_VAR_IF([aclove_cpp11_check_version_status], [no],
+	AS_IF([test "$aclove_[]$1[]_version_major" -gt $2], aclove_cpp14_check_version_status="yes")
+	AS_IF([test "$aclove_[]$1[]_version_major" -eq $2 && test "$aclove_[]$1[]_version_minor" -ge $3], aclove_cpp14_check_version_status="yes")
+	AC_MSG_RESULT([$aclove_cpp14_check_version_status])
+	AS_VAR_IF([aclove_cpp14_check_version_status], [no],
 		[$4])
 		[$4])
 ])
 ])
 
 
-AC_DEFUN([ACLOVE_CPP11_TEST_VERSION_GCC], [
-	ACLOVE_CPP11_CHECK_VERSION([gcc], 4, 7,
-		[AC_MSG_ERROR([LÖVE needs a GCC version of at least 4.7])])
+AC_DEFUN([ACLOVE_CPP14_TEST_VERSION_GCC], [
+	ACLOVE_CPP14_CHECK_VERSION([gcc], 4, 9,
+		[AC_MSG_ERROR([LÖVE needs a GCC version of at least 4.9])])
 ])
 ])
 
 
-AC_DEFUN([ACLOVE_CPP11_TEST_VERSION_CLANG], [
-	ACLOVE_CPP11_CHECK_VERSION([clang], 3, 1,
-		[AC_MSG_ERROR([LÖVE needs a clang version of at least 3.1])])
+AC_DEFUN([ACLOVE_CPP14_TEST_VERSION_CLANG], [
+	ACLOVE_CPP14_CHECK_VERSION([clang], 3, 4,
+		[AC_MSG_ERROR([LÖVE needs a clang version of at least 3.4])])
 ])
 ])
 
 
-AC_DEFUN([ACLOVE_CPP11_TEST], [
-	ACLOVE_CPP11_TEST_FLAG
+AC_DEFUN([ACLOVE_CPP14_TEST], [
+	ACLOVE_CPP14_TEST_FLAG
 
 
 	ACLOVE_GET_GCC_VERSION
 	ACLOVE_GET_GCC_VERSION
 	ACLOVE_GET_CLANG_VERSION
 	ACLOVE_GET_CLANG_VERSION
 
 
 	# Since clang also sets gcc headers, check clang after
 	# Since clang also sets gcc headers, check clang after
-	aclove_cpp11_test_compiler="unknown"
-	AS_VAR_IF([aclove_gcc_version_found], [yes], aclove_cpp11_test_compiler="gcc")
-	AS_VAR_IF([aclove_clang_version_found], [yes], aclove_cpp11_test_compiler="clang")
+	aclove_cpp14_test_compiler="unknown"
+	AS_VAR_IF([aclove_gcc_version_found], [yes], aclove_cpp14_test_compiler="gcc")
+	AS_VAR_IF([aclove_clang_version_found], [yes], aclove_cpp14_test_compiler="clang")
 
 
-	AS_CASE([$aclove_cpp11_test_compiler],
-		[gcc], [ACLOVE_CPP11_TEST_VERSION_GCC],
-		[clang], [ACLOVE_CPP11_TEST_VERSION_CLANG],
+	AS_CASE([$aclove_cpp14_test_compiler],
+		[gcc], [ACLOVE_CPP14_TEST_VERSION_GCC],
+		[clang], [ACLOVE_CPP14_TEST_VERSION_CLANG],
 		[AC_MSG_WARN([Could not determine compiler version])])
 		[AC_MSG_WARN([Could not determine compiler version])])
 ])
 ])

+ 0 - 0
src/libraries/volk/volk.cpp → src/libraries/volk/volk.c


+ 6 - 6
src/modules/graphics/vulkan/Graphics.cpp

@@ -2541,16 +2541,16 @@ static void eraseUnusedObjects(
 {
 {
 	std::vector<Configuration> deletionKeys;
 	std::vector<Configuration> deletionKeys;
 
 
-	for (const auto &[key, val] : objects)
+	for (const auto &entry : objects)
 	{
 	{
-		if (!usages[val])
+		if (!usages[entry.second])
 		{
 		{
-			deletionKeys.push_back(key);
-			usages.erase(val);
-			deleter(device, val, nullptr);
+			deletionKeys.push_back(entry.first);
+			usages.erase(entry.second);
+			deleter(device, entry.second, nullptr);
 		}
 		}
 		else
 		else
-			usages[val] = false;
+			usages[entry.second] = false;
 	}
 	}
 
 
 	for (const auto &key : deletionKeys)
 	for (const auto &key : deletionKeys)