@@ -35,43 +35,50 @@ function(mig defFileName)
3535 get_filename_component (bareName "${relativeName} " NAME )
3636 get_filename_component (dirName "${relativeName} " DIRECTORY )
3737
38- #if ((NOT BITS) OR (BITS EQUAL 64))
39- #if(NOT arch)
40- # set(MIG_ARCH "x86-64")
41- #else (NOT arch)
42- # set (MIG_ARCH "${arch}")
43- #endif(NOT arch)
44- if (NOT MIG_ARCH)
45- set (MIG_ARCH "i386" )
46- endif (NOT MIG_ARCH)
38+ if (NOT MIG_MULTIARCH)
39+ set (MIG_MULTIARCH_NO_SUFFIX 1)
40+ if (NOT MIG_ARCH)
41+ set (MIG_MULTIARCH "i386" )
42+ else ()
43+ set (MIG_MULTIARCH "${MIG_ARCH} " )
44+ endif ()
45+ endif ()
4746
48- add_custom_command (OUTPUT
49- ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_USER_SOURCE_SUFFIX}
50- ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_USER_HEADER_SUFFIX}
51- ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_SERVER_SOURCE_SUFFIX}
52- ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_SERVER_HEADER_SUFFIX}
53- ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_XTRACE_SUFFIX}
54- COMMAND
55- /bin/mkdir -p ${CMAKE_CURRENT_BINARY_DIR} /${dirName} \;
56- ${MIG_EXECUTABLE}
57- -arch ${MIG_ARCH}
58- -target ${MIG_ARCH}
59- -user ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_USER_SOURCE_SUFFIX}
60- -header ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_USER_HEADER_SUFFIX}
61- -server ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_SERVER_SOURCE_SUFFIX}
62- -sheader ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_SERVER_HEADER_SUFFIX}
63- -xtracemig ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_XTRACE_SUFFIX}
64- ${MIG_FLAGS}
65- ${CMAKE_CURRENT_SOURCE_DIR} /${defFileName}
66- DEPENDS
67- migexe migcom
68- )
47+ foreach (MIG_ARCH ${MIG_MULTIARCH} )
48+ if (MIG_MULTIARCH_NO_SUFFIX)
49+ set (MIG_ARCH_SUFFIX "" )
50+ else ()
51+ set (MIG_ARCH_SUFFIX "-${MIG_ARCH} -" )
52+ endif ()
6953
70- if (NOT TARGET ${bareName} _xtrace_mig AND NOT MIG_NO_XTRACE)
71- add_darling_library(${bareName} _xtrace_mig ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_XTRACE_SUFFIX} )
72- target_compile_options (${bareName} _xtrace_mig PRIVATE
73- "-I" "${CMAKE_SOURCE_DIR} /src/xtrace/include"
74- "-Wno-extern-initializer" )
75- install (TARGETS ${bareName} _xtrace_mig DESTINATION "libexec/darling/usr/lib/darling/xtrace-mig/" )
76- endif (NOT TARGET ${bareName} _xtrace_mig AND NOT MIG_NO_XTRACE)
54+ add_custom_command (OUTPUT
55+ ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_SOURCE_SUFFIX}
56+ ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_HEADER_SUFFIX}
57+ ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_SOURCE_SUFFIX}
58+ ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_HEADER_SUFFIX}
59+ ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX}
60+ COMMAND
61+ /bin/mkdir -p ${CMAKE_CURRENT_BINARY_DIR} /${dirName} \;
62+ ${MIG_EXECUTABLE}
63+ -arch ${MIG_ARCH}
64+ -target ${MIG_ARCH}
65+ -user ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_SOURCE_SUFFIX}
66+ -header ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_HEADER_SUFFIX}
67+ -server ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_SOURCE_SUFFIX}
68+ -sheader ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_HEADER_SUFFIX}
69+ -xtracemig ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX}
70+ ${MIG_FLAGS}
71+ ${CMAKE_CURRENT_SOURCE_DIR} /${defFileName}
72+ DEPENDS
73+ migexe migcom
74+ )
75+
76+ if (NOT TARGET ${bareName} _xtrace_mig AND NOT MIG_NO_XTRACE)
77+ add_darling_library(${bareName} _xtrace_mig ${CMAKE_CURRENT_BINARY_DIR} /${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX} )
78+ target_compile_options (${bareName} _xtrace_mig PRIVATE
79+ "-I" "${CMAKE_SOURCE_DIR} /src/xtrace/include"
80+ "-Wno-extern-initializer" )
81+ install (TARGETS ${bareName} _xtrace_mig DESTINATION "libexec/darling/usr/lib/darling/xtrace-mig/" )
82+ endif (NOT TARGET ${bareName} _xtrace_mig AND NOT MIG_NO_XTRACE)
83+ endforeach ()
7784endfunction (mig)
0 commit comments