# Generate cpp with Git revision from template # Also if this is a CI build, add the build name (ie: Nightly, Bleeding Edge) to the scm_rev file as well set(REPO_NAME "") if ($ENV{CI}) if ($ENV{TRAVIS}) set(BUILD_REPOSITORY $ENV{TRAVIS_REPO_SLUG}) elseif($ENV{APPVEYOR}) set(BUILD_REPOSITORY $ENV{APPVEYOR_REPO_NAME}) endif() # regex capture the string nightly or bleeding-edge into CMAKE_MATCH_1 string(REGEX MATCH "citra-emu/citra-?(.*)" OUTVAR ${BUILD_REPOSITORY}) if (${CMAKE_MATCH_COUNT} GREATER 0) # capitalize the first letter of each word in the repo name. string(REPLACE "-" ";" REPO_NAME_LIST ${CMAKE_MATCH_1}) foreach(WORD ${REPO_NAME_LIST}) string(SUBSTRING ${WORD} 0 1 FIRST_LETTER) string(SUBSTRING ${WORD} 1 -1 REMAINDER) string(TOUPPER ${FIRST_LETTER} FIRST_LETTER) # this leaves a trailing space on the last word, but we actually want that # because of how its styled in the title bar. set(REPO_NAME "${REPO_NAME}${FIRST_LETTER}${REMAINDER} ") endforeach() endif() endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/scm_rev.cpp" @ONLY) add_library(common STATIC alignment.h assert.h bit_field.h bit_set.h break_points.cpp break_points.h chunk_file.h cityhash.cpp cityhash.h code_block.h color.h common_funcs.h common_paths.h common_types.h file_util.cpp file_util.h hash.h linear_disk_cache.h logging/backend.cpp logging/backend.h logging/filter.cpp logging/filter.h logging/log.h logging/text_formatter.cpp logging/text_formatter.h math_util.h memory_util.cpp memory_util.h microprofile.cpp microprofile.h microprofileui.h misc.cpp param_package.cpp param_package.h platform.h quaternion.h scm_rev.cpp scm_rev.h scope_exit.h string_util.cpp string_util.h swap.h synchronized_wrapper.h telemetry.cpp telemetry.h thread.cpp thread.h thread_queue_list.h threadsafe_queue.h timer.cpp timer.h vector_math.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 microprofile) if (ARCHITECTURE_x86_64) target_link_libraries(common PRIVATE xbyak) endif()