xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/media_enquiry/cmake/CompileOptions.cmake (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1set(CMAKE_CXX_FLAGS                "-Wall -std=c++11 -fPIC")
2set(CMAKE_CXX_FLAGS_DEBUG          "-O0 -g")
3set(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
4set(CMAKE_CXX_FLAGS_RELEASE        "-O4 -DNDEBUG")
5set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
6
7if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
8    execute_process(
9        COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
10    if (NOT (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7))
11        message(FATAL_ERROR "${PROJECT_NAME} requires g++ 4.7 or greater.")
12    endif ()
13elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
14    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
15elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
16    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /stdlib=libc++")
17else ()
18    message(FATAL_ERROR "Your C++ compiler does not support C++11.")
19endif ()
20
21# Workaround Compile Errors
22if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
23    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder -Wno-unused -Wno-misleading-indentation -Wno-format-truncation -fno-strict-aliasing -Wno-address-of-packed-member -Wno-psabi")
24    if(NOT ARCH STREQUAL "fpga")
25        add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2)
26    endif()
27elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
28    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
29endif()
30
31if (RKAIQ_ENABLE_ASAN)
32    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
33    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
34    set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
35endif()
36
37