diff options
author | dundargoc <gocdundar@gmail.com> | 2024-01-19 13:21:25 +0100 |
---|---|---|
committer | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2024-01-20 12:59:27 +0100 |
commit | f936a962d04f9937946018cc1386f20bda6fc1de (patch) | |
tree | d9830f132b1ee1de25ad8032b183a500a9baaeeb | |
parent | ed103cde28dd6aeb8d240240309c26d3f20060f4 (diff) | |
download | rneovim-f936a962d04f9937946018cc1386f20bda6fc1de.tar.gz rneovim-f936a962d04f9937946018cc1386f20bda6fc1de.tar.bz2 rneovim-f936a962d04f9937946018cc1386f20bda6fc1de.zip |
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`.
-rw-r--r-- | CMakeLists.txt | 20 | ||||
-rw-r--r-- | cmake.config/CMakeLists.txt | 4 | ||||
-rw-r--r-- | runtime/CMakeLists.txt | 12 | ||||
-rw-r--r-- | src/nvim/CMakeLists.txt | 78 | ||||
-rw-r--r-- | src/nvim/po/CMakeLists.txt | 10 | ||||
-rw-r--r-- | test/CMakeLists.txt | 14 | ||||
-rw-r--r-- | test/functional/fixtures/CMakeLists.txt | 2 |
7 files changed, 72 insertions, 68 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d64d1fc723..6dedbfd714 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/cmake.config/CMakeLists.txt b/cmake.config/CMakeLists.txt index d333cc216a..f3cc803cf5 100644 --- a/cmake.config/CMakeLists.txt +++ b/cmake.config/CMakeLists.txt @@ -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() diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index a44713d4ce..c9655ad9b9 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -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} diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 98a9301da6..451ab7c303 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -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 diff --git a/src/nvim/po/CMakeLists.txt b/src/nvim/po/CMakeLists.txt index 68e572911c..a4c95df3f1 100644 --- a/src/nvim/po/CMakeLists.txt +++ b/src/nvim/po/CMakeLists.txt @@ -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() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index da2c29010b..3ae11bd1a7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -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) diff --git a/test/functional/fixtures/CMakeLists.txt b/test/functional/fixtures/CMakeLists.txt index 6e64b1e4dc..150407fe46 100644 --- a/test/functional/fixtures/CMakeLists.txt +++ b/test/functional/fixtures/CMakeLists.txt @@ -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) |