Linux support (kinda)
This commit is contained in:
@@ -9,10 +9,10 @@ if(APPLE)
|
||||
file(GLOB_RECURSE METAL_FILES CONFIGURE_DEPENDS "src/*.m")
|
||||
endif()
|
||||
add_library(Gryphn ${SOURCE_FILES} ${METAL_FILES})
|
||||
target_include_directories(Gryphn PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/)
|
||||
target_include_directories(Gryphn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/)
|
||||
target_include_directories(Gryphn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/)
|
||||
target_include_directories(Gryphn PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/utils)
|
||||
target_include_directories(Gryphn PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/utils/utils)
|
||||
target_include_directories(Gryphn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/utils)
|
||||
target_include_directories(Gryphn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/utils/utils)
|
||||
add_compile_definitions(GN_REVEAL_IMPL)
|
||||
|
||||
make_directory(${CMAKE_BINARY_DIR}/gryphn/rendering_apis/)
|
||||
|
32
src/platform/platform_linux/gryphn_platform_linux.c
Normal file
32
src/platform/platform_linux/gryphn_platform_linux.c
Normal file
@@ -0,0 +1,32 @@
|
||||
#ifdef GN_PLATFORM_LINUX
|
||||
#include "gryphn_platform_linux.h"
|
||||
#include "core/gryphn_rendering_api.h"
|
||||
#include "core/instance/init/gryphn_dynamic_library.h"
|
||||
#include "dlfcn.h"
|
||||
|
||||
gnRenderingAPI renderingAPIs[2] = {
|
||||
GN_RENDERINGAPI_VULKAN,
|
||||
GN_RENDERINGAPI_SOFTWARE
|
||||
};
|
||||
|
||||
gnRenderingAPI* gnGetSupportedRenderingAPIs(int* count) {
|
||||
*count = 2;
|
||||
return renderingAPIs;
|
||||
}
|
||||
|
||||
struct gnDynamicLibrary_t* gnLoadDynamicLibrary(const gnString path) {
|
||||
struct gnDynamicLibrary_t* dll = malloc(sizeof(struct gnDynamicLibrary_t));
|
||||
dll->dllPtr = dlopen(gnToCString(gnCombineStrings(path, ".so")), RTLD_LAZY),
|
||||
dll->isValid = gnTrue;
|
||||
if (dll->dllPtr == NULL) dll->isValid = gnFalse;
|
||||
return dll;
|
||||
}
|
||||
void* gnLoadFunctionPtr(struct gnDynamicLibrary_t* dll, const char* name) {
|
||||
if (dll->isValid == gnFalse) return NULL;
|
||||
return dlsym(dll->dllPtr, name);
|
||||
}
|
||||
void gnUnloadDynamicLibrary(struct gnDynamicLibrary_t* dll) {
|
||||
if (dll->isValid) dlclose(dll->dllPtr);
|
||||
}
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user