aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2015-08-27 22:00:09 -0400
committerJustin M. Keyes <justinkz@gmail.com>2015-08-27 22:00:34 -0400
commitf15b864239e666b87e2c6a9beb0fa3cf6ac97c67 (patch)
tree8585cb117dd7315e179207b7f6d01a25b01c0946
parentb9d17c6a8a6485bc7a33cabbfafb9c60741e6943 (diff)
downloadrneovim-f15b864239e666b87e2c6a9beb0fa3cf6ac97c67.tar.gz
rneovim-f15b864239e666b87e2c6a9beb0fa3cf6ac97c67.tar.bz2
rneovim-f15b864239e666b87e2c6a9beb0fa3cf6ac97c67.zip
MSVC: use MSVC instead of GCC-like compiler flags.
- We can build with /W4, but it gives thousands of warnings. - _CRT_NONSTDC_NO_DEPRECATE disables warnings about POSIX functions. https://msdn.microsoft.com/en-us/library/ms235384.aspx - _CRT_SECURE_NO_WARNINGS https://msdn.microsoft.com/en-us/library/8ef0s5kh.aspx
-rw-r--r--CMakeLists.txt12
-rw-r--r--src/nvim/CMakeLists.txt6
2 files changed, 14 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3334f14cca..3b5875e599 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
# Enable -Wconversion.
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
+if(NOT MSVC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
+endif()
# gcc 4.0 and better turn on _FORTIFY_SOURCE=2 automatically. This currently
# does not work with Neovim due to some uses of dynamically-sized structures.
@@ -110,8 +112,14 @@ if(NOT HAS_ACCEPTABLE_FORTIFY)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_FORTIFY_SOURCE_PREFIX}-U_FORTIFY_SOURCE ${_FORTIFY_SOURCE_PREFIX}-D_FORTIFY_SOURCE=1")
endif()
-add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter
+if(MSVC)
+ # XXX: /W4 gives too many warnings. #3241
+ add_definitions(/W3 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
+else()
+ add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter
-Wstrict-prototypes -std=gnu99)
+endif()
+
if(MINGW)
# Use POSIX compatible stdio in Mingw
add_definitions(-D__USE_MINGW_ANSI_STDIO)
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 6e6a890cd1..5e547ed290 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -101,8 +101,10 @@ foreach(sfile ${CONV_SOURCES})
endif()
endforeach()
-set_source_files_properties(
- ${CONV_SOURCES} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -Wno-conversion")
+if(NOT MSVC)
+ set_source_files_properties(
+ ${CONV_SOURCES} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -Wno-conversion")
+endif()
get_directory_property(gen_cdefs COMPILE_DEFINITIONS)
foreach(gen_cdef ${gen_cdefs} DO_NOT_DEFINE_EMPTY_ATTRIBUTES)