Merge pull request #10017 from sivarv/morphAssertFix
[platform/upstream/coreclr.git] / src / debug / di / CMakeLists.txt
index 8894813..abede90 100644 (file)
@@ -34,11 +34,30 @@ if(WIN32)
     #use static crt
     add_definitions(-MT) 
 
+    if (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64)
+        set(CORDBDI_SOURCES_ASM_FILE ${ARCH_SOURCES_DIR}/floatconversion.asm)
+    endif()
     if (CLR_CMAKE_TARGET_ARCH_AMD64)
         set(CORDBDI_SOURCES
           ${CORDBDI_SOURCES}
-          ${ARCH_SOURCES_DIR}/floatconversion.asm
+          ${CORDBDI_SOURCES_ASM_FILE}
         )
+    elseif (CLR_CMAKE_TARGET_ARCH_ARM64 AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD)
+        convert_to_absolute_path(CORDBDI_SOURCES_ASM_FILE ${CORDBDI_SOURCES_ASM_FILE})
+        get_compile_definitions(ASM_DEFINITIONS)
+        set(ASM_OPTIONS /c /Zi /W3 /errorReport:prompt)
+        # asm files require preprocessing using cl.exe on arm64
+        get_filename_component(name ${CORDBDI_SOURCES_ASM_FILE} NAME_WE)
+        set(ASM_PREPROCESSED_FILE ${CMAKE_CURRENT_BINARY_DIR}/${name}.asm)
+        preprocess_def_file(${CORDBDI_SOURCES_ASM_FILE} ${ASM_PREPROCESSED_FILE})
+        set(CORDBDI_SOURCES_WKS_PREPROCESSED_ASM  ${ASM_PREPROCESSED_FILE})
+
+        set_property(SOURCE ${CORDBDI_SOURCES_WKS_PREPROCESSED_ASM} PROPERTY COMPILE_DEFINITIONS ${ASM_DEFINITIONS})
+        set_property(SOURCE ${CORDBDI_SOURCES_WKS_PREPROCESSED_ASM} PROPERTY COMPILE_DEFINITIONS ${ASM_OPTIONS})
+        set(CORDBDI_SOURCES
+              ${CORDBDI_SOURCES}
+              ${CORDBDI_SOURCES_WKS_PREPROCESSED_ASM}
+            )
     endif()
 elseif(CLR_CMAKE_PLATFORM_UNIX)
     add_compile_options(-fPIC)
@@ -54,4 +73,5 @@ endif(WIN32)
 
 add_precompiled_header(stdafx.h stdafx.cpp CORDBDI_SOURCES)
 
+
 add_library_clr(cordbdi STATIC ${CORDBDI_SOURCES})