diff options
author | Lv Meng <meng.lv@intel.com> | 2014-08-22 16:26:37 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2014-09-12 18:00:35 +0800 |
commit | 4a61eef93401c247eb9d2819da9fa9d7106d5eba (patch) | |
tree | d56f4cb2405e7fe7d2d66ffbd01e0c2ce3b347ce /CMakeLists.txt | |
parent | 8c1ed91f0af6ab8284fe06b4c582b55c7d925816 (diff) | |
download | beignet-4a61eef93401c247eb9d2819da9fa9d7106d5eba.tar.gz |
Enable ICC and CLANG compiler for beignet
the 'COMPILER' is to choose the detail compiler,the default is GCC.
Signed-off-by: Lv Meng <meng.lv@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 36fef136..e5decd64 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,17 @@ +# compiler choose,now support ICC,GCC CLANG compiler +set (COMPILER "GCC" CACHE INT "Compiler to choose on Linux (GCC,ICC,CLANG)") +if (COMPILER STREQUAL "GCC") +elseif (COMPILER STREQUAL "CLANG") + set (CMAKE_C_COMPILER "clang") + set (CMAKE_CXX_COMPILER "clang++") + find_program(CMAKE_AR NAMES llvm-ar) + find_program(CMAKE_LINKER NAMES llvm-ld) +elseif (COMPILER STREQUAL "ICC") + find_program(CMAKE_C_COMPILER NAMES icc) + find_program(CMAKE_CXX_COMPILER NAMES icpc) + find_program(CMAKE_AR NAMES xiar) + find_program(CMAKE_LINKER NAMES xild) +endif () CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) PROJECT(OCL) @@ -35,9 +49,6 @@ endif (NOT CMAKE_BUILD_TYPE) set (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "assure config" FORCE) message(STATUS "Building mode: " ${CMAKE_BUILD_TYPE}) -SET(CMAKE_CXX_FLAGS_DEBUGO0 "-O0 -g") -SET(CMAKE_C_FLAGS_DEBUGO0 "-O0 -g") - IF (EMULATE_HSW) SET (USE_FULSIM "true") ADD_DEFINITIONS(-DEMULATE_GEN=75) @@ -61,8 +72,25 @@ ELSE (USE_FULSIM) ADD_DEFINITIONS(-DUSE_FULSIM=0) ENDIF (USE_FULSIM) -SET(CMAKE_CXX_FLAGS "-Wall -Wno-invalid-offsetof -mfpmath=sse -fno-rtti -Wcast-align -std=c++0x -msse2 -msse3 -mssse3 -msse4.1 ${CMAKE_CXX_FLAGS}") -SET(CMAKE_C_FLAGS "-Wall -mfpmath=sse -msse2 -Wcast-align -msse2 -msse3 -mssse3 -msse4.1 ${CMAKE_C_FLAGS}") +# compiler flag setting +if (COMPILER STREQUAL "GCC") + set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -fPIC -Wall -mfpmath=sse -Wcast-align -Wl,-E") +elseif (COMPILER STREQUAL "CLANG") + set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -fPIC -Wall") +elseif (COMPILER STREQUAL "ICC") + set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E") +endif () +set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof -fno-rtti") +set (CMAKE_C_FLAGS "${CMAKE_C_CXX_FLAGS}") +set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${LLVM_LFLAGS}") +set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1") +set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1") +set (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0") +set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -DGBE_DEBUG=0") +set (CMAKE_C_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1") +set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1") +set (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0") +set (CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG -DGBE_DEBUG=0") # Front end stuff we need #INCLUDE(CMake/FindLLVM.cmake) |