aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt7
-rw-r--r--src/nvim/CMakeLists.txt74
2 files changed, 59 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f7ecf10816..0241b0502c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
-cmake_minimum_required (VERSION 2.8.7)
-project (NEOVIM)
+cmake_minimum_required(VERSION 2.8.7)
+project(NEOVIM)
# Point CMake at any custom modules we may ship
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
@@ -67,6 +67,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Default to -O2 on release builds.
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+# Enable -Wconversion.
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
+
# 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.
# See https://github.com/neovim/neovim/issues/223 for details.
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index b06b4fa547..e3e3c05cfb 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -38,34 +38,68 @@ endforeach()
list(REMOVE_ITEM NEOVIM_SOURCES ${to_remove})
+# Handle legacy files that don't yet pass -Wconversion.
set(CONV_SOURCES
- arabic.c
- cursor.c
- garray.c
- hashtab.c
- log.c
- map.c
- memfile.c
- memory.c
- misc2.c
- profile.c
- tempfile.c
- )
+ buffer.c
+ charset.c
+ cursor_shape.c
+ diff.c
+ digraph.c
+ edit.c
+ eval.c
+ ex_cmds2.c
+ ex_cmds.c
+ ex_docmd.c
+ ex_eval.c
+ ex_getln.c
+ farsi.c
+ fileio.c
+ file_search.c
+ fold.c
+ getchar.c
+ hardcopy.c
+ if_cscope.c
+ indent.c
+ indent_c.c
+ keymap.c
+ main.c
+ mark.c
+ mbyte.c
+ memline.c
+ menu.c
+ message.c
+ misc1.c
+ move.c
+ normal.c
+ ops.c
+ option.c
+ os_unix.c
+ path.c
+ popupmnu.c
+ quickfix.c
+ regexp.c
+ regexp_nfa.c
+ screen.c
+ search.c
+ sha256.c
+ spell.c
+ strings.c
+ syntax.c
+ tag.c
+ term.c
+ ui.c
+ undo.c
+ version.c
+ window.c)
foreach(sfile ${CONV_SOURCES})
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/src/nvim/${sfile}")
- message(FATAL_ERROR "${sfile} doesn't exist(it was added to CONV_SOURCES)")
+ message(FATAL_ERROR "${sfile} doesn't exist (it was added to CONV_SOURCES)")
endif()
endforeach()
-file(GLOB_RECURSE EXTRA_CONV_SOURCES os/*.c api/*.c msgpack_rpc/*.c)
-foreach(sfile ${EXTRA_CONV_SOURCES})
- file(RELATIVE_PATH f "${PROJECT_SOURCE_DIR}/src/nvim" "${sfile}")
- list(APPEND CONV_SOURCES ${f})
-endforeach()
-
set_source_files_properties(
- ${CONV_SOURCES} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -Wconversion")
+ ${CONV_SOURCES} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -Wno-conversion")
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
if(DEFINED ENV{SANITIZE})