Browse Source

Fix build with Vulkan disabled and no Vulkan headers installed.

bruvzg 2 years ago
parent
commit
4dd8f68120

+ 8 - 2
main/main.cpp

@@ -1590,11 +1590,17 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 		// Now validate whether the selected driver matches with the renderer.
 		bool valid_combination = false;
 		Vector<String> available_drivers;
+#ifdef VULKAN_ENABLED
 		if (rendering_method == "forward_plus" || rendering_method == "mobile") {
 			available_drivers.push_back("vulkan");
-		} else if (rendering_method == "gl_compatibility") {
+		}
+#endif
+#ifdef GLES3_ENABLED
+		if (rendering_method == "gl_compatibility") {
 			available_drivers.push_back("opengl3");
-		} else {
+		}
+#endif
+		if (available_drivers.is_empty()) {
 			OS::get_singleton()->print("Unknown renderer name '%s', aborting.\n", rendering_method.utf8().get_data());
 			goto error;
 		}

+ 4 - 0
platform/android/vulkan/vulkan_context_android.cpp

@@ -28,6 +28,8 @@
 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
 /*************************************************************************/
 
+#ifdef VULKAN_ENABLED
+
 #include "vulkan_context_android.h"
 
 #ifdef USE_VOLK
@@ -63,3 +65,5 @@ bool VulkanContextAndroid::_use_validation_layers() {
 	// On Android, we use validation layers automatically if they were explicitly linked with the app.
 	return count > 0;
 }
+
+#endif // VULKAN_ENABLED

+ 4 - 0
platform/android/vulkan/vulkan_context_android.h

@@ -31,6 +31,8 @@
 #ifndef VULKAN_CONTEXT_ANDROID_H
 #define VULKAN_CONTEXT_ANDROID_H
 
+#ifdef VULKAN_ENABLED
+
 #include "drivers/vulkan/vulkan_context.h"
 
 struct ANativeWindow;
@@ -48,4 +50,6 @@ protected:
 	bool _use_validation_layers() override;
 };
 
+#endif // VULKAN_ENABLED
+
 #endif // VULKAN_CONTEXT_ANDROID_H

+ 3 - 1
platform/ios/display_server_ios.h

@@ -40,7 +40,6 @@
 
 #include "vulkan_context_ios.h"
 
-#import <QuartzCore/CAMetalLayer.h>
 #ifdef USE_VOLK
 #include <volk.h>
 #else
@@ -48,6 +47,9 @@
 #endif
 #endif
 
+#import <Foundation/Foundation.h>
+#import <QuartzCore/CAMetalLayer.h>
+
 class DisplayServerIOS : public DisplayServer {
 	GDCLASS(DisplayServerIOS, DisplayServer)
 

+ 0 - 1
platform/ios/display_server_ios.mm

@@ -41,7 +41,6 @@
 #include "tts_ios.h"
 #import "view_controller.h"
 
-#import <Foundation/Foundation.h>
 #import <sys/utsname.h>
 
 static const float kDisplayServerIOSAcceleration = 1.f;

+ 4 - 0
platform/ios/vulkan_context_ios.h

@@ -31,6 +31,8 @@
 #ifndef VULKAN_CONTEXT_IOS_H
 #define VULKAN_CONTEXT_IOS_H
 
+#ifdef VULKAN_ENABLED
+
 #include "drivers/vulkan/vulkan_context.h"
 
 #import <UIKit/UIKit.h>
@@ -45,4 +47,6 @@ public:
 	~VulkanContextIOS();
 };
 
+#endif // VULKAN_ENABLED
+
 #endif // VULKAN_CONTEXT_IOS_H

+ 4 - 0
platform/ios/vulkan_context_ios.mm

@@ -28,6 +28,8 @@
 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
 /*************************************************************************/
 
+#ifdef VULKAN_ENABLED
+
 #include "vulkan_context_ios.h"
 #ifdef USE_VOLK
 #include <volk.h>
