1IF(MSGPACK_CXX11) 2 INCLUDE_DIRECTORIES(../include) 3 4 LIST(APPEND exec_PROGRAMS container.cpp non_def_con_class.cpp) 5 6 FOREACH(source_file ${exec_PROGRAMS}) 7 GET_FILENAME_COMPONENT(source_file_we ${source_file} NAME_WE) 8 ADD_EXECUTABLE(${source_file_we} ${source_file}) 9 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 10 SET_PROPERTY( 11 TARGET ${source_file_we} 12 APPEND_STRING 13 PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 " 14 ) 15 ENDIF() 16 17 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") 18 SET_PROPERTY( 19 TARGET ${source_file_we} 20 APPEND_STRING 21 PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags" 22 ) 23 ENDIF() 24 25 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 26 IF( 27 (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 28 ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION} 29 ) 30 OR 31 (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 32 ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION} 33 ) 34 ) 35 SET_PROPERTY( 36 TARGET ${source_file_we} 37 APPEND_STRING 38 PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags" 39 ) 40 ENDIF() 41 ENDIF() 42 43 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") 44 IF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") 45 STRING( 46 REGEX 47 REPLACE 48 "/W[0-4]" 49 "/W3 /WX" 50 CMAKE_CXX_FLAGS 51 "${CMAKE_CXX_FLAGS}" 52 ) 53 ELSE() 54 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX") 55 ENDIF() 56 ENDIF() 57 ENDFOREACH() 58ENDIF() 59