pineapple-src/src/common/CMakeLists.txt

187 lines
4.7 KiB
CMake
Raw Normal View History

2020-12-28 10:15:37 -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")
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}
2021-06-09 16:47:56 -04:00
-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
2020-12-28 10:15:37 -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
2021-07-09 17:54:15 -04:00
# ...
2020-12-28 10:15:37 -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"
2021-06-09 16:47:56 -04:00
VERBATIM
2020-12-28 10:15:37 -05:00
)
add_library(common STATIC
algorithm.h
alignment.h
2021-04-07 18:30:26 -04:00
assert.cpp
2020-12-28 10:15:37 -05:00
assert.h
atomic_ops.h
detached_tasks.cpp
detached_tasks.h
bit_cast.h
bit_field.h
bit_set.h
bit_util.h
cityhash.cpp
cityhash.h
common_funcs.h
common_types.h
concepts.h
div_ceil.h
dynamic_library.cpp
dynamic_library.h
fiber.cpp
fiber.h
2021-05-08 03:49:31 -04:00
fs/file.cpp
fs/file.h
fs/fs.cpp
fs/fs.h
fs/fs_paths.h
fs/fs_types.h
fs/fs_util.cpp
fs/fs_util.h
fs/path_util.cpp
fs/path_util.h
2020-12-28 10:15:37 -05:00
hash.h
hex_util.cpp
hex_util.h
2021-06-06 21:57:28 -04:00
host_memory.cpp
host_memory.h
2020-12-31 05:03:11 -05:00
intrusive_red_black_tree.h
2021-06-24 23:18:27 -04:00
literals.h
2020-12-28 10:15:37 -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
2021-06-13 15:23:07 -04:00
logging/types.h
2020-12-28 10:15:37 -05:00
lz4_compression.cpp
lz4_compression.h
math_util.h
memory_detect.cpp
memory_detect.h
microprofile.cpp
microprofile.h
microprofileui.h
misc.cpp
2021-01-20 19:01:05 -05:00
nvidia_flags.cpp
nvidia_flags.h
2020-12-28 10:15:37 -05:00
page_table.cpp
page_table.h
param_package.cpp
param_package.h
2020-12-31 05:03:11 -05:00
parent_of_member.h
2021-05-30 06:23:20 -04:00
point.h
2020-12-28 10:15:37 -05:00
quaternion.h
ring_buffer.h
scm_rev.cpp
scm_rev.h
scope_exit.h
2021-04-14 22:05:28 -04:00
settings.cpp
settings.h
settings_input.cpp
settings_input.h
2020-12-28 10:15:37 -05:00
spin_lock.cpp
spin_lock.h
stream.cpp
stream.h
string_util.cpp
string_util.h
swap.h
telemetry.cpp
telemetry.h
thread.cpp
thread.h
thread_queue_list.h
2020-12-29 20:38:14 -05:00
thread_worker.h
2020-12-28 10:15:37 -05:00
threadsafe_queue.h
time_zone.cpp
time_zone.h
2021-02-18 20:26:25 -05:00
tiny_mt.h
2020-12-31 05:03:11 -05:00
tree.h
2020-12-28 10:15:37 -05:00
uint128.h
2021-07-05 17:19:14 -04:00
unique_function.h
2020-12-28 10:15:37 -05:00
uuid.cpp
uuid.h
vector_math.h
virtual_buffer.cpp
virtual_buffer.h
wall_clock.cpp
wall_clock.h
zstd_compression.cpp
zstd_compression.h
)
if(ARCHITECTURE_x86_64)
target_sources(common
PRIVATE
x64/cpu_detect.cpp
x64/cpu_detect.h
x64/native_clock.cpp
x64/native_clock.h
x64/xbyak_abi.h
x64/xbyak_util.h
)
endif()
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
2021-02-10 01:19:20 -05:00
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>
2020-12-28 10:15:37 -05:00
)
endif()
create_target_directory_groups(common)
target_link_libraries(common PUBLIC ${Boost_LIBRARIES} fmt::fmt microprofile)
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()