From a4032a642a2f454e56c25bce148f3e71cc2bb9b8 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 1 Nov 2018 20:30:15 -0700 Subject: Optimized build by making shared versions of backend libraries dependent on static ones --- Graphics/GraphicsEngineOpenGL/CMakeLists.txt | 10 ++-------- .../GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h | 9 +++++++-- Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp | 3 ++- Graphics/GraphicsEngineOpenGL/src/GraphicsEngineOpenGL.def | 2 +- .../GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp | 3 +-- 5 files changed, 13 insertions(+), 14 deletions(-) (limited to 'Graphics/GraphicsEngineOpenGL') diff --git a/Graphics/GraphicsEngineOpenGL/CMakeLists.txt b/Graphics/GraphicsEngineOpenGL/CMakeLists.txt index b78a7fb2..d32bab6b 100644 --- a/Graphics/GraphicsEngineOpenGL/CMakeLists.txt +++ b/Graphics/GraphicsEngineOpenGL/CMakeLists.txt @@ -64,7 +64,7 @@ set(SOURCE src/GLProgramResources.cpp src/GLTypeConversions.cpp src/PipelineStateGLImpl.cpp - src/RenderDeviceFactoryOpenGL.cpp + src/RenderDeviceFactoryOpenGL.cpp src/RenderDeviceGLImpl.cpp src/SamplerGLImpl.cpp src/ShaderGLImpl.cpp @@ -136,7 +136,6 @@ add_library(GraphicsEngineOpenGL-static STATIC ) add_library(GraphicsEngineOpenGL-shared SHARED - ${SOURCE} ${INTERFACE} ${INCLUDE} readme.md ) if(PLATFORM_WIN32) @@ -153,11 +152,6 @@ PRIVATE ../HLSL2GLSLConverterLib/include ) -target_include_directories(GraphicsEngineOpenGL-shared -PRIVATE - include - ../HLSL2GLSLConverterLib/include -) set(PRIVATE_DEPENDENCIES BuildSettings @@ -201,7 +195,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() target_link_libraries(GraphicsEngineOpenGL-static PRIVATE ${PRIVATE_DEPENDENCIES} PUBLIC ${PUBLIC_DEPENDENCIES}) -target_link_libraries(GraphicsEngineOpenGL-shared PRIVATE ${PRIVATE_DEPENDENCIES} PUBLIC ${PUBLIC_DEPENDENCIES}) +target_link_libraries(GraphicsEngineOpenGL-shared PUBLIC GraphicsEngineOpenGL-static) target_compile_definitions(GraphicsEngineOpenGL-shared PUBLIC ENGINE_DLL=1 PRIVATE BUILDING_DLL=1) if(PLATFORM_WIN32) diff --git a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h index b133b113..4a2b28f5 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h @@ -105,7 +105,7 @@ public: return false; } - GetFactoryFunc = reinterpret_cast( GetProcAddress(hModule, "GetEngineFactoryOpenGL") ); + GetFactoryFunc = reinterpret_cast( GetProcAddress(hModule, "GetEngineFactoryOpenGLInternal") ); if( GetFactoryFunc == NULL ) { std::stringstream ss; @@ -119,9 +119,14 @@ public: #else + IEngineFactoryOpenGL* GetEngineFactoryOpenGLInternal(); + // Do not forget to call System.loadLibrary("GraphicsEngineOpenGL") in Java on Android! API_QUALIFIER - IEngineFactoryOpenGL* GetEngineFactoryOpenGL(); + inline IEngineFactoryOpenGL* GetEngineFactoryOpenGL() + { + return GetEngineFactoryOpenGLInternal(); + } #endif diff --git a/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp b/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp index 58b1c375..419f9921 100644 --- a/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp @@ -21,7 +21,8 @@ * of the possibility of such damages. */ -#include "pch.h" +#include +#include BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, diff --git a/Graphics/GraphicsEngineOpenGL/src/GraphicsEngineOpenGL.def b/Graphics/GraphicsEngineOpenGL/src/GraphicsEngineOpenGL.def index 2d2ee59f..1de05b4c 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GraphicsEngineOpenGL.def +++ b/Graphics/GraphicsEngineOpenGL/src/GraphicsEngineOpenGL.def @@ -1,2 +1,2 @@ EXPORTS - GetEngineFactoryOpenGL \ No newline at end of file + GetEngineFactoryOpenGLInternal \ No newline at end of file diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp index a3e4d276..435a655f 100644 --- a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp @@ -235,8 +235,7 @@ void EngineFactoryOpenGLImpl::CreateHLSL2GLSLConverter(IHLSL2GLSLConverter **ppC } -API_QUALIFIER -Diligent::IEngineFactoryOpenGL* GetEngineFactoryOpenGL() +Diligent::IEngineFactoryOpenGL* GetEngineFactoryOpenGLInternal() { return Diligent::EngineFactoryOpenGLImpl::GetInstance(); } -- cgit v1.2.3