[client] use cmake to generate renderers/fonts/clipboards headers/code

This is in preperation of cmake options to enable/disable various
functionallity.
This commit is contained in:
Geoffrey McRae
2019-03-28 19:56:14 +11:00
parent b524c077a4
commit 3e021f3a6b
52 changed files with 176 additions and 168 deletions

View File

@@ -1,11 +1,48 @@
cmake_minimum_required(VERSION 3.0)
project(renderers LANGUAGES C)
add_subdirectory(opengl)
add_subdirectory(egl)
set(RENDERER_H "${CMAKE_BINARY_DIR}/include/dynamic/renderers.h")
set(RENDERER_C "${CMAKE_BINARY_DIR}/src/renderers.c")
add_library(renderers INTERFACE)
target_link_libraries(renderers INTERFACE
renderer_opengl
renderer_egl
file(WRITE ${RENDERER_H} "#include \"interface/renderer.h\"\n\n")
file(APPEND ${RENDERER_H} "extern LG_Renderer * LG_Renderers[];\n\n")
file(WRITE ${RENDERER_C} "#include \"interface/renderer.h\"\n\n")
file(APPEND ${RENDERER_C} "#include <stddef.h>\n\n")
set(RENDERERS)
set(RENDERERS_LINK)
function(add_renderer name)
set(RENDERERS "${RENDERERS};${name}" PARENT_SCOPE)
set(RENDERERS_LINK "${RENDERERS_LINK};renderer_${name}" PARENT_SCOPE)
add_subdirectory(${name})
endfunction()
# Add/remove renderers here!
add_renderer(EGL)
add_renderer(OpenGL)
list(REMOVE_AT RENDERERS 0)
list(REMOVE_AT RENDERERS_LINK 0)
list(LENGTH RENDERERS RENDERER_COUNT)
file(APPEND ${RENDERER_H} "#define LG_RENDERER_COUNT ${RENDERER_COUNT}\n")
foreach(renderer ${RENDERERS})
file(APPEND ${RENDERER_C} "extern LG_Renderer LGR_${renderer};\n")
endforeach()
file(APPEND ${RENDERER_C} "\nconst LG_Renderer * LG_Renderers[] =\n{\n")
foreach(renderer ${RENDERERS})
file(APPEND ${RENDERER_C} " &LGR_${renderer},\n")
endforeach()
file(APPEND ${RENDERER_C} " NULL\n};")
add_library(renderers STATIC
${RENDERER_C}
)
target_link_libraries(renderers
${RENDERERS_LINK}
)

View File

@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.0)
project(renderer_egl LANGUAGES C)
project(renderer_EGL LANGUAGES C)
find_package(PkgConfig)
pkg_check_modules(RENDERER_EGL_PKGCONFIG REQUIRED
@@ -29,7 +29,7 @@ make_object(
shader/splash_logo.frag
)
add_library(renderer_egl STATIC
add_library(renderer_EGL STATIC
egl.c
shader.c
texture.c
@@ -43,11 +43,12 @@ add_library(renderer_egl STATIC
${EGL_SHADER_OBJS}
)
target_link_libraries(renderer_egl
target_link_libraries(renderer_EGL
${RENDERER_EGL_PKGCONFIG_LIBRARIES}
fonts
)
target_include_directories(renderer_egl
target_include_directories(renderer_EGL
PRIVATE
src
${EGL_SHADER_INCS}

View File

@@ -21,7 +21,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
#include <stdbool.h>
#include "lg-fonts.h"
#include "interface/font.h"
typedef struct EGL_Alert EGL_Alert;

View File

@@ -21,7 +21,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
#include "debug.h"
#include "utils.h"
#include "lg-fonts.h"
#include "dynamic/fonts.h"
#include <SDL2/SDL_syswm.h>
#include <SDL2/SDL_egl.h>

View File

@@ -21,7 +21,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
#include <stdbool.h>
#include "lg-fonts.h"
#include "interface/font.h"
typedef struct EGL_FPS EGL_FPS;

View File

@@ -21,8 +21,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA
#include <stdbool.h>
#include "lg-fonts.h"
typedef struct EGL_Splash EGL_Splash;
bool egl_splash_init(EGL_Splash ** splash);

View File

@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.0)
project(renderer_opengl LANGUAGES C)
project(renderer_Opengl LANGUAGES C)
find_package(PkgConfig)
pkg_check_modules(RENDERER_OPENGL_PKGCONFIG REQUIRED
@@ -7,16 +7,17 @@ pkg_check_modules(RENDERER_OPENGL_PKGCONFIG REQUIRED
glu
)
add_library(renderer_opengl STATIC
add_library(renderer_OpenGL STATIC
opengl.c
)
target_link_libraries(renderer_opengl
target_link_libraries(renderer_OpenGL
${RENDERER_OPENGL_PKGCONFIG_LIBRARIES}
decoders
fonts
)
target_include_directories(renderer_opengl
target_include_directories(renderer_OpenGL
PRIVATE
src
${RENDERER_OPENGL_PKGCONFIG_INCLUDE_DIRS}

View File

@@ -33,7 +33,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
#include "debug.h"
#include "utils.h"
#include "lg-decoders.h"
#include "lg-fonts.h"
#include "dynamic/fonts.h"
#include "ll.h"
#define BUFFER_COUNT 2