diff options
author | Dawid Potocki <dawid@dawidpotocki.com> | 2024-03-05 14:09:27 +1300 |
---|---|---|
committer | Dawid Potocki <dawid@dawidpotocki.com> | 2024-03-05 20:34:15 +1300 |
commit | 063e15900bda8453fb0fc6751e78d064501ccbae (patch) | |
tree | a4cd5f01dbca33a262333aff10e1e035217a30c8 /externals/dynarmic/CMakeModules/TargetArchitectureSpecificSources.cmake | |
parent | 537296095ab24eddcb196b5ef98004f91de9c8c2 (diff) |
Diffstat (limited to 'externals/dynarmic/CMakeModules/TargetArchitectureSpecificSources.cmake')
-rw-r--r-- | externals/dynarmic/CMakeModules/TargetArchitectureSpecificSources.cmake | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/externals/dynarmic/CMakeModules/TargetArchitectureSpecificSources.cmake b/externals/dynarmic/CMakeModules/TargetArchitectureSpecificSources.cmake new file mode 100644 index 0000000000..f08911c6f2 --- /dev/null +++ b/externals/dynarmic/CMakeModules/TargetArchitectureSpecificSources.cmake @@ -0,0 +1,26 @@ +function(target_architecture_specific_sources project arch) + if (NOT DYNARMIC_MULTIARCH_BUILD) + target_sources("${project}" PRIVATE ${ARGN}) + return() + endif() + + foreach(input_file IN LISTS ARGN) + if(input_file MATCHES ".cpp$") + if(NOT IS_ABSOLUTE ${input_file}) + set(input_file "${CMAKE_CURRENT_SOURCE_DIR}/${input_file}") + endif() + + set(output_file "${CMAKE_CURRENT_BINARY_DIR}/arch_gen/${input_file}") + add_custom_command( + OUTPUT "${output_file}" + COMMAND ${CMAKE_COMMAND} "-Darch=${arch}" + "-Dinput_file=${input_file}" + "-Doutput_file=${output_file}" + -P "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/impl/TargetArchitectureSpecificSourcesWrapFile.cmake" + DEPENDS "${input_file}" + VERBATIM + ) + target_sources(${project} PRIVATE "${output_file}") + endif() + endforeach() +endfunction() |