@@ -103,49 +103,11 @@ ELSE()
103103 FIND_PACKAGE (Threads REQUIRED)
104104 ADD_CXX_FLAG("-std=c++11" )
105105 if (NOT EMSCRIPTEN)
106- # try to get the target architecture by compiling a dummy.c file and
107- # checking the architecture using the file command.
108- file (WRITE ${PROJECT_BINARY_DIR} /dummy.c "main(){}" )
109- try_compile (
110- COMPILE_OK
111- ${PROJECT_BINARY_DIR}
112- ${PROJECT_BINARY_DIR} /dummy.c
113- OUTPUT_VARIABLE COMPILE_OUTPUT
114- COPY_FILE ${PROJECT_BINARY_DIR} /dummy
115- )
116- if (COMPILE_OK)
117- execute_process (
118- COMMAND file ${PROJECT_BINARY_DIR} /dummy
119- RESULT_VARIABLE FILE_RESULT
120- OUTPUT_VARIABLE FILE_OUTPUT
121- ERROR_QUIET
122- )
123-
124- if (FILE_RESULT EQUAL 0)
125- if (${FILE_OUTPUT} MATCHES "x86[-_]64" )
126- set (TARGET_ARCH "x86-64" )
127- elseif (${FILE_OUTPUT} MATCHES "Intel 80386" )
128- set (TARGET_ARCH "i386" )
129- elseif (${FILE_OUTPUT} MATCHES "ARM" )
130- set (TARGET_ARCH "ARM" )
131- else ()
132- message (WARNING "Unknown target architecture!" )
133- endif ()
134- if (TARGET_ARCH)
135- MESSAGE (STATUS "Building for platform ${TARGET_ARCH} " )
136- endif ()
137- else ()
138- message (WARNING "Error running file on dummy executable" )
139- endif ()
140- else ()
141- message (WARNING "Error compiling dummy.c file: ${COMPILE_OUTPUT} " )
142- endif ()
143-
144- if (TARGET_ARCH STREQUAL "i386" )
106+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$" )
145107 # wasm doesn't allow for x87 floating point math
146108 ADD_COMPILE_FLAG("-msse2" )
147109 ADD_COMPILE_FLAG("-mfpmath=sse" )
148- elseif (TARGET_ARCH STREQUAL "ARM " )
110+ elseif ( CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[2-6]" AND NOT CMAKE_CXX_FLAGS MATCHES "-mfpu= " )
149111 ADD_COMPILE_FLAG("-mfpu=vfpv3" )
150112 endif ()
151113 endif ()
0 commit comments