@@ -57,3 +59,5 @@ Error VulkanContextIOS::window_create(DisplayServer::WindowID p_window_id, Displ
 VulkanContextIOS::VulkanContextIOS() {}
 
 VulkanContextIOS::~VulkanContextIOS() {}
+
+#endif // VULKAN_ENABLED

+ 4 - 0
platform/linuxbsd/vulkan_context_x11.cpp

@@ -28,6 +28,8 @@
 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
 /*************************************************************************/
 
+#ifdef VULKAN_ENABLED
+
 #include "vulkan_context_x11.h"
 
 #ifdef USE_VOLK
@@ -59,3 +61,5 @@ VulkanContextX11::VulkanContextX11() {
 
 VulkanContextX11::~VulkanContextX11() {
 }
+
+#endif // VULKAN_ENABLED

+ 4 - 0
platform/linuxbsd/vulkan_context_x11.h

@@ -31,6 +31,8 @@
 #ifndef VULKAN_CONTEXT_X11_H
 #define VULKAN_CONTEXT_X11_H
 
+#ifdef VULKAN_ENABLED
+
 #include "drivers/vulkan/vulkan_context.h"
 #include <X11/Xlib.h>
 
@@ -44,4 +46,6 @@ public:
 	~VulkanContextX11();
 };
 
+#endif // VULKAN_ENABLED
+
 #endif // VULKAN_CONTEXT_X11_H

+ 3 - 1
platform/macos/detect.py

@@ -223,6 +223,8 @@ def configure(env: "Environment"):
             "AVFoundation",
             "-framework",
             "CoreMedia",
+            "-framework",
+            "QuartzCore",
         ]
     )
     env.Append(LIBS=["pthread", "z"])
@@ -236,7 +238,7 @@ def configure(env: "Environment"):
 
     if env["vulkan"]:
         env.Append(CPPDEFINES=["VULKAN_ENABLED"])
-        env.Append(LINKFLAGS=["-framework", "Metal", "-framework", "QuartzCore", "-framework", "IOSurface"])
+        env.Append(LINKFLAGS=["-framework", "Metal", "-framework", "IOSurface"])
         if not env["use_volk"]:
             env.Append(LINKFLAGS=["-lMoltenVK"])
             mvk_found = False

+ 4 - 0
platform/macos/vulkan_context_macos.h

@@ -31,6 +31,8 @@
 #ifndef VULKAN_CONTEXT_MACOS_H
 #define VULKAN_CONTEXT_MACOS_H
 
+#ifdef VULKAN_ENABLED
+
 #include "drivers/vulkan/vulkan_context.h"
 #import <AppKit/AppKit.h>
 
@@ -44,4 +46,6 @@ public:
 	~VulkanContextMacOS();
 };
 
+#endif // VULKAN_ENABLED
+
 #endif // VULKAN_CONTEXT_MACOS_H

+ 3 - 0
platform/macos/vulkan_context_macos.mm

@@ -28,6 +28,7 @@
 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
 /*************************************************************************/
 
+#ifdef VULKAN_ENABLED
 #include "vulkan_context_macos.h"
 #ifdef USE_VOLK
 #include <volk.h>
@@ -57,3 +58,5 @@ VulkanContextMacOS::VulkanContextMacOS() {
 
 VulkanContextMacOS::~VulkanContextMacOS() {
 }
+
+#endif // VULKAN_ENABLED

+ 7 - 5
platform/windows/detect.py

@@ -582,12 +582,14 @@ def configure_mingw(env):
         ]
     )
 
-    env.Append(CPPDEFINES=["VULKAN_ENABLED"])
-    if not env["use_volk"]:
-        env.Append(LIBS=["vulkan"])
+    if env["vulkan"]:
+        env.Append(CPPDEFINES=["VULKAN_ENABLED"])
+        if not env["use_volk"]:
+            env.Append(LIBS=["vulkan"])
 
-    env.Append(CPPDEFINES=["GLES3_ENABLED"])
-    env.Append(LIBS=["opengl32"])
+    if env["opengl3"]:
+        env.Append(CPPDEFINES=["GLES3_ENABLED"])
+        env.Append(LIBS=["opengl32"])
 
     env.Append(CPPDEFINES=["MINGW_ENABLED", ("MINGW_HAS_SECURE_API", 1)])
 

+ 4 - 0
platform/windows/vulkan_context_win.h

@@ -31,6 +31,8 @@
 #ifndef VULKAN_CONTEXT_WIN_H
 #define VULKAN_CONTEXT_WIN_H
 
+#ifdef VULKAN_ENABLED
+
 #include "drivers/vulkan/vulkan_context.h"
 
 #define WIN32_LEAN_AND_MEAN
@@ -46,4 +48,6 @@ public:
 	~VulkanContextWindows();
 };
 
+#endif // VULKAN_ENABLED
+
 #endif // VULKAN_CONTEXT_WIN_H