build: only generate compilation database for the nvim target (#20449)

Some tools like clang-tidy get confused and repeat unnecessary work if
there are multiple entries with the same name.

This will only generate a compilation database for cmake version 3.20
and above. Generating a compilation database is only necessary for
development, so we don't need to maintain compatibility with the minimum
required version.

Closes https://github.com/neovim/neovim/issues/10632
This commit is contained in:
dundargoc 2022-10-02 17:17:40 +02:00 committed by GitHub
parent dd35bc2840
commit 2f80839cfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View File

@ -143,8 +143,6 @@ set(NVIM_API_PRERELEASE false)
set(NVIM_VERSION_BUILD_TYPE "${CMAKE_BUILD_TYPE}") set(NVIM_VERSION_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
# NVIM_VERSION_CFLAGS set further below. # NVIM_VERSION_CFLAGS set further below.
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Log level (MIN_LOG_LEVEL in log.h) # Log level (MIN_LOG_LEVEL in log.h)
if("${MIN_LOG_LEVEL}" MATCHES "^$") if("${MIN_LOG_LEVEL}" MATCHES "^$")
# Minimize logging for release-type builds. # Minimize logging for release-type builds.

View File

@ -446,6 +446,11 @@ set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES} ${LUA_PREFERRED_LIBRARIES})
add_executable(nvim ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS} add_executable(nvim ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
${NVIM_GENERATED_SOURCES} ${NVIM_SOURCES} ${NVIM_HEADERS} ${NVIM_GENERATED_SOURCES} ${NVIM_SOURCES} ${NVIM_HEADERS}
${EXTERNAL_SOURCES} ${EXTERNAL_HEADERS}) ${EXTERNAL_SOURCES} ${EXTERNAL_HEADERS})
set_target_properties(nvim
PROPERTIES
EXPORT_COMPILE_COMMANDS ON)
target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES}) target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES})
install_helper(TARGETS nvim) install_helper(TARGETS nvim)
if(MSVC) if(MSVC)