Skip to content

Commit 4c9a28a

Browse files
committed
CMake: do not pass -march=native or -mcpu=native when crosscompiling
1 parent 4e1c736 commit 4c9a28a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

CMakeLists.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ if(CCACHE_FOUND)
5252
endif(CCACHE_FOUND)
5353

5454
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
55-
if(RAPIDJSON_ENABLE_INSTRUMENTATION_OPT)
55+
if(RAPIDJSON_ENABLE_INSTRUMENTATION_OPT AND NOT CMAKE_CROSSCOMPILING)
5656
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
5757
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
5858
else()
@@ -84,11 +84,13 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
8484
endif()
8585
endif()
8686
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
87-
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
88-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
89-
else()
90-
#FIXME: x86 is -march=native, but doesn't mean every arch is this option. To keep original project's compatibility, I leave this except POWER.
91-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
87+
if(NOT CMAKE_CROSSCOMPILING)
88+
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
89+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
90+
else()
91+
#FIXME: x86 is -march=native, but doesn't mean every arch is this option. To keep original project's compatibility, I leave this except POWER.
92+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
93+
endif()
9294
endif()
9395
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-missing-field-initializers")
9496
set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wimplicit-fallthrough)

0 commit comments

Comments
 (0)