2019-09-07 22:28:32 +01: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")
|
|
|
|
if (DEFINED ENV{CI})
|
|
|
|
if (DEFINED ENV{TRAVIS})
|
2017-01-15 18:43:22 +00:00
|
|
|
set(BUILD_REPOSITORY $ENV{TRAVIS_REPO_SLUG})
|
2018-05-27 03:05:21 +01:00
|
|
|
set(BUILD_TAG $ENV{TRAVIS_TAG})
|
2019-09-07 22:28:32 +01:00
|
|
|
elseif(DEFINED ENV{APPVEYOR})
|
2017-01-15 18:43:22 +00:00
|
|
|
set(BUILD_REPOSITORY $ENV{APPVEYOR_REPO_NAME})
|
2018-05-27 03:05:21 +01:00
|
|
|
set(BUILD_TAG $ENV{APPVEYOR_REPO_TAG_NAME})
|
2017-01-15 18:43:22 +00:00
|
|
|
endif()
|
|
|
|
endif()
|
2020-01-16 06:52:41 +00:00
|
|
|
|
|
|
|
# Pass the path to git to the GenerateSCMRev.cmake as well
|
|
|
|
find_package(Git QUIET)
|
|
|
|
|
2019-09-07 22:28:32 +01:00
|
|
|
add_custom_command(OUTPUT scm_rev.cpp
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
-DSRC_DIR="${CMAKE_SOURCE_DIR}"
|
|
|
|
-DBUILD_REPOSITORY="${BUILD_REPOSITORY}"
|
|
|
|
-DBUILD_TAG="${BUILD_TAG}"
|
2020-01-16 06:52:41 +00:00
|
|
|
-DGIT_EXECUTABLE="${GIT_EXECUTABLE}"
|
2019-09-07 22:28:32 +01:00
|
|
|
-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_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}/renderer_opengl/gl_shader_gen.cpp"
|
|
|
|
"${VIDEO_CORE}/renderer_opengl/gl_shader_gen.h"
|
2022-09-03 13:44:40 +01:00
|
|
|
"${VIDEO_CORE}/renderer_opengl/gl_shader_util.cpp"
|
|
|
|
"${VIDEO_CORE}/renderer_opengl/gl_shader_util.h"
|
2019-09-07 22:28:32 +01:00
|
|
|
"${VIDEO_CORE}/shader/shader.cpp"
|
|
|
|
"${VIDEO_CORE}/shader/shader.h"
|
|
|
|
"${VIDEO_CORE}/pica.cpp"
|
|
|
|
"${VIDEO_CORE}/pica.h"
|
|
|
|
"${VIDEO_CORE}/regs_framebuffer.h"
|
|
|
|
"${VIDEO_CORE}/regs_lighting.h"
|
|
|
|
"${VIDEO_CORE}/regs_pipeline.h"
|
|
|
|
"${VIDEO_CORE}/regs_rasterizer.h"
|
|
|
|
"${VIDEO_CORE}/regs_shader.h"
|
|
|
|
"${VIDEO_CORE}/regs_texturing.h"
|
|
|
|
"${VIDEO_CORE}/regs.cpp"
|
|
|
|
"${VIDEO_CORE}/regs.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"
|
|
|
|
)
|
2014-04-24 02:43:57 +01:00
|
|
|
|
2017-12-10 23:55:03 +00:00
|
|
|
add_library(common STATIC
|
|
|
|
alignment.h
|
2017-10-31 09:02:42 +00:00
|
|
|
announce_multiplayer_room.h
|
2019-12-27 18:52:33 +00:00
|
|
|
archives.h
|
2017-12-10 23:55:03 +00:00
|
|
|
assert.h
|
2022-06-21 19:59:36 +01:00
|
|
|
atomic_ops.h
|
2018-09-12 17:22:48 +01:00
|
|
|
detached_tasks.cpp
|
|
|
|
detached_tasks.h
|
2017-12-10 23:55:03 +00:00
|
|
|
bit_field.h
|
|
|
|
bit_set.h
|
2018-01-15 09:03:08 +00:00
|
|
|
cityhash.cpp
|
|
|
|
cityhash.h
|
2017-12-10 23:55:03 +00:00
|
|
|
color.h
|
|
|
|
common_funcs.h
|
|
|
|
common_paths.h
|
|
|
|
common_types.h
|
2019-12-27 18:52:33 +00:00
|
|
|
construct.h
|
2017-12-10 23:55:03 +00:00
|
|
|
file_util.cpp
|
|
|
|
file_util.h
|
|
|
|
hash.h
|
|
|
|
linear_disk_cache.h
|
|
|
|
logging/backend.cpp
|
|
|
|
logging/backend.h
|
|
|
|
logging/filter.cpp
|
|
|
|
logging/filter.h
|
2022-11-04 22:32:57 +00:00
|
|
|
logging/formatter.h
|
2017-12-10 23:55:03 +00:00
|
|
|
logging/log.h
|
|
|
|
logging/text_formatter.cpp
|
|
|
|
logging/text_formatter.h
|
|
|
|
math_util.h
|
2020-01-04 22:39:54 +00:00
|
|
|
memory_ref.h
|
|
|
|
memory_ref.cpp
|
2017-12-10 23:55:03 +00:00
|
|
|
microprofile.cpp
|
|
|
|
microprofile.h
|
|
|
|
microprofileui.h
|
|
|
|
misc.cpp
|
|
|
|
param_package.cpp
|
|
|
|
param_package.h
|
|
|
|
quaternion.h
|
2018-09-08 20:42:25 +01:00
|
|
|
ring_buffer.h
|
2017-12-10 23:55:03 +00:00
|
|
|
scm_rev.cpp
|
|
|
|
scm_rev.h
|
|
|
|
scope_exit.h
|
2019-08-11 00:20:09 +01:00
|
|
|
serialization/atomic.h
|
2019-12-27 18:52:33 +00:00
|
|
|
serialization/boost_discrete_interval.hpp
|
2019-08-12 17:01:33 +01:00
|
|
|
serialization/boost_flat_set.h
|
2020-01-06 20:03:40 +00:00
|
|
|
serialization/boost_small_vector.hpp
|
2019-08-11 00:20:09 +01:00
|
|
|
serialization/boost_vector.hpp
|
2017-12-10 23:55:03 +00:00
|
|
|
string_util.cpp
|
|
|
|
string_util.h
|
|
|
|
swap.h
|
|
|
|
telemetry.cpp
|
|
|
|
telemetry.h
|
2019-08-06 16:54:12 +01:00
|
|
|
texture.cpp
|
|
|
|
texture.h
|
2017-12-10 23:55:03 +00:00
|
|
|
thread.cpp
|
|
|
|
thread.h
|
|
|
|
thread_queue_list.h
|
|
|
|
threadsafe_queue.h
|
|
|
|
timer.cpp
|
|
|
|
timer.h
|
|
|
|
vector_math.h
|
2018-10-26 16:01:00 +01:00
|
|
|
web_result.h
|
2019-09-07 22:28:32 +01:00
|
|
|
zstd_compression.cpp
|
|
|
|
zstd_compression.h
|
2017-12-10 23:55:03 +00:00
|
|
|
)
|
2014-08-24 02:22:05 +01:00
|
|
|
|
2015-08-15 03:29:08 +01:00
|
|
|
if(ARCHITECTURE_x86_64)
|
2017-12-10 23:55:03 +00:00
|
|
|
target_sources(common
|
|
|
|
PRIVATE
|
2015-08-12 05:19:20 +01:00
|
|
|
x64/cpu_detect.cpp
|
2015-07-22 01:08:49 +01:00
|
|
|
|
2015-08-12 05:19:20 +01:00
|
|
|
x64/cpu_detect.h
|
2016-12-12 09:23:08 +00:00
|
|
|
x64/xbyak_abi.h
|
|
|
|
x64/xbyak_util.h
|
2017-12-10 23:55:03 +00:00
|
|
|
)
|
2022-06-21 19:59:36 +01:00
|
|
|
elseif(ARCHITECTURE_arm64)
|
2022-04-04 19:13:39 +01:00
|
|
|
target_sources(common
|
|
|
|
PRIVATE
|
|
|
|
aarch64/cpu_detect.cpp
|
|
|
|
aarch64/cpu_detect.h
|
|
|
|
)
|
2015-07-22 00:49:33 +01:00
|
|
|
endif()
|
|
|
|
|
2017-12-10 23:55:03 +00:00
|
|
|
create_target_directory_groups(common)
|
2014-04-29 03:40:39 +01:00
|
|
|
|
2022-09-21 17:36:12 +01:00
|
|
|
target_link_libraries(common PUBLIC fmt::fmt microprofile Boost::boost Boost::serialization)
|
2019-09-07 22:28:32 +01:00
|
|
|
target_link_libraries(common PRIVATE libzstd_static)
|
2022-09-21 17:36:12 +01:00
|
|
|
set_target_properties(common PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
|
|
|
|
|
2016-12-12 09:23:08 +00:00
|
|
|
if (ARCHITECTURE_x86_64)
|
2017-05-28 02:26:55 +01:00
|
|
|
target_link_libraries(common PRIVATE xbyak)
|
2016-12-12 09:23:08 +00:00
|
|
|
endif()
|