This patch LGTM, but I don't have ICC installed on my machine. Is there anybody can test it with ICC and let us know the result? Thanks.
On Fri, Aug 22, 2014 at 04:26:37PM +0800, Lv Meng wrote: > the 'COMPILER' is to choose the detail compiler,the default is GCC. > Signed-off-by: Lv Meng <[email protected]> > --- > CMakeLists.txt | 38 ++++++++++++++++++++++++---- > backend/CMakeLists.txt | 67 > ++------------------------------------------------ > utests/CMakeLists.txt | 4 +++ > 3 files changed, 39 insertions(+), 70 deletions(-) > > diff --git a/CMakeLists.txt b/CMakeLists.txt > index 82dbc8d..442bcda 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) > diff --git a/backend/CMakeLists.txt b/backend/CMakeLists.txt > index ca674cf..e19f92d 100644 > --- a/backend/CMakeLists.txt > +++ b/backend/CMakeLists.txt > @@ -13,12 +13,6 @@ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} > "${GBE_CMAKE_DIR}") > set (GBE_DEBUG_MEMORY false CACHE bool "Activate the memory debugger") > set (GBE_USE_BLOB false CACHE bool "Compile everything from one big file") > > -############################################################## > -# Compiler > -############################################################## > -if (UNIX) > - set (COMPILER "GCC" CACHE INT "Compiler to choose on Linux > (GCC,ICC,CLANG)") > -endif (UNIX) > > # Force Release with debug info > if (NOT CMAKE_BUILD_TYPE) > @@ -34,65 +28,8 @@ else (GBE_DEBUG_MEMORY) > endif (GBE_DEBUG_MEMORY) > > # Hide all symbols and allows the symbols declared as visible to be exported > -set (CMAKE_C_CXX_FLAGS "-fvisibility=hidden ${CMAKE_C_CXX_FLAGS}") > - > -set (CMAKE_C_CXX_FLAGS -DGBE_COMPILER_AVAILABLE=1) > - > -if (COMPILER STREQUAL "GCC") > - set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops > -Wstrict-aliasing=2 -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -fPIC > -Wall") > - set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} ${LLVM_CFLAGS}") > - set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -Wno-invalid-offsetof > -fno-rtti -std=c++0x") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_DEBUG_MEMORY_FLAG}") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_COMPILE_UTESTS_FLAG}") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-E") > - set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${LLVM_LFLAGS}") > - set (CMAKE_CXX_FLAGS_DEBUG "-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 "${CMAKE_C_CXX_FLAGS}") > - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GBE_DEBUG_MEMORY_FLAG}") > - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GBE_COMPILE_UTESTS_FLAG}") > - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-E") > - set (CMAKE_C_FLAGS_DEBUG "-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") > -elseif (COMPILER STREQUAL "CLANG") > - set (CMAKE_C_COMPILER "clang") > - set (CMAKE_C_FLAGS "-Wall -std=c99") > - set (CMAKE_C_FLAGS_DEBUG "-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") > - set (CMAKE_CXX_COMPILER "clang++") > - set (CMAKE_CXX_FLAGS "-fstrict-aliasing -msse2 -fPIC -Wall > -Wno-format-security -Wno-invalid-offsetof -std=c++0x") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_DEBUG_MEMORY_FLAG}") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_COMPILE_UTESTS_FLAG}") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${VISIBILITY_FLAG}") > - set (CMAKE_CXX_FLAGS_DEBUG "-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_AR "/usr/bin/llvm-ar") > - set (CMAKE_LINKER "/usr/bin/llvm-ld") > - set (CMAKE_NM "/usr/bin/llvm-nm") > - set (CMAKE_OBJDUMP "/usr/bin/llvm-objdump") > - set (CMAKE_RANLIB "ranlib") > -elseif (COMPILER STREQUAL "ICC") > - set (CMAKE_CXX_COMPILER "icpc") > - set (CMAKE_C_COMPILER "icc") > - set (CMAKE_CXX_FLAGS "-std=c++0x -wd2928 -Wall -fPIC -fstrict-aliasing > -fp-model fast -xSSE2") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_DEBUG_MEMORY_FLAG}") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_COMPILE_UTESTS_FLAG}") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${VISIBILITY_FLAG} -Wl,-E") > - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GBE_DEBUG_MODE_FLAG}") > - set (CMAKE_CXX_FLAGS_DEBUG "-g -O0 -DGBE_DEBUG=1") > - set (CCMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -O2 -DGBE_DEBUG=1") > - set (CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O2 -DGBE_DEBUG=0") > - set (CCMAKE_CXX_FLAGS_MINSIZEREL "-Os -DGBE_DEBUG=0") > - set (CMAKE_EXE_LINKER_FLAGS "") > -endif () > +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLVM_CFLAGS} > ${GBE_DEBUG_MEMORY_FLAG} ${GBE_COMPILE_UTESTS_FLAG} > -DGBE_COMPILER_AVAILABLE=1 -fvisibility=hidden") > +set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LLVM_CFLAGS} ${GBE_DEBUG_MEMORY_FLAG} > ${GBE_COMPILE_UTESTS_FLAG} -DGBE_COMPILER_AVAILABLE=1") > > include_directories (${CMAKE_CURRENT_BINARY_DIR}) > ############################################################## > diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt > index 721e6f7..d363c3d 100644 > --- a/utests/CMakeLists.txt > +++ b/utests/CMakeLists.txt > @@ -226,6 +226,10 @@ else() > SET(UTESTS_REQUIRED_EGL_LIB "") > endif() > > +if (COMPILER STREQUAL "CLANG") > +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-tautological-compare") > +endif () > + > ADD_LIBRARY(utests SHARED ${ADDMATHFUNC} ${utests_sources}) > > TARGET_LINK_LIBRARIES(utests cl m ${OPENGL_LIBRARIES} > ${UTESTS_REQUIRED_EGL_LIB} ${CMAKE_THREAD_LIBS_INIT}) > -- > 1.9.1 > > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
