build: route system dependency include paths and pin the shader cache to package versions
This commit is contained in:
parent
96ad950914
commit
6ad5c61f1a
|
|
@ -1,24 +1,24 @@
|
|||
# Resolves the third-party libraries from the system instead of the bundled
|
||||
# submodules when ANYPS5_USE_SYSTEM_DEPS is ON. Every package is required: a
|
||||
# missing one fails the configure and nothing falls back to the submodule.
|
||||
#
|
||||
# The system packages are exposed under the same target names the bundled
|
||||
# submodules use (SDL2-static, freetype, glslang, SPIRV, glslang-standalone,
|
||||
# SPIRV-Tools-opt, SPIRV-Tools-static) so the rest of the build does not need
|
||||
# to know which path was taken.
|
||||
set(ANYPS5_VULKAN_HEADERS_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include")
|
||||
set(ANYPS5_SPIRV_HEADERS_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include")
|
||||
set(ANYPS5_SDL2_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include")
|
||||
set(ANYPS5_GLSLANG_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/3rdparty/glslang")
|
||||
set(ANYPS5_SPIRV_HEADERS_SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers")
|
||||
set(ANYPS5_GLSLANG_SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/glslang")
|
||||
|
||||
if(NOT ANYPS5_USE_SYSTEM_DEPS)
|
||||
return()
|
||||
endif()
|
||||
|
||||
find_package(SDL2 CONFIG REQUIRED)
|
||||
# The prx libraries are shared objects, so they need a position-independent
|
||||
# SDL2. Distribution static builds are usually not PIC, so link the shared one.
|
||||
if(NOT TARGET SDL2::SDL2)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: SDL2 was found but does not provide SDL2::SDL2")
|
||||
endif()
|
||||
add_library(SDL2-static INTERFACE)
|
||||
target_link_libraries(SDL2-static INTERFACE SDL2::SDL2)
|
||||
get_target_property(ANYPS5_SDL2_INCLUDE_DIR SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(NOT ANYPS5_SDL2_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: SDL2::SDL2 exposes no INTERFACE_INCLUDE_DIRECTORIES")
|
||||
endif()
|
||||
|
||||
find_package(Freetype REQUIRED)
|
||||
if(NOT TARGET Freetype::Freetype)
|
||||
|
|
@ -31,9 +31,12 @@ find_package(VulkanHeaders CONFIG REQUIRED)
|
|||
if(NOT TARGET Vulkan::Headers)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: Vulkan-Headers was found but does not provide Vulkan::Headers")
|
||||
endif()
|
||||
get_target_property(ANYPS5_VULKAN_INCLUDE_DIRS Vulkan::Headers INTERFACE_INCLUDE_DIRECTORIES)
|
||||
get_target_property(ANYPS5_VULKAN_HEADERS_INCLUDE_DIR Vulkan::Headers INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(NOT ANYPS5_VULKAN_HEADERS_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: Vulkan::Headers exposes no INTERFACE_INCLUDE_DIRECTORIES")
|
||||
endif()
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_INCLUDES ${ANYPS5_VULKAN_INCLUDE_DIRS})
|
||||
set(CMAKE_REQUIRED_INCLUDES ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
check_cxx_source_compiles("#include <vulkan/vulkan.h>\nint main() { VkPhysicalDeviceMaintenance8FeaturesKHR features{}; (void)features; return 0; }" ANYPS5_VULKAN_HAS_MAINTENANCE8)
|
||||
unset(CMAKE_REQUIRED_INCLUDES)
|
||||
if(NOT ANYPS5_VULKAN_HAS_MAINTENANCE8)
|
||||
|
|
@ -44,6 +47,10 @@ find_package(SPIRV-Headers CONFIG REQUIRED)
|
|||
if(NOT TARGET SPIRV-Headers::SPIRV-Headers)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: SPIRV-Headers was found but does not provide SPIRV-Headers::SPIRV-Headers")
|
||||
endif()
|
||||
get_target_property(ANYPS5_SPIRV_HEADERS_INCLUDE_DIR SPIRV-Headers::SPIRV-Headers INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(NOT ANYPS5_SPIRV_HEADERS_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: SPIRV-Headers::SPIRV-Headers exposes no INTERFACE_INCLUDE_DIRECTORIES")
|
||||
endif()
|
||||
|
||||
find_package(glslang CONFIG REQUIRED)
|
||||
if(NOT TARGET glslang::glslang OR NOT TARGET glslang::SPIRV)
|
||||
|
|
@ -53,10 +60,6 @@ add_library(glslang INTERFACE)
|
|||
target_link_libraries(glslang INTERFACE glslang::glslang)
|
||||
add_library(SPIRV INTERFACE)
|
||||
target_link_libraries(SPIRV INTERFACE glslang::SPIRV)
|
||||
|
||||
# The bundled glslang has both <SPIRV/...> and <glslang/...> under one root; the
|
||||
# system install keeps <glslang/...> under <prefix>/include and the rest,
|
||||
# including <SPIRV/GlslangToSpv.h>, under <prefix>/include/glslang.
|
||||
find_path(ANYPS5_GLSLANG_PUBLIC_INCLUDE_DIR NAMES glslang/Public/ShaderLang.h)
|
||||
if(NOT ANYPS5_GLSLANG_PUBLIC_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: glslang/Public/ShaderLang.h was not found; the glslang headers are incomplete")
|
||||
|
|
@ -65,6 +68,7 @@ set(ANYPS5_GLSLANG_SPIRV_INCLUDE_DIR "${ANYPS5_GLSLANG_PUBLIC_INCLUDE_DIR}/glsla
|
|||
if(NOT EXISTS "${ANYPS5_GLSLANG_SPIRV_INCLUDE_DIR}/SPIRV/GlslangToSpv.h")
|
||||
message(FATAL_ERROR "ANYPS5_USE_SYSTEM_DEPS: ${ANYPS5_GLSLANG_SPIRV_INCLUDE_DIR}/SPIRV/GlslangToSpv.h was not found")
|
||||
endif()
|
||||
set(ANYPS5_GLSLANG_INCLUDE_DIRS "${ANYPS5_GLSLANG_PUBLIC_INCLUDE_DIR};${ANYPS5_GLSLANG_SPIRV_INCLUDE_DIR}")
|
||||
|
||||
find_program(ANYPS5_GLSLANG_STANDALONE_EXECUTABLE NAMES glslang glslangValidator)
|
||||
if(NOT ANYPS5_GLSLANG_STANDALONE_EXECUTABLE)
|
||||
|
|
@ -80,22 +84,15 @@ if(ANYPS5_ENABLE_SPIRV_TOOLS)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
set(_anyps5_system_include_targets
|
||||
SDL2::SDL2
|
||||
Freetype::Freetype
|
||||
Vulkan::Headers
|
||||
SPIRV-Headers::SPIRV-Headers
|
||||
glslang::glslang
|
||||
glslang::SPIRV
|
||||
)
|
||||
set(_anyps5_system_includes "")
|
||||
foreach(_target IN LISTS _anyps5_system_include_targets)
|
||||
if(TARGET ${_target})
|
||||
get_target_property(_target_includes ${_target} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(_target_includes)
|
||||
list(APPEND _anyps5_system_includes ${_target_includes})
|
||||
endif()
|
||||
set(ANYPS5_SYSTEM_DEPS_STAMP "")
|
||||
list(APPEND ANYPS5_SYSTEM_DEPS_PACKAGES VulkanHeaders SPIRV-Headers glslang)
|
||||
if(ANYPS5_ENABLE_SPIRV_TOOLS)
|
||||
list(APPEND ANYPS5_SYSTEM_DEPS_PACKAGES SPIRV-Tools-opt)
|
||||
endif()
|
||||
foreach(_package IN LISTS ANYPS5_SYSTEM_DEPS_PACKAGES)
|
||||
set(_version "unknown")
|
||||
if(DEFINED ${_package}_VERSION)
|
||||
set(_version "${${_package}_VERSION}")
|
||||
endif()
|
||||
string(APPEND ANYPS5_SYSTEM_DEPS_STAMP " ${_package}=${_version}")
|
||||
endforeach()
|
||||
list(APPEND _anyps5_system_includes ${ANYPS5_GLSLANG_SPIRV_INCLUDE_DIR} ${ANYPS5_GLSLANG_PUBLIC_INCLUDE_DIR})
|
||||
include_directories(SYSTEM ${_anyps5_system_includes})
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ if(BUILD_TESTING)
|
|||
endif()
|
||||
|
||||
add_test_executable(agc_shader_fusion_tests EXCLUDE_FROM_ALL tests/ShaderFusion.cpp)
|
||||
target_include_directories(agc_shader_fusion_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include ${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include)
|
||||
target_include_directories(agc_shader_fusion_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR} ${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(agc_shader_fusion_tests PRIVATE libSceAgc libSceAgcDriver libc)
|
||||
set_target_properties(agc_shader_fusion_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_shader_fusion_tests)
|
||||
|
|
|
|||
|
|
@ -224,8 +224,8 @@ target_include_directories(libSceAgcDriver PRIVATE
|
|||
${LIBS_INCLUDE_DIR}
|
||||
${agcTextureDetileGeneratedRoot}
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/RdnaDecoder/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE agcShaderCacheGuardSources CONFIGURE_DEPENDS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
|
|
@ -288,8 +288,8 @@ add_test_executable(agc_driver_tests EXCLUDE_FROM_ALL
|
|||
target_include_directories(agc_driver_tests PRIVATE
|
||||
${LIBS_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(agc_driver_tests PRIVATE
|
||||
|
|
@ -376,7 +376,7 @@ add_test_executable(agc_subgroup_clock_tests EXCLUDE_FROM_ALL
|
|||
tests/SubgroupClock.cpp
|
||||
Execution/src/SubgroupClock.cpp
|
||||
)
|
||||
target_include_directories(agc_subgroup_clock_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(agc_subgroup_clock_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
set_target_properties(agc_subgroup_clock_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_subgroup_clock_tests)
|
||||
if(BUILD_TESTING)
|
||||
|
|
@ -515,7 +515,7 @@ set_target_properties(agc_pass_hazards_tests PROPERTIES CXX_EXTENSIONS OFF)
|
|||
configure_windows_unwind(agc_pass_hazards_tests)
|
||||
|
||||
add_test_executable(agc_dcc_key_sharing_tests EXCLUDE_FROM_ALL tests/DccKeySharing.cpp)
|
||||
target_include_directories(agc_dcc_key_sharing_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(agc_dcc_key_sharing_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(agc_dcc_key_sharing_tests PRIVATE libc)
|
||||
set_target_properties(agc_dcc_key_sharing_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_dcc_key_sharing_tests)
|
||||
|
|
@ -529,7 +529,7 @@ if(BUILD_TESTING)
|
|||
endif()
|
||||
|
||||
add_test_executable(agc_buffer_pool_tests EXCLUDE_FROM_ALL tests/BufferPool.cpp)
|
||||
target_include_directories(agc_buffer_pool_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(agc_buffer_pool_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(agc_buffer_pool_tests PRIVATE libSceAgcDriver libc)
|
||||
set_target_properties(agc_buffer_pool_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_buffer_pool_tests)
|
||||
|
|
@ -543,7 +543,7 @@ if(BUILD_TESTING)
|
|||
endif()
|
||||
|
||||
add_test_executable(agc_display_buffer_dcc_tests EXCLUDE_FROM_ALL tests/DisplayBufferDcc.cpp)
|
||||
target_include_directories(agc_display_buffer_dcc_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(agc_display_buffer_dcc_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(agc_display_buffer_dcc_tests PRIVATE libSceAgcDriver libc)
|
||||
set_target_properties(agc_display_buffer_dcc_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_display_buffer_dcc_tests)
|
||||
|
|
@ -573,7 +573,7 @@ set_target_properties(agc_shader_disk_cache_tests PROPERTIES CXX_EXTENSIONS OFF)
|
|||
configure_windows_unwind(agc_shader_disk_cache_tests)
|
||||
|
||||
add_test_executable(agc_shader_device_profile_tests EXCLUDE_FROM_ALL tests/ShaderDeviceProfile.cpp Execution/src/ShaderDeviceProfile.cpp)
|
||||
target_include_directories(agc_shader_device_profile_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(agc_shader_device_profile_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(agc_shader_device_profile_tests PRIVATE shader_recompiler_agc_driver libc)
|
||||
set_target_properties(agc_shader_device_profile_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_shader_device_profile_tests)
|
||||
|
|
@ -701,7 +701,7 @@ target_include_directories(agc_driver_recorder_tests PRIVATE
|
|||
${LIBS_INCLUDE_DIR}
|
||||
${agcTestShaderGeneratedRoot}
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(agc_driver_recorder_tests PRIVATE
|
||||
|
|
@ -754,7 +754,7 @@ if(BUILD_TESTING)
|
|||
endif()
|
||||
|
||||
add_test_executable(agc_recorder_kept_bytes_tests EXCLUDE_FROM_ALL tests/RecorderKeptBytes.cpp)
|
||||
target_include_directories(agc_recorder_kept_bytes_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(agc_recorder_kept_bytes_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(agc_recorder_kept_bytes_tests PRIVATE libSceAgcDriver libc)
|
||||
set_target_properties(agc_recorder_kept_bytes_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(agc_recorder_kept_bytes_tests)
|
||||
|
|
@ -840,8 +840,8 @@ target_include_directories(agc_driver_graphics_tests PRIVATE
|
|||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/IntermediateRepresentation/include
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/ControlFlow/include
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/RdnaDecoder/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(agc_driver_graphics_tests PRIVATE
|
||||
|
|
@ -866,7 +866,7 @@ add_test_executable(agc_driver_bda_device_tests EXCLUDE_FROM_ALL
|
|||
target_include_directories(agc_driver_bda_device_tests PRIVATE
|
||||
${LIBS_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(agc_driver_bda_device_tests PRIVATE SDL2-static libc shader_recompiler_agc_driver)
|
||||
set_target_properties(agc_driver_bda_device_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
|
|
@ -879,8 +879,8 @@ add_test_executable(agc_driver_mesh_tests EXCLUDE_FROM_ALL
|
|||
target_include_directories(agc_driver_mesh_tests PRIVATE
|
||||
${LIBS_INCLUDE_DIR}
|
||||
${agcTextureDetileGeneratedRoot}
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(agc_driver_mesh_tests PRIVATE shader_recompiler_agc_driver SDL2-static libc libkernel ${CMAKE_DL_LIBS})
|
||||
set_target_properties(agc_driver_mesh_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
|
|
@ -896,8 +896,8 @@ foreach(agcExecutionTestSource IN LISTS agcExecutionTestSources)
|
|||
target_include_directories(${agcExecutionTest} PRIVATE
|
||||
${LIBS_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(${agcExecutionTest} PRIVATE libSceAgcDriver SDL2-static libc)
|
||||
set_target_properties(${agcExecutionTest} PROPERTIES CXX_EXTENSIONS OFF)
|
||||
|
|
@ -1127,8 +1127,8 @@ if(AGC_BUILD_VISUAL_TEST)
|
|||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/IntermediateRepresentation/include
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/ControlFlow/include
|
||||
${CMAKE_SOURCE_DIR}/core/shader/recompiler/RdnaDecoder/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(agc_driver_visual_test PRIVATE
|
||||
|
|
@ -1190,7 +1190,7 @@ configure_windows_unwind(agc_shader_replay)
|
|||
|
||||
if(BUILD_TESTING)
|
||||
add_test_executable(texture_format_lookup_tests ${LIBS_INCLUDE_DIR}/tests/TextureFormatLookup.cpp)
|
||||
target_include_directories(texture_format_lookup_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(texture_format_lookup_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(texture_format_lookup_tests PRIVATE libSceAgcDriver libc)
|
||||
configure_windows_unwind(texture_format_lookup_tests)
|
||||
add_test(NAME texture_format_lookup COMMAND texture_format_lookup_tests)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
add_library(libSceAudioIn SHARED EXCLUDE_FROM_ALL Export.cpp)
|
||||
target_include_directories(libSceAudioIn PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include)
|
||||
target_include_directories(libSceAudioIn PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_SDL2_INCLUDE_DIR})
|
||||
target_link_libraries(libSceAudioIn PRIVATE SDL2-static)
|
||||
target_link_options(libSceAudioIn PRIVATE LINKER:--exclude-libs,ALL)
|
||||
configure_windows_unwind(libSceAudioIn)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ add_library(libSceAudioOut SHARED EXCLUDE_FROM_ALL
|
|||
|
||||
target_include_directories(libSceAudioOut PRIVATE
|
||||
${LIBS_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include
|
||||
${ANYPS5_SDL2_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(libSceAudioOut PRIVATE libc libkernel SDL2-static)
|
||||
configure_windows_unwind(libSceAudioOut)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ if(BUILD_TESTING)
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/tests/Keyboard.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libSceVideoOut/src/KeyboardInput.cpp
|
||||
)
|
||||
target_include_directories(keyboard_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include)
|
||||
target_include_directories(keyboard_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_SDL2_INCLUDE_DIR})
|
||||
target_link_libraries(keyboard_tests PRIVATE libSceKeyboard libkernel libc)
|
||||
configure_windows_unwind(keyboard_tests)
|
||||
add_test(NAME keyboard_input COMMAND keyboard_tests)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ if(BUILD_TESTING)
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/tests/Mouse.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libSceVideoOut/src/MouseInput.cpp
|
||||
)
|
||||
target_include_directories(mouse_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include)
|
||||
target_include_directories(mouse_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_SDL2_INCLUDE_DIR})
|
||||
target_link_libraries(mouse_tests PRIVATE libSceMouse libkernel libc)
|
||||
configure_windows_unwind(mouse_tests)
|
||||
add_test(NAME mouse_input COMMAND mouse_tests)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ configure_windows_unwind(libScePad)
|
|||
|
||||
if(BUILD_TESTING)
|
||||
add_test_executable(guest_pad_tests ${LIBS_INCLUDE_DIR}/tests/GuestPad.cpp)
|
||||
target_include_directories(guest_pad_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include)
|
||||
target_include_directories(guest_pad_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_SDL2_INCLUDE_DIR})
|
||||
target_link_libraries(guest_pad_tests PRIVATE libScePad libc)
|
||||
configure_windows_unwind(guest_pad_tests)
|
||||
add_test(NAME guest_pad COMMAND guest_pad_tests)
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ add_library(libSceVideoOut SHARED EXCLUDE_FROM_ALL
|
|||
|
||||
target_include_directories(libSceVideoOut PRIVATE
|
||||
${LIBS_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include
|
||||
${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include
|
||||
${ANYPS5_SDL2_INCLUDE_DIR}
|
||||
${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(libSceVideoOut PRIVATE libSceAgcDriver libScePad libSceMouse libSceKeyboard libc libkernel decoder_png SDL2-static)
|
||||
if(WIN32)
|
||||
|
|
@ -27,7 +27,7 @@ foreach(runtimeLinkFlag IN ITEMS -static-libgcc -static-libstdc++ -static)
|
|||
string(REPLACE "${runtimeLinkFlag}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
||||
endforeach()
|
||||
add_test_executable(video_out_flip_tests EXCLUDE_FROM_ALL tests/Flip.cpp)
|
||||
target_include_directories(video_out_flip_tests PRIVATE ${LIBS_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/3rdparty/SDL2/include ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${CMAKE_SOURCE_DIR}/3rdparty/Vulkan-Headers/include)
|
||||
target_include_directories(video_out_flip_tests PRIVATE ${LIBS_INCLUDE_DIR} ${ANYPS5_SDL2_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/core/shader/recompiler ${ANYPS5_VULKAN_HEADERS_INCLUDE_DIR})
|
||||
target_link_libraries(video_out_flip_tests PRIVATE libSceVideoOut libSceAgcDriver libkernel libc)
|
||||
set_target_properties(video_out_flip_tests PROPERTIES CXX_EXTENSIONS OFF)
|
||||
configure_windows_unwind(video_out_flip_tests)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ function(add_shader_recompiler target runtimeTarget)
|
|||
endif()
|
||||
|
||||
if(ANYPS5_ENABLE_SPIRV_TOOLS AND NOT TARGET SPIRV-Tools-opt)
|
||||
set(SPIRV-Headers_SOURCE_DIR "${PROJECT_SOURCE_DIR}/3rdparty/SPIRV-Headers")
|
||||
set(SPIRV-Headers_SOURCE_DIR "${ANYPS5_SPIRV_HEADERS_SOURCE_DIR}")
|
||||
set(SPIRV_SKIP_EXECUTABLES ON)
|
||||
set(SPIRV_SKIP_TESTS ON)
|
||||
set(SPIRV_TOOLS_BUILD_STATIC ON)
|
||||
|
|
@ -156,8 +156,8 @@ function(add_shader_recompiler target runtimeTarget)
|
|||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/Translation/include
|
||||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/Optimization/include
|
||||
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/SpirvBackend/include
|
||||
${PROJECT_SOURCE_DIR}/3rdparty/SPIRV-Headers/include
|
||||
${PROJECT_SOURCE_DIR}/3rdparty/glslang
|
||||
${ANYPS5_SPIRV_HEADERS_INCLUDE_DIR}
|
||||
${ANYPS5_GLSLANG_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_compile_features(${target} PUBLIC cxx_std_20)
|
||||
|
|
@ -188,7 +188,7 @@ function(add_shader_recompiler target runtimeTarget)
|
|||
find_package(Git QUIET)
|
||||
set(shaderCacheSubmoduleStamps)
|
||||
if(NOT ANYPS5_USE_SYSTEM_DEPS)
|
||||
set(shaderCacheSubmodules "${PROJECT_SOURCE_DIR}/3rdparty/SPIRV-Headers" "${PROJECT_SOURCE_DIR}/3rdparty/glslang")
|
||||
set(shaderCacheSubmodules "${ANYPS5_SPIRV_HEADERS_SOURCE_DIR}" "${ANYPS5_GLSLANG_SOURCE_DIR}")
|
||||
if(ANYPS5_ENABLE_SPIRV_TOOLS)
|
||||
list(APPEND shaderCacheSubmodules "${PROJECT_SOURCE_DIR}/3rdparty/SPIRV-Tools")
|
||||
endif()
|
||||
|
|
@ -210,6 +210,9 @@ function(add_shader_recompiler target runtimeTarget)
|
|||
get_target_property(shaderCacheIncludeDirectories ${target} INCLUDE_DIRECTORIES)
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" shaderCacheBuildType)
|
||||
set(shaderCacheExtra "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} ${CMAKE_BUILD_TYPE} spirv-tools=${ANYPS5_ENABLE_SPIRV_TOOLS} ${CMAKE_SYSTEM_PROCESSOR} flags=${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${shaderCacheBuildType}}")
|
||||
if(ANYPS5_USE_SYSTEM_DEPS)
|
||||
string(APPEND shaderCacheExtra " system-deps=${ANYPS5_SYSTEM_DEPS_STAMP}")
|
||||
endif()
|
||||
set(shaderCacheReviewedNames
|
||||
BuildBarycentricGeometryShader
|
||||
BuildPreparedShaderKey
|
||||
|
|
|
|||
Loading…
Reference in New Issue