/ CMakeModules / TargetArchitectureSpecificSources.cmake
TargetArchitectureSpecificSources.cmake
1 function(target_architecture_specific_sources project arch) 2 if (NOT DYNARMIC_MULTIARCH_BUILD) 3 target_sources("${project}" PRIVATE ${ARGN}) 4 return() 5 endif() 6 7 foreach(input_file IN LISTS ARGN) 8 if(input_file MATCHES ".cpp$") 9 if(NOT IS_ABSOLUTE ${input_file}) 10 set(input_file "${CMAKE_CURRENT_SOURCE_DIR}/${input_file}") 11 endif() 12 13 set(output_file "${CMAKE_CURRENT_BINARY_DIR}/arch_gen/${input_file}") 14 add_custom_command( 15 OUTPUT "${output_file}" 16 COMMAND ${CMAKE_COMMAND} "-Darch=${arch}" 17 "-Dinput_file=${input_file}" 18 "-Doutput_file=${output_file}" 19 -P "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/impl/TargetArchitectureSpecificSourcesWrapFile.cmake" 20 DEPENDS "${input_file}" 21 VERBATIM 22 ) 23 target_sources(${project} PRIVATE "${output_file}") 24 endif() 25 endforeach() 26 endfunction()