diff --git a/CMakeLists.txt b/CMakeLists.txt index b2fef458..32b68dd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,8 +8,6 @@ set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") - set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(SOURCE_FILES @@ -18,6 +16,7 @@ set(SOURCE_FILES MobileGL/MG_Util/Debug/Log.cpp MobileGL/MG_Util/Metrics/TextureMetrics.cpp + MobileGL/MG_Util/Metrics/BufferMetrics.cpp MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp @@ -74,75 +73,11 @@ add_library(${CMAKE_PROJECT_NAME} SHARED ${SOURCE_FILES} ) -if(MACOS) - # iOS - set(iOS_LIB_DIR ${CMAKE_SOURCE_DIR}/library/ios) - target_link_libraries(${CMAKE_PROJECT_NAME} - ${iOS_LIB_DIR}/libglslang.a - ${iOS_LIB_DIR}/libspirv-cross-c-shared.dylib - ${iOS_LIB_DIR}/libGenericCodeGen.a - ${iOS_LIB_DIR}/libglslang-default-resource-limits.a - ${iOS_LIB_DIR}/libMachineIndependent.a - ${iOS_LIB_DIR}/libOSDependent.a - ${iOS_LIB_DIR}/libSPIRV-Tools-diff.a - ${iOS_LIB_DIR}/libSPIRV-Tools-link.aBuffer - ${iOS_LIB_DIR}/libSPIRV-Tools-lint.a - ${iOS_LIB_DIR}/libSPIRV-Tools-opt.a - ${iOS_LIB_DIR}/libSPIRV-Tools-reduce.a - ${iOS_LIB_DIR}/libSPIRV-Tools.a - ${iOS_LIB_DIR}/libSPIRV.a - ${iOS_LIB_DIR}/libSPVRemapper.a - "-F${CMAKE_SOURCE_DIR}/external" - "-framework libEGL" - "-framework libGLESv2" - "-framework Metal" - "-framework Foundation" - "-framework QuartzCore" - ) -else() -if(LINUX) - # Linux - # TODO: support more architectures. - find_library(GLSLANG_LIB glslang PATHS ${CMAKE_SOURCE_DIR}/library/linux/x86_64) - target_link_libraries(${CMAKE_PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libglslang.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libspirv-cross-c-shared.so - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libGenericCodeGen.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libglslang-default-resource-limits.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libMachineIndependent.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libOSDependent.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV-Tools-diff.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV-Tools-link.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV-Tools-lint.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV-Tools-opt.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV-Tools-reduce.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV-Tools.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPIRV.a - ${CMAKE_SOURCE_DIR}/library/linux/x86_64/libSPVRemapper.a - ) -else() - # Android - find_library(GLSLANG_LIB glslang PATHS ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/) - target_link_libraries(${CMAKE_PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libglslang.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libspirv-cross-c-shared.so - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libGenericCodeGen.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libglslang-default-resource-limits.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libMachineIndependent.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libOSDependent.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV-Tools-diff.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV-Tools-link.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV-Tools-lint.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV-Tools-opt.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV-Tools-reduce.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV-Tools.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPIRV.a - ${CMAKE_SOURCE_DIR}/library/android/${ANDROID_ABI}/libSPVRemapper.a - android - log - ) -endif() -endif() +set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES + C_VISIBILITY_PRESET hidden + CXX_VISIBILITY_PRESET hidden + VISIBILITY_INLINES_HIDDEN ON +) # add_subdirectory(3rdparty/DiligentCore) @@ -157,3 +92,15 @@ target_link_libraries(MobileGL # Diligent-GraphicsEngineOpenGL-shared # Diligent-GraphicsEngineVk-shared ) + +set(SPIRV_CROSS_STATIC ON CACHE BOOL "Build SPIRV-Cross as static library") +set(SPIRV_CROSS_CLI OFF CACHE BOOL "Build SPIRV-Cross command line tool") + +add_subdirectory(3rdparty/glslang) +add_subdirectory(3rdparty/SPIRV-Cross) + +target_link_libraries(MobileGL + PRIVATE + glslang::glslang + spirv-cross-c +) diff --git a/MobileGL/MG_Impl/EGLImpl/Temporary/TemporaryEGLImpl.cpp b/MobileGL/MG_Impl/EGLImpl/Temporary/TemporaryEGLImpl.cpp index d7e93b07..28f9444e 100644 --- a/MobileGL/MG_Impl/EGLImpl/Temporary/TemporaryEGLImpl.cpp +++ b/MobileGL/MG_Impl/EGLImpl/Temporary/TemporaryEGLImpl.cpp @@ -102,7 +102,11 @@ namespace MobileGL { __eglMustCastToProperFunctionPointerType GetProcAddress(const char* name) { MGLOG_D("eglGetProcAddress(%s)", name); +#ifndef WIN32 void* proc = dlsym(RTLD_DEFAULT, (const char*)name); +#else + void* proc = NULL; +#endif if (!proc) { MGLOG_W("Failed to get function: %s", (const char*)name); return nullptr; diff --git a/MobileGL/MG_Impl/GLXImpl/LookUp/LookUp.cpp b/MobileGL/MG_Impl/GLXImpl/LookUp/LookUp.cpp index a35ee2e0..a09a111b 100644 --- a/MobileGL/MG_Impl/GLXImpl/LookUp/LookUp.cpp +++ b/MobileGL/MG_Impl/GLXImpl/LookUp/LookUp.cpp @@ -5,8 +5,11 @@ namespace MG_Impl::GLXImpl { void* GetProcAddress(const char* name) { MGLOG_D("glXGetProcAddress(\"%s\")", name); +#ifndef WIN32 void* proc = dlsym(RTLD_DEFAULT, (const char*)name); - +#else + void* proc = NULL; +#endif if (!proc) { MGLOG_W("Failed to get function: %s", (const char*)name); return nullptr;