mirror of
https://github.com/neovim/neovim.git
synced 2025-11-13 05:48:51 +00:00
Replace old-school cmake with the so-called "Modern CMake", meaning
preferring using targets and properties over directory settings and
variables. This allows greater flexibility, robustness and clarity over
how the code works.
The following deprecated commands will be replaced with their modern
alternatives that operates on a specific target, rather than all targets
in the current directory:
- add_compile_options -> target_compile_options
- include_directories -> target_include_directories
- link_libraries -> target_link_libraries
- add_definitions -> target_compile_definitions
There are mainly four main targets that we currently use: nvim, libnvim,
nvim-test (used by unittests) and ${texe} (used by
check-single-includes). The goal is to explicitly define the
dependencies of each target fully, rather than having everything be
dependent on everything else.
22 lines
603 B
CMake
22 lines
603 B
CMake
# TODO(dundargoc): FindIconv is shipped by default on cmake version 3.11+. This
|
|
# file can be removed once we decide to upgrade minimum cmake version.
|
|
|
|
# - Try to find iconv
|
|
# Once done, this will define
|
|
#
|
|
# Iconv_FOUND - system has iconv
|
|
# Iconv_INCLUDE_DIRS - the iconv include directories
|
|
# Iconv_LIBRARIES - link these to use iconv
|
|
|
|
include(LibFindMacros)
|
|
|
|
find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
|
|
find_library(ICONV_LIBRARY NAMES iconv libiconv)
|
|
|
|
set(Iconv_PROCESS_INCLUDES ICONV_INCLUDE_DIR)
|
|
if(ICONV_LIBRARY)
|
|
set(Iconv_PROCESS_LIBS ICONV_LIBRARY)
|
|
endif()
|
|
|
|
libfind_process(Iconv)
|