summaryrefslogtreecommitdiff
path: root/src/renderergl2/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderergl2/CMakeLists.txt')
-rw-r--r--src/renderergl2/CMakeLists.txt146
1 files changed, 146 insertions, 0 deletions
diff --git a/src/renderergl2/CMakeLists.txt b/src/renderergl2/CMakeLists.txt
new file mode 100644
index 0000000..b821436
--- /dev/null
+++ b/src/renderergl2/CMakeLists.txt
@@ -0,0 +1,146 @@
+include("${CMAKE_SOURCE_DIR}/cmake/SDL2.cmake")
+
+find_package(OpenGL)
+
+set(PARENT_DIR ${CMAKE_SOURCE_DIR}/src)
+include_directories(
+ ${PARENT_DIR}/jpeg-8c
+ ${PARENT_DIR}/renderercommon
+ ${PARENT_DIR}/nettle-3.3
+ ${SDL2_INCLUDE_DIRS}
+ )
+
+set(GLSL_SHADERS
+ glsl/bokeh_fp.glsl
+ glsl/bokeh_vp.glsl
+ glsl/calclevels4x_fp.glsl
+ glsl/calclevels4x_vp.glsl
+ glsl/depthblur_fp.glsl
+ glsl/depthblur_vp.glsl
+ glsl/dlight_fp.glsl
+ glsl/dlight_vp.glsl
+ glsl/down4x_fp.glsl
+ glsl/down4x_vp.glsl
+ glsl/fogpass_fp.glsl
+ glsl/fogpass_vp.glsl
+ glsl/generic_fp.glsl
+ glsl/generic_vp.glsl
+ glsl/lightall_fp.glsl
+ glsl/lightall_vp.glsl
+ glsl/pshadow_fp.glsl
+ glsl/pshadow_vp.glsl
+ glsl/shadowfill_fp.glsl
+ glsl/shadowfill_vp.glsl
+ glsl/shadowmask_fp.glsl
+ glsl/shadowmask_vp.glsl
+ glsl/ssao_fp.glsl
+ glsl/ssao_vp.glsl
+ glsl/texturecolor_fp.glsl
+ glsl/texturecolor_vp.glsl
+ glsl/tonemap_fp.glsl
+ glsl/tonemap_vp.glsl
+ )
+
+# Converts ^^^GSLS shaders^^^ into const char* C-strings.
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/glsl/)
+foreach(shader ${GLSL_SHADERS})
+ set(in ${CMAKE_CURRENT_SOURCE_DIR}/${shader})
+
+ get_filename_component(out ${in} NAME_WE)
+ set(out ${CMAKE_CURRENT_BINARY_DIR}/glsl/${out}.c)
+
+ get_filename_component(shader ${shader} NAME_WE)
+ message(STATUS "-- Generating embeded GLSL ${shader}")
+
+ file(READ ${in} contents HEX)
+ file(WRITE ${out} "const char *fallbackShader_${shader} = \"")
+
+ string(LENGTH "${contents}" contents_length)
+ math(EXPR contents_length "${contents_length} - 1")
+
+ foreach(iter RANGE 0 ${contents_length} 2)
+ string(SUBSTRING ${contents} ${iter} 2 line)
+ file(APPEND "${out}" "\\x${line}")
+ endforeach()
+ file(APPEND "${out}" "\";\n")
+
+ list(APPEND renderergl2_SHADERS "${out}")
+ set_source_files_properties(${out} PROPERTIES GENERATED TRUE)
+endforeach(shader)
+
+set(renderergl2_SRCS
+ ${renderergl2_SHADERS}
+ tr_local.h
+ tr_dsa.h
+ tr_extramath.h
+ tr_extratypes.h
+ tr_fbo.h
+ tr_postprocess.h
+ tr_animation.cpp
+ tr_backend.cpp
+ tr_bsp.cpp
+ tr_cmds.cpp
+ tr_curve.cpp
+ tr_dsa.cpp
+ tr_extensions.cpp
+ tr_extramath.cpp
+ tr_fbo.cpp
+ tr_flares.cpp
+ tr_glsl.cpp
+ tr_image.cpp
+ tr_image_dds.cpp
+ tr_init.cpp
+ tr_light.cpp
+ tr_main.cpp
+ tr_marks.cpp
+ tr_mesh.cpp
+ tr_model.cpp
+ tr_model_iqm.cpp
+ tr_postprocess.cpp
+ tr_scene.cpp
+ tr_shade.cpp
+ tr_shade_calc.cpp
+ tr_shader.cpp
+ tr_shadows.cpp
+ tr_sky.cpp
+ tr_subs.cpp
+ tr_surface.cpp
+ tr_vbo.cpp
+ tr_world.cpp
+ ${CMAKE_SOURCE_DIR}/src/common/puff.cpp
+ ${CMAKE_SOURCE_DIR}/src/common/q_shared.c
+ ${CMAKE_SOURCE_DIR}/src/common/q_math.c
+ )
+
+if(NOT USE_RENDERER_DLOPEN)
+
+ add_library(
+ renderergl2 STATIC
+ ${renderergl2_SRCS})
+
+ target_link_libraries(
+ renderergl2 renderercommon
+ ${SDL2_LIBRARIES})
+
+else(NOT USE_RENDERER_DLOPEN)
+
+ add_library(
+ renderergl2 SHARED
+ ${renderergl2_SRCS}
+ )
+
+ target_link_libraries(
+ renderergl2
+ renderercommon
+ ${FRAMEWORKS}
+ ${OPENGL_LIBRARIES}
+ ${SDL2_LIBRARIES}
+ )
+ add_custom_command(
+ TARGET renderergl2
+ POST_BUILD COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy ${CMAKE_CURRENT_BINARY_DIR}/librenderergl2${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/renderer_opengl2${CMAKE_SHARED_LIBRARY_SUFFIX}
+ )
+
+endif(NOT USE_RENDERER_DLOPEN)
+