Merge pull request #67879 from bruvzg/fix_no_vlk

Fix build with Vulkan disabled and no Vulkan headers installed.
This commit is contained in:
Rémi Verschelde 2022-10-31 14:29:05 +01:00
commit 9188bc7341
No known key found for this signature in database
GPG key ID: C3336907360768E1
14 changed files with 56 additions and 10 deletions

View file

@ -1603,11 +1603,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;
}

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)])

View file

@ -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