!I integrate from //ce/main...
[CRYENGINE.git] / Tools / CMake / CRYENGINE-GCC.cmake
blob0524590623895e0a76747c9cf48cf52bfd5079d1
1 set(GCC_COMMON_FLAGS
2         -Wall
3         -Werror
5         -ffast-math
6         -flax-vector-conversions
7         -fvisibility=hidden
8         -fPIC
9         -fno-exceptions
11         -Wno-unknown-warning
14 set(GCC_CPP_COMMON_FLAGS
15         -fno-rtti
16         -std=c++11
17         -Wno-invalid-offsetof
18         -Wno-aligned-new
19         -Wno-conversion-null
20         -Wno-unused-result
21         -Wno-reorder
22         -Wno-delete-non-virtual-dtor # Needed to provide virtual dispatch to allow strings to be modified on CryCommon types
23         -Wno-class-memaccess
26 string(REPLACE ";" " " GCC_COMMON_FLAGS "${GCC_COMMON_FLAGS}")
27 string(REPLACE ";" " " GCC_CPP_COMMON_FLAGS "${GCC_CPP_COMMON_FLAGS}")
29 set(CMAKE_CXX_FLAGS "${GCC_COMMON_FLAGS} ${GCC_CPP_COMMON_FLAGS}" CACHE STRING "C++ Flags" FORCE)
30 set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -D_DEBUG -DDEBUG" CACHE STRING "C++ Debug Flags" FORCE)
31 set(CMAKE_CXX_FLAGS_PROFILE "-O2 -D_PROFILE -DNDEBUG" CACHE STRING "C++ Profile Flags" FORCE)
32 set(CMAKE_CXX_FLAGS_RELEASE "-O3 -D_RELEASE -DNDEBUG" CACHE STRING "C++ Release Flags" FORCE)
34 set(CMAKE_C_FLAGS "${GCC_COMMON_FLAGS}" CACHE STRING "C Flags" FORCE)
35 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}" CACHE STRING "C Debug Flags" FORCE)
36 set(CMAKE_C_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE}" CACHE STRING "C Profile Flags" FORCE)
37 set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "C Release Flags" FORCE)
39 set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "Libraries linked by default with all C++ applications." FORCE)
41 set(CMAKE_LINK_FLAGS "{$CMAKE_LINK_FLAGS} -Wl, --gc-sections")
44 set(CMAKE_SHARED_LINKER_FLAGS_PROFILE ${CMAKE_SHARED_LINKER_FLAGS_DEBUG} CACHE STRING "Linker Library Profile Flags" FORCE)
45 set(CMAKE_EXE_LINKER_FLAGS_PROFILE ${CMAKE_EXE_LINKER_FLAGS_DEBUG} CACHE STRING "Linker Executable Profile Flags" FORCE)
47 function (wrap_whole_archive project target source)
48         set(${target} "-Wl,--whole-archive;${${source}};-Wl,--no-whole-archive" PARENT_SCOPE)
49 endfunction()