diff --git a/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake b/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake index e1c28821a..a77c09307 100644 --- a/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake +++ b/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake @@ -206,11 +206,13 @@ macro(antlr4cpp_process_grammar # export generated cpp files into list foreach(generated_file ${generated_files}) list(APPEND antlr4cpp_src_files_${antlr4cpp_project_namespace} ${generated_file}) + if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set_source_files_properties( ${generated_file} PROPERTIES COMPILE_FLAGS -Wno-overloaded-virtual ) + endif () endforeach(generated_file) message(STATUS "Antlr4Cpp ${antlr4cpp_project_namespace} Generated: ${generated_files}") diff --git a/runtime/Cpp/demo/CMakeLists.txt b/runtime/Cpp/demo/CMakeLists.txt index a91c40ddc..85a730c16 100644 --- a/runtime/Cpp/demo/CMakeLists.txt +++ b/runtime/Cpp/demo/CMakeLists.txt @@ -1,6 +1,6 @@ # -*- mode:cmake -*- if(NOT UNIX) - message(FATAL "Unsupported operating system") + message(WARNING "Unsupported operating system") endif() set(antlr4-demo-GENERATED_SRC @@ -45,11 +45,17 @@ set(antlr4-demo_SRC ${antlr4-demo-GENERATED_SRC} ) +if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set (flags_1 "-Wno-overloaded-virtual") +else() + set (flags_1 "-MP /wd4251") +endif() + foreach( src_file ${antlr4-demo_SRC} ) set_source_files_properties( ${src_file} PROPERTIES - COMPILE_FLAGS -Wno-overloaded-virtual + COMPILE_FLAGS "${COMPILE_FLAGS} ${flags_1}" ) endforeach( src_file ${antlr4-demo_SRC} ) @@ -58,6 +64,10 @@ add_executable(antlr4-demo ) #add_precompiled_header(antlr4-demo ${PROJECT_SOURCE_DIR}/runtime/src/antlrcpp-Prefix.h) +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + target_compile_options(antlr4-demo PRIVATE "/MT$<$:d>") +endif() + add_dependencies(antlr4-demo GenerateParser) target_link_libraries(antlr4-demo antlr4_static) diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt index dcd21b8b0..0c2d53418 100644 --- a/runtime/Cpp/runtime/CMakeLists.txt +++ b/runtime/Cpp/runtime/CMakeLists.txt @@ -44,11 +44,13 @@ elseif(APPLE) target_link_libraries(antlr4_static ${COREFOUNDATION_LIBRARY}) endif() -if (MSVC_VERSION) +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(disabled_compile_warnings "/wd4251") else() set(disabled_compile_warnings "-Wno-overloaded-virtual") -endif() +endif () + + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(disabled_compile_warnings "${disabled_compile_warnings} -Wno-dollar-in-identifier-extension -Wno-four-char-constants") elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") @@ -61,16 +63,21 @@ if (WIN32) set(extra_share_compile_flags "-DANTLR4CPP_EXPORTS") set(extra_static_compile_flags "-DANTLR4CPP_STATIC") endif(WIN32) -if (MSVC_VERSION) +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") target_compile_options(antlr4_shared PRIVATE "/MD$<$:d>") target_compile_options(antlr4_static PRIVATE "/MT$<$:d>") endif() set(static_lib_suffix "") -if (MSVC_VERSION) +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(static_lib_suffix "-static") endif() +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(extra_share_compile_flags "-DANTLR4CPP_EXPORTS -MP /wd4251") + set(extra_static_compile_flags "-DANTLR4CPP_STATIC -MP") +endif() + set_target_properties(antlr4_shared PROPERTIES VERSION ${ANTLR_VERSION} SOVERSION ${ANTLR_VERSION}