2019-01-13 23:58:46 -05:00
|
|
|
# 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")
|
2019-11-05 21:37:27 -05:00
|
|
|
if (DEFINED ENV{AZURECIREPO})
|
|
|
|
set(BUILD_REPOSITORY $ENV{AZURECIREPO})
|
2019-02-06 19:55:14 -05:00
|
|
|
endif()
|
2019-10-05 00:09:49 -04:00
|
|
|
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 ()
|
2020-01-16 02:12:50 -05:00
|
|
|
|
|
|
|
# Pass the path to git to the GenerateSCMRev.cmake as well
|
|
|
|
find_package(Git QUIET)
|
|
|
|
|
2019-01-13 23:58:46 -05:00
|
|
|
add_custom_command(OUTPUT scm_rev.cpp
|
2019-02-06 19:55:14 -05:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
-DSRC_DIR="${CMAKE_SOURCE_DIR}"
|
|
|
|
-DBUILD_REPOSITORY="${BUILD_REPOSITORY}"
|
2019-10-05 00:09:49 -04:00
|
|
|
-DTITLE_BAR_FORMAT_IDLE="${TITLE_BAR_FORMAT_IDLE}"
|
|
|
|
-DTITLE_BAR_FORMAT_RUNNING="${TITLE_BAR_FORMAT_RUNNING}"
|
2019-02-06 19:55:14 -05:00
|
|
|
-DBUILD_TAG="${BUILD_TAG}"
|
2019-10-05 00:09:49 -04:00
|
|
|
-DBUILD_ID="${DISPLAY_VERSION}"
|
2020-01-16 02:12:50 -05:00
|
|
|
-DGIT_EXECUTABLE="${GIT_EXECUTABLE}"
|
2019-02-06 19:55:14 -05:00
|
|
|
-P "${CMAKE_SOURCE_DIR}/CMakeModules/GenerateSCMRev.cmake"
|
2019-01-13 23:58:46 -05:00
|
|
|
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
|
2020-06-03 17:07:35 -04:00
|
|
|
"${VIDEO_CORE}/renderer_opengl/gl_arb_decompiler.cpp"
|
|
|
|
"${VIDEO_CORE}/renderer_opengl/gl_arb_decompiler.h"
|
2019-01-13 23:58:46 -05:00
|
|
|
"${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"
|
2019-04-27 01:07:18 -04:00
|
|
|
"${VIDEO_CORE}/shader/decode/image.cpp"
|
2019-01-13 23:58:46 -05:00
|
|
|
"${VIDEO_CORE}/shader/decode/integer_set.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/decode/integer_set_predicate.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/decode/memory.cpp"
|
2019-02-22 00:19:45 -05:00
|
|
|
"${VIDEO_CORE}/shader/decode/texture.cpp"
|
2019-01-13 23:58:46 -05:00
|
|
|
"${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"
|
2019-08-09 22:50:21 -04:00
|
|
|
"${VIDEO_CORE}/shader/decode/warp.cpp"
|
2019-01-13 23:58:46 -05:00
|
|
|
"${VIDEO_CORE}/shader/decode/xmad.cpp"
|
2019-06-28 20:54:21 -04:00
|
|
|
"${VIDEO_CORE}/shader/ast.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/ast.h"
|
2019-08-16 16:25:02 -04:00
|
|
|
"${VIDEO_CORE}/shader/compiler_settings.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/compiler_settings.h"
|
2019-09-23 14:02:02 -04:00
|
|
|
"${VIDEO_CORE}/shader/control_flow.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/control_flow.h"
|
2019-01-13 23:58:46 -05:00
|
|
|
"${VIDEO_CORE}/shader/decode.cpp"
|
2019-06-28 20:54:21 -04:00
|
|
|
"${VIDEO_CORE}/shader/expr.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/expr.h"
|
2019-06-06 19:11:48 -04:00
|
|
|
"${VIDEO_CORE}/shader/node.h"
|
|
|
|
"${VIDEO_CORE}/shader/node_helper.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/node_helper.h"
|
2020-02-28 18:53:10 -05:00
|
|
|
"${VIDEO_CORE}/shader/registry.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/registry.h"
|
2019-01-13 23:58:46 -05:00
|
|
|
"${VIDEO_CORE}/shader/shader_ir.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/shader_ir.h"
|
|
|
|
"${VIDEO_CORE}/shader/track.cpp"
|
2020-03-02 16:54:08 -05:00
|
|
|
"${VIDEO_CORE}/shader/transform_feedback.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/transform_feedback.h"
|
2019-01-13 23:58:46 -05:00
|
|
|
# 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"
|
|
|
|
)
|
2014-04-23 21:43:57 -04:00
|
|
|
|
2018-01-17 19:37:34 -05:00
|
|
|
add_library(common STATIC
|
2019-10-15 14:47:42 -04:00
|
|
|
algorithm.h
|
2018-01-17 19:37:34 -05:00
|
|
|
alignment.h
|
|
|
|
assert.h
|
2020-03-07 17:59:42 -05:00
|
|
|
atomic_ops.cpp
|
|
|
|
atomic_ops.h
|
2018-09-16 14:05:51 -04:00
|
|
|
detached_tasks.cpp
|
|
|
|
detached_tasks.h
|
2020-11-19 23:52:37 -05:00
|
|
|
bit_cast.h
|
2018-01-17 19:37:34 -05:00
|
|
|
bit_field.h
|
2018-12-19 15:25:12 -05:00
|
|
|
bit_util.h
|
2018-04-07 00:48:22 -04:00
|
|
|
cityhash.cpp
|
|
|
|
cityhash.h
|
2018-01-17 19:37:34 -05:00
|
|
|
color.h
|
|
|
|
common_funcs.h
|
|
|
|
common_paths.h
|
|
|
|
common_types.h
|
2020-08-03 07:28:54 -04:00
|
|
|
concepts.h
|
2020-11-25 21:03:50 -05:00
|
|
|
div_ceil.h
|
2020-03-16 16:48:53 -04:00
|
|
|
dynamic_library.cpp
|
|
|
|
dynamic_library.h
|
2020-02-04 14:06:23 -05:00
|
|
|
fiber.cpp
|
|
|
|
fiber.h
|
2018-01-17 19:37:34 -05:00
|
|
|
file_util.cpp
|
|
|
|
file_util.h
|
|
|
|
hash.h
|
2018-08-09 20:43:45 -04:00
|
|
|
hex_util.cpp
|
|
|
|
hex_util.h
|
2018-01-17 19:37:34 -05:00
|
|
|
logging/backend.cpp
|
|
|
|
logging/backend.h
|
|
|
|
logging/filter.cpp
|
|
|
|
logging/filter.h
|
|
|
|
logging/log.h
|
|
|
|
logging/text_formatter.cpp
|
|
|
|
logging/text_formatter.h
|
2019-02-08 00:45:50 -05:00
|
|
|
lz4_compression.cpp
|
|
|
|
lz4_compression.h
|
2018-01-17 19:37:34 -05:00
|
|
|
math_util.h
|
2020-05-17 14:45:12 -04:00
|
|
|
memory_detect.cpp
|
|
|
|
memory_detect.h
|
2019-03-02 15:20:28 -05:00
|
|
|
memory_hook.cpp
|
|
|
|
memory_hook.h
|
2018-01-17 19:37:34 -05:00
|
|
|
microprofile.cpp
|
|
|
|
microprofile.h
|
|
|
|
microprofileui.h
|
|
|
|
misc.cpp
|
2019-03-15 22:50:57 -04:00
|
|
|
multi_level_queue.h
|
2019-03-02 15:20:28 -05:00
|
|
|
page_table.cpp
|
|
|
|
page_table.h
|
2018-01-17 19:37:34 -05:00
|
|
|
param_package.cpp
|
|
|
|
param_package.h
|
|
|
|
quaternion.h
|
2018-09-08 09:28:39 -04:00
|
|
|
ring_buffer.h
|
2018-01-17 19:37:34 -05:00
|
|
|
scm_rev.cpp
|
|
|
|
scm_rev.h
|
|
|
|
scope_exit.h
|
2020-02-04 10:23:12 -05:00
|
|
|
spin_lock.cpp
|
|
|
|
spin_lock.h
|
2020-10-26 23:07:36 -04:00
|
|
|
stream.cpp
|
|
|
|
stream.h
|
2018-01-17 19:37:34 -05:00
|
|
|
string_util.cpp
|
|
|
|
string_util.h
|
|
|
|
swap.h
|
|
|
|
telemetry.cpp
|
|
|
|
telemetry.h
|
|
|
|
thread.cpp
|
|
|
|
thread.h
|
|
|
|
thread_queue_list.h
|
|
|
|
threadsafe_queue.h
|
2020-05-11 17:51:26 -04:00
|
|
|
time_zone.cpp
|
|
|
|
time_zone.h
|
2018-01-17 19:37:34 -05:00
|
|
|
timer.cpp
|
|
|
|
timer.h
|
2019-02-15 18:26:41 -05:00
|
|
|
uint128.cpp
|
|
|
|
uint128.h
|
2018-12-18 09:07:25 -05:00
|
|
|
uuid.cpp
|
|
|
|
uuid.h
|
2018-01-17 19:37:34 -05:00
|
|
|
vector_math.h
|
2020-04-08 17:35:07 -04:00
|
|
|
virtual_buffer.cpp
|
|
|
|
virtual_buffer.h
|
2020-02-09 15:53:22 -05:00
|
|
|
wall_clock.cpp
|
|
|
|
wall_clock.h
|
2019-02-08 17:11:00 -05:00
|
|
|
zstd_compression.cpp
|
|
|
|
zstd_compression.h
|
2018-01-17 19:37:34 -05:00
|
|
|
)
|
2014-08-23 21:22:05 -04:00
|
|
|
|
2015-08-14 22:29:08 -04:00
|
|
|
if(ARCHITECTURE_x86_64)
|
2018-01-17 19:37:34 -05:00
|
|
|
target_sources(common
|
|
|
|
PRIVATE
|
2015-08-12 00:19:20 -04:00
|
|
|
x64/cpu_detect.cpp
|
|
|
|
x64/cpu_detect.h
|
2020-02-09 15:53:22 -05:00
|
|
|
x64/native_clock.cpp
|
|
|
|
x64/native_clock.h
|
2020-05-29 20:55:27 -04:00
|
|
|
x64/xbyak_abi.h
|
|
|
|
x64/xbyak_util.h
|
2018-01-17 19:37:34 -05:00
|
|
|
)
|
2015-07-21 19:49:33 -04:00
|
|
|
endif()
|
|
|
|
|
2020-10-30 15:02:02 -04:00
|
|
|
if (MSVC)
|
|
|
|
target_compile_definitions(common PRIVATE
|
|
|
|
# The standard library doesn't provide any replacement for codecvt yet
|
|
|
|
# so we can disable this deprecation warning for the time being.
|
|
|
|
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
|
|
|
)
|
|
|
|
target_compile_options(common PRIVATE
|
|
|
|
/W4
|
|
|
|
/WX
|
|
|
|
)
|
|
|
|
else()
|
|
|
|
target_compile_options(common PRIVATE
|
|
|
|
-Werror
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2018-01-17 19:37:34 -05:00
|
|
|
create_target_directory_groups(common)
|
2020-06-19 19:46:43 -04:00
|
|
|
find_package(Boost 1.71 COMPONENTS context headers REQUIRED)
|
2014-04-28 22:40:39 -04:00
|
|
|
|
2020-07-10 00:04:06 -04:00
|
|
|
target_link_libraries(common PUBLIC ${Boost_LIBRARIES} fmt::fmt microprofile)
|
2020-09-28 21:11:39 -04:00
|
|
|
target_link_libraries(common PRIVATE lz4::lz4 xbyak)
|
|
|
|
if (MSVC)
|
|
|
|
target_link_libraries(common PRIVATE zstd::zstd)
|
|
|
|
else()
|
|
|
|
target_link_libraries(common PRIVATE zstd)
|
|
|
|
endif()
|