From ffcf5ee0a64b2c64be306a3154405b0f13d5fbba Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 7 Sep 2019 15:30:45 -0500 Subject: [PATCH] Enable support for POWER systems (ppc64) Built and tested on Raptor Computing Systems Blackbird system with IBM POWER9, running Debian 10 with VTK 6, Qt 5, and Octave. --- CMakeLists.txt | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3325abb..80d834a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,7 +138,34 @@ message(STATUS "vtk libraries " ${vtk_LIBS}) include(${VTK_USE_FILE}) INCLUDE_DIRECTORIES (${VTK_INCLUDE_DIR}) -#set(CMAKE_CXX_FLAGS "-msse -march=native") +if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") + set(ARCH "x86_64") +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "amd64") + set(ARCH "x86_64") +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64") + set(ARCH "x86_64") +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64") + set(ARCH "ppc64") +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64le") + set(ARCH "ppc64") +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "unknown") + set(ARCH "unknown") + message(FATAL_ERROR "Unable to determine target architecture! Try setting CMAKE_SYSTEM_PROCESSOR to a valid value.") +else() + set(ARCH "unsupported") +endif() + +if(${ARCH} STREQUAL "x86_64") + message(STATUS "Detected 64-bit x86 target") + #set(CMAKE_CXX_FLAGS "-msse -march=native") +elseif(${ARCH} STREQUAL "ppc64") + message(STATUS "Detected 64-bit POWER target") + set(CMAKE_CXX_FLAGS "-DNO_WARN_X86_INTRINSICS -DSSE_CORRECT_DENORMALS") +elseif(${ARCH} STREQUAL "unsupported") + message(FATAL_ERROR "Unsupported target architecture! Try porting openEMS to your architecture...") +else() + message(FATAL_ERROR "Unable to determine target architecture! Aborting.") +endif() # independent tool ADD_SUBDIRECTORY( nf2ff )