| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- # Add a custom command to generate a new shader_cache_version hash when any of the following files change
- # NOTE: This is an approximation of what files affect shader generation, its possible something else
- # could affect the result, but much more unlikely than the following files. Keeping a list of files
- # like this allows for much better caching since it doesn't force the user to recompile binary shaders every update
- set(VIDEO_CORE "${CMAKE_SOURCE_DIR}/src/video_core")
- if (DEFINED ENV{AZURECIREPO})
- set(BUILD_REPOSITORY $ENV{AZURECIREPO})
- endif()
- if (DEFINED ENV{TITLEBARFORMATIDLE})
- set(TITLE_BAR_FORMAT_IDLE $ENV{TITLEBARFORMATIDLE})
- endif ()
- if (DEFINED ENV{TITLEBARFORMATRUNNING})
- set(TITLE_BAR_FORMAT_RUNNING $ENV{TITLEBARFORMATRUNNING})
- endif ()
- if (DEFINED ENV{DISPLAYVERSION})
- set(DISPLAY_VERSION $ENV{DISPLAYVERSION})
- endif ()
- # Pass the path to git to the GenerateSCMRev.cmake as well
- find_package(Git QUIET)
- add_custom_command(OUTPUT scm_rev.cpp
- COMMAND ${CMAKE_COMMAND}
- -DSRC_DIR="${CMAKE_SOURCE_DIR}"
- -DBUILD_REPOSITORY="${BUILD_REPOSITORY}"
- -DTITLE_BAR_FORMAT_IDLE="${TITLE_BAR_FORMAT_IDLE}"
- -DTITLE_BAR_FORMAT_RUNNING="${TITLE_BAR_FORMAT_RUNNING}"
- -DBUILD_TAG="${BUILD_TAG}"
- -DBUILD_ID="${DISPLAY_VERSION}"
- -DGIT_EXECUTABLE="${GIT_EXECUTABLE}"
- -P "${CMAKE_SOURCE_DIR}/CMakeModules/GenerateSCMRev.cmake"
- DEPENDS
- # WARNING! It was too much work to try and make a common location for this list,
- # so if you need to change it, please update CMakeModules/GenerateSCMRev.cmake as well
- "${VIDEO_CORE}/renderer_opengl/gl_arb_decompiler.cpp"
- "${VIDEO_CORE}/renderer_opengl/gl_arb_decompiler.h"
- "${VIDEO_CORE}/renderer_opengl/gl_shader_cache.cpp"
- "${VIDEO_CORE}/renderer_opengl/gl_shader_cache.h"
- "${VIDEO_CORE}/renderer_opengl/gl_shader_decompiler.cpp"
- "${VIDEO_CORE}/renderer_opengl/gl_shader_decompiler.h"
- "${VIDEO_CORE}/renderer_opengl/gl_shader_disk_cache.cpp"
- "${VIDEO_CORE}/renderer_opengl/gl_shader_disk_cache.h"
- "${VIDEO_CORE}/shader/decode/arithmetic.cpp"
- "${VIDEO_CORE}/shader/decode/arithmetic_half.cpp"
- "${VIDEO_CORE}/shader/decode/arithmetic_half_immediate.cpp"
- "${VIDEO_CORE}/shader/decode/arithmetic_immediate.cpp"
- "${VIDEO_CORE}/shader/decode/arithmetic_integer.cpp"
- "${VIDEO_CORE}/shader/decode/arithmetic_integer_immediate.cpp"
- "${VIDEO_CORE}/shader/decode/bfe.cpp"
- "${VIDEO_CORE}/shader/decode/bfi.cpp"
- "${VIDEO_CORE}/shader/decode/conversion.cpp"
- "${VIDEO_CORE}/shader/decode/ffma.cpp"
- "${VIDEO_CORE}/shader/decode/float_set.cpp"
- "${VIDEO_CORE}/shader/decode/float_set_predicate.cpp"
- "${VIDEO_CORE}/shader/decode/half_set.cpp"
- "${VIDEO_CORE}/shader/decode/half_set_predicate.cpp"
- "${VIDEO_CORE}/shader/decode/hfma2.cpp"
- "${VIDEO_CORE}/shader/decode/image.cpp"
- "${VIDEO_CORE}/shader/decode/integer_set.cpp"
- "${VIDEO_CORE}/shader/decode/integer_set_predicate.cpp"
- "${VIDEO_CORE}/shader/decode/memory.cpp"
- "${VIDEO_CORE}/shader/decode/texture.cpp"
- "${VIDEO_CORE}/shader/decode/other.cpp"
- "${VIDEO_CORE}/shader/decode/predicate_set_predicate.cpp"
- "${VIDEO_CORE}/shader/decode/predicate_set_register.cpp"
- "${VIDEO_CORE}/shader/decode/register_set_predicate.cpp"
- "${VIDEO_CORE}/shader/decode/shift.cpp"
- "${VIDEO_CORE}/shader/decode/video.cpp"
- "${VIDEO_CORE}/shader/decode/warp.cpp"
- "${VIDEO_CORE}/shader/decode/xmad.cpp"
- "${VIDEO_CORE}/shader/ast.cpp"
- "${VIDEO_CORE}/shader/ast.h"
- "${VIDEO_CORE}/shader/compiler_settings.cpp"
- "${VIDEO_CORE}/shader/compiler_settings.h"
- "${VIDEO_CORE}/shader/control_flow.cpp"
- "${VIDEO_CORE}/shader/control_flow.h"
- "${VIDEO_CORE}/shader/decode.cpp"
- "${VIDEO_CORE}/shader/expr.cpp"
- "${VIDEO_CORE}/shader/expr.h"
- "${VIDEO_CORE}/shader/node.h"
- "${VIDEO_CORE}/shader/node_helper.cpp"
- "${VIDEO_CORE}/shader/node_helper.h"
- "${VIDEO_CORE}/shader/registry.cpp"
- "${VIDEO_CORE}/shader/registry.h"
- "${VIDEO_CORE}/shader/shader_ir.cpp"
- "${VIDEO_CORE}/shader/shader_ir.h"
- "${VIDEO_CORE}/shader/track.cpp"
- "${VIDEO_CORE}/shader/transform_feedback.cpp"
- "${VIDEO_CORE}/shader/transform_feedback.h"
- # and also check that the scm_rev files haven't changed
- "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in"
- "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.h"
- # technically we should regenerate if the git version changed, but its not worth the effort imo
- "${CMAKE_SOURCE_DIR}/CMakeModules/GenerateSCMRev.cmake"
- )
- add_library(common STATIC
- algorithm.h
- alignment.h
- assert.h
- detached_tasks.cpp
- detached_tasks.h
- bit_field.h
- bit_util.h
- cityhash.cpp
- cityhash.h
- color.h
- common_funcs.h
- common_paths.h
- common_types.h
- dynamic_library.cpp
- dynamic_library.h
- file_util.cpp
- file_util.h
- hash.h
- hex_util.cpp
- hex_util.h
- logging/backend.cpp
- logging/backend.h
- logging/filter.cpp
- logging/filter.h
- logging/log.h
- logging/text_formatter.cpp
- logging/text_formatter.h
- lz4_compression.cpp
- lz4_compression.h
- math_util.h
- memory_detect.cpp
- memory_detect.h
- memory_hook.cpp
- memory_hook.h
- microprofile.cpp
- microprofile.h
- microprofileui.h
- misc.cpp
- multi_level_queue.h
- page_table.cpp
- page_table.h
- param_package.cpp
- param_package.h
- quaternion.h
- ring_buffer.h
- scm_rev.cpp
- scm_rev.h
- scope_exit.h
- string_util.cpp
- string_util.h
- swap.h
- telemetry.cpp
- telemetry.h
- thread.cpp
- thread.h
- thread_queue_list.h
- threadsafe_queue.h
- time_zone.cpp
- time_zone.h
- timer.cpp
- timer.h
- uint128.cpp
- uint128.h
- uuid.cpp
- uuid.h
- vector_math.h
- virtual_buffer.cpp
- virtual_buffer.h
- web_result.h
- zstd_compression.cpp
- zstd_compression.h
- )
- if(ARCHITECTURE_x86_64)
- target_sources(common
- PRIVATE
- x64/cpu_detect.cpp
- x64/cpu_detect.h
- x64/xbyak_abi.h
- x64/xbyak_util.h
- )
- endif()
- create_target_directory_groups(common)
- target_link_libraries(common PUBLIC Boost::boost fmt::fmt microprofile)
- target_link_libraries(common PRIVATE lz4::lz4 zstd::zstd xbyak)
|