blob: 899688f9f63553aef9ebac97cff3e964b86bb166 [file] [log] [blame]
IF(MSGPACK_BOOST)
LIST(APPEND exec_PROGRAMS msgpack_variant_capitalize.cpp msgpack_variant_mapbased.cpp)
ENDIF()
FOREACH(source_file ${exec_PROGRAMS})
GET_FILENAME_COMPONENT(source_file_we ${source_file} NAME_WE)
ADD_EXECUTABLE(${source_file_we} ${source_file})
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY(
TARGET ${source_file_we}
APPEND_STRING
PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3"
)
ENDIF()
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET_PROPERTY(
TARGET ${source_file_we}
APPEND_STRING
PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags"
)
ENDIF()
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
IF(
(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}
)
OR
(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL
${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}
)
)
SET_PROPERTY(
TARGET ${source_file_we}
APPEND_STRING
PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags"
)
ENDIF()
ENDIF()
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
IF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
STRING(
REGEX
REPLACE
"/W[0-4]"
"/W3 /WX"
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS}"
)
ELSE()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX")
ENDIF()
ENDIF()
ENDFOREACH()