mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
build: create separate targets for nvim with and without runtime files
This distinction is important for correct dependency management, as the nvim binary is used to create some runtime files. The nvim binary (and the target to build it) is thus called `nvim_bin` and the target to build all of nvim (binary+runtime) is called `nvim`.
This commit is contained in:
parent
ed103cde28
commit
f936a962d0
@ -37,13 +37,8 @@ include(Util)
|
||||
# Variables
|
||||
#-------------------------------------------------------------------------------
|
||||
set(FUNCS_DATA ${PROJECT_BINARY_DIR}/funcs_data.mpack)
|
||||
set(GENERATED_RUNTIME_DIR ${PROJECT_BINARY_DIR}/runtime)
|
||||
set(TOUCHES_DIR ${PROJECT_BINARY_DIR}/touches)
|
||||
|
||||
# GENERATED_RUNTIME_DIR
|
||||
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
|
||||
set(GENERATED_SYN_VIM ${GENERATED_RUNTIME_DIR}/syntax/vim/generated.vim)
|
||||
|
||||
set_directory_properties(PROPERTIES
|
||||
EP_PREFIX "${DEPS_BUILD_DIR}")
|
||||
|
||||
@ -60,6 +55,12 @@ if(${CMAKE_VERSION} VERSION_LESS 3.20)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
endif()
|
||||
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.26)
|
||||
set(COPY_DIRECTORY copy_directory_if_different)
|
||||
else()
|
||||
set(COPY_DIRECTORY copy_directory)
|
||||
endif()
|
||||
|
||||
# Prefer our bundled versions of dependencies.
|
||||
if(DEFINED ENV{DEPS_BUILD_DIR})
|
||||
set(DEPS_PREFIX "$ENV{DEPS_BUILD_DIR}/usr" CACHE PATH "Path prefix for finding dependencies")
|
||||
@ -231,7 +232,7 @@ set(STYLUA_DIRS runtime scripts src test)
|
||||
|
||||
add_glob_target(
|
||||
TARGET lintlua-luacheck
|
||||
COMMAND $<TARGET_FILE:nvim>
|
||||
COMMAND $<TARGET_FILE:nvim_bin>
|
||||
FLAGS -ll ${PROJECT_SOURCE_DIR}/test/lua_runner.lua ${CMAKE_BINARY_DIR}/usr luacheck -q
|
||||
GLOB_DIRS runtime scripts src test
|
||||
GLOB_PAT *.lua
|
||||
@ -258,8 +259,8 @@ add_glob_target(
|
||||
TOUCH_STRATEGY PER_DIR)
|
||||
|
||||
add_custom_target(lintcommit
|
||||
COMMAND $<TARGET_FILE:nvim> -u NONE -l ${PROJECT_SOURCE_DIR}/scripts/lintcommit.lua main)
|
||||
add_dependencies(lintcommit nvim)
|
||||
COMMAND $<TARGET_FILE:nvim_bin> -u NONE -l ${PROJECT_SOURCE_DIR}/scripts/lintcommit.lua main)
|
||||
add_dependencies(lintcommit nvim_bin)
|
||||
|
||||
add_custom_target(lint)
|
||||
add_dependencies(lint lintc lintlua lintsh lintcommit)
|
||||
@ -280,6 +281,9 @@ install_helper(
|
||||
FILES ${CMAKE_SOURCE_DIR}/src/man/nvim.1
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||
|
||||
add_custom_target(nvim ALL)
|
||||
add_dependencies(nvim nvim_bin nvim_runtime_deps nvim_runtime)
|
||||
|
||||
add_subdirectory(src/nvim)
|
||||
add_subdirectory(cmake.config)
|
||||
add_subdirectory(runtime)
|
||||
|
@ -148,7 +148,7 @@ foreach(BUILD_TYPE Debug Release RelWithDebInfo MinSizeRel)
|
||||
set(GEN_RHS "${CMAKE_C_FLAGS_${BUILD_TYPE_UPPER}} ")
|
||||
string(APPEND VERSION_STRING "$<${GEN_CONFIG}:${GEN_RHS}>")
|
||||
|
||||
set(GEN_RHS "$<$<BOOL:$<TARGET_PROPERTY:nvim,INTERPROCEDURAL_OPTIMIZATION_${BUILD_TYPE_UPPER}>>:${CMAKE_C_COMPILE_OPTIONS_IPO}>")
|
||||
set(GEN_RHS "$<$<BOOL:$<TARGET_PROPERTY:nvim_bin,INTERPROCEDURAL_OPTIMIZATION_${BUILD_TYPE_UPPER}>>:${CMAKE_C_COMPILE_OPTIONS_IPO}>")
|
||||
string(APPEND VERSION_STRING "$<${GEN_CONFIG}:${GEN_RHS}>")
|
||||
endforeach()
|
||||
|
||||
@ -161,7 +161,7 @@ function(append_target_expression)
|
||||
""
|
||||
${ARGN})
|
||||
|
||||
set(TARGET_EXPRESSION "$<TARGET_PROPERTY:nvim,${ARG_PROPERTY}>")
|
||||
set(TARGET_EXPRESSION "$<TARGET_PROPERTY:nvim_bin,${ARG_PROPERTY}>")
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.15)
|
||||
set(TARGET_EXPRESSION "$<REMOVE_DUPLICATES:${TARGET_EXPRESSION}>")
|
||||
endif()
|
||||
|
@ -1,5 +1,9 @@
|
||||
set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/src/nvim/generators/gen_vimvim.lua)
|
||||
set(GENERATED_RUNTIME_DIR ${PROJECT_BINARY_DIR}/runtime)
|
||||
|
||||
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
|
||||
set(GENERATED_PACKAGE_DIR ${GENERATED_RUNTIME_DIR}/pack/dist/opt)
|
||||
set(GENERATED_SYN_VIM ${GENERATED_RUNTIME_DIR}/syntax/vim/generated.vim)
|
||||
set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/src/nvim/generators/gen_vimvim.lua)
|
||||
|
||||
file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax/vim)
|
||||
|
||||
@ -32,7 +36,7 @@ foreach(PACKAGE ${PACKAGES})
|
||||
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
|
||||
-u NONE -i NONE -e --headless -c "helptags doc" -c quit
|
||||
DEPENDS
|
||||
nvim
|
||||
nvim_bin
|
||||
nvim_runtime_deps
|
||||
WORKING_DIRECTORY "${GENERATED_PACKAGE_DIR}/${PACKNAME}"
|
||||
)
|
||||
@ -66,7 +70,7 @@ add_custom_command(OUTPUT ${GENERATED_HELP_TAGS}
|
||||
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
|
||||
-u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit
|
||||
DEPENDS
|
||||
nvim
|
||||
nvim_bin
|
||||
nvim_runtime_deps
|
||||
WORKING_DIRECTORY "${GENERATED_RUNTIME_DIR}"
|
||||
)
|
||||
@ -81,7 +85,7 @@ add_custom_target(doc_html
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
runtime ALL
|
||||
nvim_runtime
|
||||
DEPENDS
|
||||
${GENERATED_SYN_VIM}
|
||||
${GENERATED_HELP_TAGS}
|
||||
|
@ -1,7 +1,11 @@
|
||||
add_library(main_lib INTERFACE)
|
||||
add_executable(nvim)
|
||||
|
||||
set_target_properties(nvim
|
||||
# Internally we need to make a distinction between "nvim without runtime files"
|
||||
# (nvim_bin) and "nvim with runtime files" (nvim).
|
||||
add_executable(nvim_bin EXCLUDE_FROM_ALL)
|
||||
set_target_properties(nvim_bin PROPERTIES OUTPUT_NAME nvim)
|
||||
|
||||
set_target_properties(nvim_bin
|
||||
PROPERTIES
|
||||
EXPORT_COMPILE_COMMANDS ON
|
||||
ENABLE_EXPORTS TRUE)
|
||||
@ -115,7 +119,7 @@ elseif(MINGW)
|
||||
target_compile_definitions(main_lib INTERFACE __USE_MINGW_ANSI_STDIO)
|
||||
|
||||
# Enable wmain
|
||||
target_link_libraries(nvim PRIVATE -municode)
|
||||
target_link_libraries(nvim_bin PRIVATE -municode)
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10)
|
||||
target_compile_options(main_lib INTERFACE -Wno-conversion)
|
||||
@ -134,7 +138,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
|
||||
# workaround for clang-11 on macOS, supported on later versions
|
||||
if(NOT APPLE)
|
||||
target_link_libraries(nvim PRIVATE -Wl,--no-undefined)
|
||||
target_link_libraries(nvim_bin PRIVATE -Wl,--no-undefined)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -150,16 +154,16 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
target_compile_definitions(main_lib INTERFACE _WIN32_WINNT=0x0602 MSWIN)
|
||||
target_link_libraries(main_lib INTERFACE netapi32)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
target_link_libraries(nvim PRIVATE "-framework CoreServices")
|
||||
target_link_libraries(nvim_bin PRIVATE "-framework CoreServices")
|
||||
|
||||
# Actually export symbols - symbols may not be visible even though
|
||||
# ENABLE_EXPORTS is set to true. See
|
||||
# https://github.com/neovim/neovim/issues/25295
|
||||
target_link_options(nvim PRIVATE "-Wl,-export_dynamic")
|
||||
target_link_options(nvim_bin PRIVATE "-Wl,-export_dynamic")
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
||||
target_link_libraries(main_lib INTERFACE pthread c++abi)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
target_link_libraries(nvim PRIVATE -lsocket)
|
||||
target_link_libraries(nvim_bin PRIVATE -lsocket)
|
||||
endif()
|
||||
|
||||
check_c_compiler_flag(-Wimplicit-fallthrough HAVE_WIMPLICIT_FALLTHROUGH_FLAG)
|
||||
@ -205,35 +209,35 @@ if(ENABLE_ASAN_UBSAN)
|
||||
if(NOT MSVC)
|
||||
if(CI_BUILD)
|
||||
# Try to recover from all sanitize issues so we get reports about all failures
|
||||
target_compile_options(nvim PRIVATE -fsanitize-recover=all)
|
||||
target_compile_options(nvim_bin PRIVATE -fsanitize-recover=all)
|
||||
else()
|
||||
target_compile_options(nvim PRIVATE -fno-sanitize-recover=all)
|
||||
target_compile_options(nvim_bin PRIVATE -fno-sanitize-recover=all)
|
||||
endif()
|
||||
target_compile_options(nvim PRIVATE
|
||||
target_compile_options(nvim_bin PRIVATE
|
||||
-fno-omit-frame-pointer
|
||||
-fno-optimize-sibling-calls
|
||||
-fsanitize=undefined)
|
||||
endif()
|
||||
|
||||
target_compile_options(nvim PRIVATE -fsanitize=address)
|
||||
target_link_libraries(nvim PRIVATE -fsanitize=address -fsanitize=undefined)
|
||||
target_compile_definitions(nvim PRIVATE ENABLE_ASAN_UBSAN)
|
||||
target_compile_options(nvim_bin PRIVATE -fsanitize=address)
|
||||
target_link_libraries(nvim_bin PRIVATE -fsanitize=address -fsanitize=undefined)
|
||||
target_compile_definitions(nvim_bin PRIVATE ENABLE_ASAN_UBSAN)
|
||||
endif()
|
||||
|
||||
if(ENABLE_MSAN)
|
||||
message(STATUS "Enabling memory sanitizer for nvim.")
|
||||
target_compile_options(nvim PRIVATE
|
||||
target_compile_options(nvim_bin PRIVATE
|
||||
-fsanitize=memory
|
||||
-fsanitize-memory-track-origins
|
||||
-fno-omit-frame-pointer
|
||||
-fno-optimize-sibling-calls)
|
||||
target_link_libraries(nvim PRIVATE -fsanitize=memory -fsanitize-memory-track-origins)
|
||||
target_link_libraries(nvim_bin PRIVATE -fsanitize=memory -fsanitize-memory-track-origins)
|
||||
endif()
|
||||
|
||||
if(ENABLE_TSAN)
|
||||
message(STATUS "Enabling thread sanitizer for nvim.")
|
||||
target_compile_options(nvim PRIVATE -fsanitize=thread -fPIE)
|
||||
target_link_libraries(nvim PRIVATE -fsanitize=thread)
|
||||
target_compile_options(nvim_bin PRIVATE -fsanitize=thread -fPIE)
|
||||
target_link_libraries(nvim_bin PRIVATE -fsanitize=thread)
|
||||
endif()
|
||||
|
||||
option(CI_BUILD "CI, extra flags will be set" OFF)
|
||||
@ -254,7 +258,7 @@ if(ENABLE_IWYU)
|
||||
string(APPEND iwyu_flags "-Xiwyu;--no_fwd_decls;")
|
||||
string(APPEND iwyu_flags "-Xiwyu;--mapping_file=${PROJECT_SOURCE_DIR}/cmake.config/iwyu/mapping.imp")
|
||||
|
||||
set_target_properties(nvim PROPERTIES C_INCLUDE_WHAT_YOU_USE "${iwyu_flags}")
|
||||
set_target_properties(nvim_bin PROPERTIES C_INCLUDE_WHAT_YOU_USE "${iwyu_flags}")
|
||||
target_compile_definitions(main_lib INTERFACE EXITFREE)
|
||||
endif()
|
||||
|
||||
@ -284,7 +288,7 @@ endif()
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
set(API_METADATA ${PROJECT_BINARY_DIR}/api_metadata.mpack)
|
||||
set(BINARY_LIB_DIR ${PROJECT_BINARY_DIR}/lib/nvim/)
|
||||
set(BINARY_LIB_DIR ${PROJECT_BINARY_DIR}/lib/nvim)
|
||||
set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto)
|
||||
set(GENERATED_INCLUDES_DIR ${PROJECT_BINARY_DIR}/include)
|
||||
set(GENERATOR_DIR ${CMAKE_CURRENT_LIST_DIR}/generators)
|
||||
@ -436,7 +440,7 @@ if(CI_BUILD)
|
||||
# TODO(bfredl): debug log level also exposes some errors with EXITFREE in ASAN build.
|
||||
else()
|
||||
# Minimize logging for release-type builds.
|
||||
target_compile_definitions(nvim PRIVATE $<$<CONFIG:Debug>:NVIM_LOG_DEBUG>)
|
||||
target_compile_definitions(nvim_bin PRIVATE $<$<CONFIG:Debug>:NVIM_LOG_DEBUG>)
|
||||
endif()
|
||||
|
||||
if(ENABLE_ASAN_UBSAN OR ENABLE_MSAN OR ENABLE_TSAN)
|
||||
@ -685,8 +689,8 @@ if(PREFER_LUA)
|
||||
message(STATUS "luajit not used, skipping unit tests")
|
||||
else()
|
||||
file(GLOB UNIT_TEST_FIXTURES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/test/unit/fixtures/*.c)
|
||||
target_sources(nvim PRIVATE ${UNIT_TEST_FIXTURES})
|
||||
target_compile_definitions(nvim PRIVATE UNIT_TESTING)
|
||||
target_sources(nvim_bin PRIVATE ${UNIT_TEST_FIXTURES})
|
||||
target_compile_definitions(nvim_bin PRIVATE UNIT_TESTING)
|
||||
endif()
|
||||
|
||||
target_sources(main_lib INTERFACE
|
||||
@ -700,32 +704,33 @@ target_sources(main_lib INTERFACE
|
||||
|
||||
target_sources(nlua0 PUBLIC ${NLUA0_SOURCES})
|
||||
|
||||
target_link_libraries(nvim PRIVATE main_lib PUBLIC libuv)
|
||||
install_helper(TARGETS nvim)
|
||||
target_link_libraries(nvim_bin PRIVATE main_lib PUBLIC libuv)
|
||||
install_helper(TARGETS nvim_bin)
|
||||
if(MSVC)
|
||||
install(FILES $<TARGET_PDB_FILE:nvim> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
|
||||
install(FILES $<TARGET_PDB_FILE:nvim_bin> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
|
||||
endif()
|
||||
|
||||
if(ENABLE_LTO)
|
||||
include(CheckIPOSupported)
|
||||
check_ipo_supported(RESULT IPO_SUPPORTED)
|
||||
if(IPO_SUPPORTED)
|
||||
set_target_properties(nvim PROPERTIES
|
||||
set_target_properties(nvim_bin PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE
|
||||
INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_custom_target(nvim_runtime_deps)
|
||||
if(WIN32)
|
||||
# Copy DLLs and third-party tools to bin/ and install them along with nvim
|
||||
add_custom_target(nvim_runtime_deps ALL
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_BINARY_DIR}/windows_runtime_deps/
|
||||
add_custom_command(TARGET nvim_runtime_deps
|
||||
COMMAND ${CMAKE_COMMAND} -E ${COPY_DIRECTORY} ${PROJECT_BINARY_DIR}/windows_runtime_deps/
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/windows_runtime_deps/
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
add_custom_target(nvim_dll_deps DEPENDS nvim
|
||||
add_custom_target(nvim_dll_deps DEPENDS nvim_bin
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/windows_runtime_deps
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
|
||||
@ -755,18 +760,11 @@ if(WIN32)
|
||||
add_custom_target(external_blobs
|
||||
COMMAND ${CMAKE_COMMAND} -P ${PROJECT_BINARY_DIR}/external_blobs.cmake)
|
||||
add_dependencies(nvim_runtime_deps external_blobs)
|
||||
else()
|
||||
add_custom_target(nvim_runtime_deps) # Stub target to avoid CMP0046.
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY ${BINARY_LIB_DIR})
|
||||
|
||||
# install treesitter parser if bundled
|
||||
if(EXISTS ${DEPS_PREFIX}/lib/nvim/parser)
|
||||
file(GLOB TREESITTER_PARSERS CONFIGURE_DEPENDS ${DEPS_PREFIX}/lib/nvim/parser/*)
|
||||
foreach(parser_lib ${TREESITTER_PARSERS})
|
||||
file(COPY ${parser_lib} DESTINATION ${BINARY_LIB_DIR}/parser)
|
||||
endforeach()
|
||||
add_custom_command(TARGET nvim_runtime_deps COMMAND ${CMAKE_COMMAND} -E ${COPY_DIRECTORY} ${DEPS_PREFIX}/lib/nvim/parser ${BINARY_LIB_DIR}/parser)
|
||||
endif()
|
||||
|
||||
install(DIRECTORY ${BINARY_LIB_DIR}
|
||||
@ -842,7 +840,7 @@ add_glob_target(
|
||||
|
||||
add_custom_target(copy_compile_commands
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/compile_commands.json ${PROJECT_SOURCE_DIR}/compile_commands.json)
|
||||
add_dependencies(copy_compile_commands nvim)
|
||||
add_dependencies(copy_compile_commands nvim_bin)
|
||||
add_dependencies(lintc-clang-tidy copy_compile_commands)
|
||||
add_dependencies(clang-analyzer copy_compile_commands)
|
||||
|
||||
@ -926,7 +924,7 @@ add_custom_command(
|
||||
OUTPUT ${MPACK_FILES}
|
||||
COMMAND ${PROJECT_SOURCE_DIR}/scripts/gen_vimdoc.py
|
||||
DEPENDS
|
||||
nvim
|
||||
nvim_bin
|
||||
${API_SOURCES}
|
||||
${LUA_SOURCES}
|
||||
${VIMDOC_FILES}
|
||||
@ -938,7 +936,7 @@ add_custom_command(
|
||||
add_custom_command(
|
||||
OUTPUT ${GEN_EVAL_TOUCH}
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${GEN_EVAL_TOUCH}
|
||||
COMMAND $<TARGET_FILE:nvim> -l ${PROJECT_SOURCE_DIR}/scripts/gen_eval_files.lua
|
||||
COMMAND $<TARGET_FILE:nvim_bin> -l ${PROJECT_SOURCE_DIR}/scripts/gen_eval_files.lua
|
||||
DEPENDS
|
||||
${API_METADATA}
|
||||
${NVIM_RUNTIME_DIR}/doc/api.mpack
|
||||
|
@ -53,16 +53,16 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
list(SORT NVIM_RELATIVE_SOURCES)
|
||||
add_custom_command(
|
||||
OUTPUT ${NVIM_POT}
|
||||
COMMAND $<TARGET_FILE:nvim> -u NONE -i NONE -n --headless --cmd "set cpo+=+"
|
||||
COMMAND $<TARGET_FILE:nvim_bin> -u NONE -i NONE -n --headless --cmd "set cpo+=+"
|
||||
-S ${CMAKE_CURRENT_SOURCE_DIR}/tojavascript.vim ${NVIM_POT} ${PROJECT_SOURCE_DIR}/runtime/optwin.vim
|
||||
COMMAND ${XGETTEXT_PRG} -o ${NVIM_POT} --default-domain=nvim
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2
|
||||
-D ${CMAKE_CURRENT_SOURCE_DIR} -D ${CMAKE_CURRENT_BINARY_DIR}
|
||||
${NVIM_RELATIVE_SOURCES} optwin.js
|
||||
COMMAND $<TARGET_FILE:nvim> -u NONE -i NONE -n --headless --cmd "set cpo+=+"
|
||||
COMMAND $<TARGET_FILE:nvim_bin> -u NONE -i NONE -n --headless --cmd "set cpo+=+"
|
||||
-S ${CMAKE_CURRENT_SOURCE_DIR}/fixfilenames.vim ${NVIM_POT} ../../../runtime/optwin.vim
|
||||
VERBATIM
|
||||
DEPENDS ${NVIM_SOURCES} nvim nvim_runtime_deps)
|
||||
DEPENDS ${NVIM_SOURCES} nvim_bin nvim_runtime_deps)
|
||||
|
||||
set(LANGUAGE_MO_FILES)
|
||||
set(UPDATE_PO_TARGETS)
|
||||
@ -88,7 +88,7 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
set(poFile ${CMAKE_CURRENT_SOURCE_DIR}/${name}.po)
|
||||
|
||||
add_custom_target(check-po-${name}
|
||||
COMMAND $<TARGET_FILE:nvim> -u NONE -n -e
|
||||
COMMAND $<TARGET_FILE:nvim_bin> -u NONE -n -e
|
||||
-S ${CMAKE_CURRENT_SOURCE_DIR}/check.vim
|
||||
-c "if error == 0 | q | endif" -c cq ${poFile} ||
|
||||
${CMAKE_COMMAND} -E echo "${name}.po failed the check."
|
||||
@ -182,6 +182,6 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
BuildMo(${LANGUAGE})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(translations ALL DEPENDS ${LANGUAGE_MO_FILES})
|
||||
add_custom_target(nvim_translations ALL DEPENDS ${LANGUAGE_MO_FILES})
|
||||
add_custom_target(update-po DEPENDS ${UPDATE_PO_TARGETS})
|
||||
endif()
|
||||
|
@ -7,7 +7,7 @@ set(TEST_OPTIONS
|
||||
-D CIRRUS_CI=$ENV{CIRRUS_CI}
|
||||
-D CI_BUILD=${CI_BUILD}
|
||||
-D DEPS_INSTALL_DIR=${DEPS_INSTALL_DIR}
|
||||
-D NVIM_PRG=$<TARGET_FILE:nvim>
|
||||
-D NVIM_PRG=$<TARGET_FILE:nvim_bin>
|
||||
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-D WORKING_DIR=${PROJECT_SOURCE_DIR})
|
||||
|
||||
@ -18,9 +18,8 @@ if(LUA_HAS_FFI)
|
||||
-D TEST_TYPE=unit
|
||||
${TEST_OPTIONS}
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||
DEPENDS nvim
|
||||
USES_TERMINAL)
|
||||
add_dependencies(unittest lua-dev-deps)
|
||||
add_dependencies(unittest lua-dev-deps nvim)
|
||||
else()
|
||||
message(WARNING "disabling unit tests: no Luajit FFI in ${LUA_PRG}")
|
||||
endif()
|
||||
@ -34,16 +33,15 @@ add_custom_target(functionaltest
|
||||
-D TEST_TYPE=functional
|
||||
${TEST_OPTIONS}
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||
DEPENDS nvim printenv-test printargs-test shell-test pwsh-test streams-test tty-test ${GENERATED_HELP_TAGS} ${GENERATED_SYN_VIM}
|
||||
DEPENDS printenv-test printargs-test shell-test pwsh-test streams-test tty-test
|
||||
USES_TERMINAL)
|
||||
add_dependencies(functionaltest lua-dev-deps nvim)
|
||||
|
||||
add_custom_target(benchmark
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D TEST_TYPE=benchmark
|
||||
${TEST_OPTIONS}
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
|
||||
DEPENDS nvim tty-test
|
||||
DEPENDS tty-test
|
||||
USES_TERMINAL)
|
||||
|
||||
add_dependencies(functionaltest lua-dev-deps)
|
||||
add_dependencies(benchmark lua-dev-deps)
|
||||
add_dependencies(benchmark lua-dev-deps nvim)
|
||||
|
@ -5,7 +5,7 @@ endif()
|
||||
if(WIN32)
|
||||
target_compile_definitions(test_lib INTERFACE MSWIN)
|
||||
endif()
|
||||
target_link_libraries(test_lib INTERFACE nvim)
|
||||
target_link_libraries(test_lib INTERFACE nvim_bin)
|
||||
|
||||
add_executable(tty-test EXCLUDE_FROM_ALL tty-test.c)
|
||||
add_executable(shell-test EXCLUDE_FROM_ALL shell-test.c)
|
||||
|
Loading…
Reference in New Issue
Block a user