aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordundargoc <33953936+dundargoc@users.noreply.github.com>2023-03-02 22:50:43 +0100
committerGitHub <noreply@github.com>2023-03-02 22:50:43 +0100
commit4cf4ae93df6af09ef3a0df678bb3d154b65bf731 (patch)
treee9b47e7b94fe74f1f568cfbca89790716a1c0625 /src
parentf449121764c19cebda7b8b2c970b76bc8121bae7 (diff)
downloadrneovim-4cf4ae93df6af09ef3a0df678bb3d154b65bf731.tar.gz
rneovim-4cf4ae93df6af09ef3a0df678bb3d154b65bf731.tar.bz2
rneovim-4cf4ae93df6af09ef3a0df678bb3d154b65bf731.zip
build: cmake cleanup (#22251)
- Remove unused code - Use consistent casing. Variable names such as LibLuV_LIBRARIES is needlessly jarring, even if the name might be technically correct. - Use title casing for packages. find_package(unibilium) requires the find_module to be named "Findunibilium.cmake", which makes it harder to spot when scanning the files. Instead, use "Unibilium".
Diffstat (limited to 'src')
-rwxr-xr-xsrc/nvim/CMakeLists.txt122
-rw-r--r--src/nvim/po/CMakeLists.txt3
2 files changed, 33 insertions, 92 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 9bd79a6ba7..8c23b501f9 100755
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -1,22 +1,19 @@
add_library(main_lib INTERFACE)
add_executable(nvim main.c)
-add_library(libuv_lib INTERFACE)
+add_library(libuv INTERFACE)
find_package(libuv CONFIG)
if(TARGET libuv::uv_a)
- target_link_libraries(libuv_lib INTERFACE libuv::uv_a)
+ target_link_libraries(libuv INTERFACE libuv::uv_a)
+ mark_as_advanced(libuv_DIR)
else()
# Fall back to find module for older libuv versions that don't provide config file
- find_package(LibUV 1.28.0 REQUIRED MODULE)
- target_include_directories(libuv_lib SYSTEM BEFORE INTERFACE ${LIBUV_INCLUDE_DIRS})
- target_link_libraries(libuv_lib INTERFACE ${LIBUV_LIBRARIES})
+ find_package(Libuv 1.28.0 REQUIRED MODULE)
+ target_include_directories(libuv SYSTEM BEFORE INTERFACE ${LIBUV_INCLUDE_DIRS})
+ target_link_libraries(libuv INTERFACE ${LIBUV_LIBRARIES})
endif()
-find_package(Msgpack 1.0.0 REQUIRED)
-target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${MSGPACK_INCLUDE_DIRS})
-target_link_libraries(main_lib INTERFACE ${MSGPACK_LIBRARIES})
-
-find_package(LibLUV 1.43.0 REQUIRED)
+find_package(Libluv 1.43.0 REQUIRED)
target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LIBLUV_INCLUDE_DIRS})
# Use "luv" as imported library, to work around CMake using "-lluv" for
# "luv.so". #10407
@@ -24,33 +21,28 @@ add_library(luv UNKNOWN IMPORTED)
set_target_properties(luv PROPERTIES IMPORTED_LOCATION ${LIBLUV_LIBRARIES})
target_link_libraries(main_lib INTERFACE luv)
-find_package(TreeSitter REQUIRED)
-target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${TreeSitter_INCLUDE_DIR})
-target_link_libraries(main_lib INTERFACE ${TreeSitter_LIBRARY})
-
-find_package(unibilium 2.0 REQUIRED)
-target_link_libraries(main_lib INTERFACE unibilium)
-
-find_package(LibTermkey 0.22 REQUIRED)
-target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LIBTERMKEY_INCLUDE_DIR})
-target_link_libraries(main_lib INTERFACE ${LIBTERMKEY_LIBRARY})
-
-find_package(libvterm 0.3 REQUIRED)
-target_link_libraries(main_lib INTERFACE libvterm)
-
find_package(Iconv REQUIRED)
-target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${ICONV_INCLUDE_DIR})
-if(ICONV_LIBRARY)
- target_link_libraries(main_lib INTERFACE ${ICONV_LIBRARY})
-endif()
+find_package(Libtermkey 0.22 REQUIRED)
+find_package(Libvterm 0.3 REQUIRED)
+find_package(Msgpack 1.0.0 REQUIRED)
+find_package(Treesitter REQUIRED)
+find_package(Unibilium 2.0 REQUIRED)
+
+target_link_libraries(main_lib INTERFACE
+ iconv
+ libtermkey
+ libvterm
+ msgpack
+ treesitter
+ unibilium)
option(ENABLE_LIBINTL "enable libintl" ON)
if(ENABLE_LIBINTL)
- # LibIntl (not Intl) selects our FindLibIntl.cmake script. #8464
- find_package(LibIntl REQUIRED)
- target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LibIntl_INCLUDE_DIR})
- if (LibIntl_LIBRARY)
- target_link_libraries(main_lib INTERFACE ${LibIntl_LIBRARY})
+ # Libintl (not Intl) selects our FindLibintl.cmake script. #8464
+ find_package(Libintl REQUIRED)
+ target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LIBINTL_INCLUDE_DIR})
+ if (LIBINTL_LIBRARY)
+ target_link_libraries(main_lib INTERFACE ${LIBINTL_LIBRARY})
endif()
endif()
@@ -61,9 +53,9 @@ if(PREFER_LUA)
target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LUA_INCLUDE_DIR})
target_link_libraries(main_lib INTERFACE ${LUA_LIBRARIES})
# Passive (not REQUIRED): if LUAJIT_FOUND is not set, fixtures for unittests is skipped.
- find_package(LuaJit)
+ find_package(Luajit)
else()
- find_package(LuaJit REQUIRED)
+ find_package(Luajit REQUIRED)
target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LUAJIT_INCLUDE_DIRS})
target_link_libraries(main_lib INTERFACE ${LUAJIT_LIBRARIES})
endif()
@@ -191,52 +183,6 @@ if(UNSIGNED_CHAR)
target_compile_options(main_lib INTERFACE -funsigned-char)
endif()
-list(APPEND CMAKE_REQUIRED_INCLUDES "${MSGPACK_INCLUDE_DIRS}")
-check_c_source_compiles("
-#include <msgpack.h>
-
-int
-main(void)
-{
- return MSGPACK_OBJECT_FLOAT32;
-}
-" MSGPACK_HAS_FLOAT32)
-list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${MSGPACK_INCLUDE_DIRS}")
-if(MSGPACK_HAS_FLOAT32)
- target_compile_definitions(main_lib INTERFACE NVIM_MSGPACK_HAS_FLOAT32)
-endif()
-
-list(APPEND CMAKE_REQUIRED_INCLUDES "${TreeSitter_INCLUDE_DIRS}")
-list(APPEND CMAKE_REQUIRED_LIBRARIES "${TreeSitter_LIBRARIES}")
-check_c_source_compiles("
-#include <tree_sitter/api.h>
-int
-main(void)
-{
- TSQueryCursor *cursor = ts_query_cursor_new();
- ts_query_cursor_set_match_limit(cursor, 32);
- return 0;
-}
-" TS_HAS_SET_MATCH_LIMIT)
-if(TS_HAS_SET_MATCH_LIMIT)
- target_compile_definitions(main_lib INTERFACE NVIM_TS_HAS_SET_MATCH_LIMIT)
-endif()
-check_c_source_compiles("
-#include <stdlib.h>
-#include <tree_sitter/api.h>
-int
-main(void)
-{
- ts_set_allocator(malloc, calloc, realloc, free);
- return 0;
-}
-" TS_HAS_SET_ALLOCATOR)
-if(TS_HAS_SET_ALLOCATOR)
- target_compile_definitions(main_lib INTERFACE NVIM_TS_HAS_SET_ALLOCATOR)
-endif()
-list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${TreeSitter_INCLUDE_DIRS}")
-list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${TreeSitter_LIBRARIES}")
-
target_compile_definitions(main_lib INTERFACE INCLUDE_GENERATED_DECLARATIONS)
# Remove --sort-common from linker flags, as this seems to cause bugs (see #2641, #3374).
@@ -260,7 +206,7 @@ endif()
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
target_link_libraries(nvim PRIVATE -Wl,--no-undefined -lsocket)
- elseif(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ elseif(NOT APPLE)
target_link_libraries(nvim PRIVATE -Wl,--no-undefined)
endif()
@@ -287,7 +233,7 @@ if(WIN32)
# Enable wmain
target_link_libraries(nvim PRIVATE -municode)
endif()
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+elseif(APPLE)
target_link_libraries(nvim PRIVATE "-framework CoreServices")
endif()
@@ -437,7 +383,7 @@ else()
endif()
# Log level (MIN_LOG_LEVEL in log.h)
-if($ENV{CI} MATCHES "true")
+if($ENV{CI})
set(MIN_LOG_LEVEL 3)
endif()
if("${MIN_LOG_LEVEL}" MATCHES "^$")
@@ -466,7 +412,7 @@ get_target_property(prop main_lib INTERFACE_INCLUDE_DIRECTORIES)
foreach(gen_include ${prop})
list(APPEND gen_cflags "-I${gen_include}")
endforeach()
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_OSX_SYSROOT)
+if(APPLE AND CMAKE_OSX_SYSROOT)
list(APPEND gen_cflags "-isysroot")
list(APPEND gen_cflags "${CMAKE_OSX_SYSROOT}")
endif()
@@ -718,7 +664,7 @@ if(${CMAKE_VERSION} VERSION_LESS 3.20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
endif()
-target_link_libraries(nvim PRIVATE main_lib PUBLIC libuv_lib)
+target_link_libraries(nvim PRIVATE main_lib PUBLIC libuv)
install_helper(TARGETS nvim)
if(MSVC)
install(FILES $<TARGET_PDB_FILE:nvim> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
@@ -829,12 +775,10 @@ if(WIN32)
file(WRITE ${PROJECT_BINARY_DIR}/external_blobs.cmake ${EXTERNAL_BLOBS_SCRIPT})
add_custom_target(external_blobs
COMMAND ${CMAKE_COMMAND} -P ${PROJECT_BINARY_DIR}/external_blobs.cmake)
- set_target_properties(external_blobs PROPERTIES FOLDER deps)
add_dependencies(nvim_runtime_deps external_blobs)
else()
add_custom_target(nvim_runtime_deps) # Stub target to avoid CMP0046.
endif()
-set_target_properties(nvim_runtime_deps PROPERTIES FOLDER deps)
file(MAKE_DIRECTORY ${BINARY_LIB_DIR})
@@ -862,7 +806,7 @@ set_target_properties(
OUTPUT_NAME ${LIBNVIM_NAME}
)
target_compile_definitions(libnvim PRIVATE MAKE_LIB)
-target_link_libraries(libnvim PRIVATE main_lib PUBLIC libuv_lib)
+target_link_libraries(libnvim PRIVATE main_lib PUBLIC libuv)
if(CLANG_ASAN_UBSAN)
message(STATUS "Enabling Clang address sanitizer and undefined behavior sanitizer for nvim.")
diff --git a/src/nvim/po/CMakeLists.txt b/src/nvim/po/CMakeLists.txt
index 74f043fe03..68e572911c 100644
--- a/src/nvim/po/CMakeLists.txt
+++ b/src/nvim/po/CMakeLists.txt
@@ -95,7 +95,6 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
COMMENT "Checking ${name}.po"
VERBATIM
DEPENDS ${poFile})
- set_target_properties(check-po-${name} PROPERTIES FOLDER po/check)
endmacro()
macro(BuildPoIconvGenericWithCharset
@@ -182,9 +181,7 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
BuildMo(${LANGUAGE})
endforeach()
- set_target_properties(${UPDATE_PO_TARGETS} PROPERTIES FOLDER po/update)
add_custom_target(translations ALL DEPENDS ${LANGUAGE_MO_FILES})
add_custom_target(update-po DEPENDS ${UPDATE_PO_TARGETS})
- set_target_properties(translations update-po PROPERTIES FOLDER po)
endif()