aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake.deps/cmake/BuildLuajit.cmake8
-rw-r--r--cmake.deps/cmake/RemoveFiles.cmake5
-rw-r--r--cmake/Find.cmake39
-rw-r--r--cmake/FindIconv.cmake4
-rw-r--r--cmake/FindLibtermkey.cmake4
-rw-r--r--cmake/FindLibuv.cmake4
-rw-r--r--cmake/FindLibvterm.cmake4
-rw-r--r--cmake/FindLpeg.cmake2
-rw-r--r--cmake/FindLuajit.cmake4
-rw-r--r--cmake/FindLuv.cmake4
-rw-r--r--cmake/FindMsgpack.cmake4
-rw-r--r--cmake/FindTreesitter.cmake4
-rw-r--r--cmake/FindUnibilium.cmake4
14 files changed, 59 insertions, 32 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f0303be3eb..1ca6e7ce59 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,6 +31,7 @@ include(FindPackageHandleStandardArgs)
include(GNUInstallDirs)
include(Deps)
+include(Find)
include(InstallHelpers)
include(PreventInTreeBuilds)
include(Util)
diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake
index c0f9c1ab8e..e97d773c3c 100644
--- a/cmake.deps/cmake/BuildLuajit.cmake
+++ b/cmake.deps/cmake/BuildLuajit.cmake
@@ -141,11 +141,3 @@ elseif(MSVC)
else()
message(FATAL_ERROR "Trying to build luajit in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif()
-
-if (NOT MSVC)
- add_custom_target(clean_shared_libraries_luajit ALL
- COMMAND ${CMAKE_COMMAND}
- -D REMOVE_FILE_GLOB=${DEPS_LIB_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}*
- -P ${PROJECT_SOURCE_DIR}/cmake/RemoveFiles.cmake)
- add_dependencies(clean_shared_libraries_luajit luajit)
-endif()
diff --git a/cmake.deps/cmake/RemoveFiles.cmake b/cmake.deps/cmake/RemoveFiles.cmake
deleted file mode 100644
index 88e2bc70a6..0000000000
--- a/cmake.deps/cmake/RemoveFiles.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-file(GLOB_RECURSE FILES_TO_REMOVE ${REMOVE_FILE_GLOB})
-
-if(FILES_TO_REMOVE)
- file(REMOVE ${FILES_TO_REMOVE})
-endif()
diff --git a/cmake/Find.cmake b/cmake/Find.cmake
new file mode 100644
index 0000000000..b363052510
--- /dev/null
+++ b/cmake/Find.cmake
@@ -0,0 +1,39 @@
+# Functions to aid the built-in find_ functions
+
+# Same as find_path, but always search in .deps directory first and then everything else.
+function(find_path2)
+ find_path_nvim(${ARGV})
+ find_path(${ARGV})
+endfunction()
+
+function(find_path_nvim)
+ set(CMAKE_FIND_FRAMEWORK NEVER)
+ set(CMAKE_FIND_APPBUNDLE NEVER)
+ find_path(${ARGV} NO_CMAKE_SYSTEM_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH)
+endfunction()
+
+# Same as find_library, but with the following search order:
+# 1. Only search in .deps directory. Only search for static libraries.
+# 2. Only search in .deps directory. Search all libraries
+# 3. Search everywhere, all libraries
+function(find_library2)
+ find_library_nvim(STATIC ${ARGV})
+ find_library_nvim(${ARGV})
+ find_library(${ARGV})
+endfunction()
+
+function(find_library_nvim)
+ cmake_parse_arguments(ARG
+ "STATIC"
+ ""
+ ""
+ ${ARGN})
+ list(REMOVE_ITEM ARGN STATIC)
+
+ if(ARG_STATIC)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
+ set(CMAKE_FIND_FRAMEWORK NEVER)
+ set(CMAKE_FIND_APPBUNDLE NEVER)
+ find_library(${ARGN} NO_CMAKE_SYSTEM_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH)
+endfunction()
diff --git a/cmake/FindIconv.cmake b/cmake/FindIconv.cmake
index 48c1514ff2..e607c59cf6 100644
--- a/cmake/FindIconv.cmake
+++ b/cmake/FindIconv.cmake
@@ -1,8 +1,8 @@
# 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.
-find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
-find_library(ICONV_LIBRARY NAMES iconv libiconv)
+find_path2(ICONV_INCLUDE_DIR NAMES iconv.h)
+find_library2(ICONV_LIBRARY NAMES iconv libiconv)
find_package_handle_standard_args(Iconv DEFAULT_MSG
ICONV_INCLUDE_DIR)
mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIBRARY)
diff --git a/cmake/FindLibtermkey.cmake b/cmake/FindLibtermkey.cmake
index 1fc8ac78f2..8039ae7994 100644
--- a/cmake/FindLibtermkey.cmake
+++ b/cmake/FindLibtermkey.cmake
@@ -1,5 +1,5 @@
-find_path(LIBTERMKEY_INCLUDE_DIR termkey.h)
-find_library(LIBTERMKEY_LIBRARY NAMES termkey)
+find_path2(LIBTERMKEY_INCLUDE_DIR termkey.h)
+find_library2(LIBTERMKEY_LIBRARY NAMES termkey)
find_package_handle_standard_args(Libtermkey DEFAULT_MSG
LIBTERMKEY_LIBRARY LIBTERMKEY_INCLUDE_DIR)
mark_as_advanced(LIBTERMKEY_INCLUDE_DIR LIBTERMKEY_LIBRARY)
diff --git a/cmake/FindLibuv.cmake b/cmake/FindLibuv.cmake
index fa1d51370f..19315388dd 100644
--- a/cmake/FindLibuv.cmake
+++ b/cmake/FindLibuv.cmake
@@ -1,5 +1,5 @@
-find_path(LIBUV_INCLUDE_DIR uv.h)
-find_library(LIBUV_LIBRARY NAMES uv_a uv)
+find_path2(LIBUV_INCLUDE_DIR uv.h)
+find_library2(LIBUV_LIBRARY NAMES uv_a uv)
set(LIBUV_LIBRARIES ${LIBUV_LIBRARY})
diff --git a/cmake/FindLibvterm.cmake b/cmake/FindLibvterm.cmake
index ad2e682b30..f591f6853f 100644
--- a/cmake/FindLibvterm.cmake
+++ b/cmake/FindLibvterm.cmake
@@ -1,5 +1,5 @@
-find_path(LIBVTERM_INCLUDE_DIR vterm.h)
-find_library(LIBVTERM_LIBRARY vterm)
+find_path2(LIBVTERM_INCLUDE_DIR vterm.h)
+find_library2(LIBVTERM_LIBRARY vterm)
if(LIBVTERM_INCLUDE_DIR AND EXISTS "${LIBVTERM_INCLUDE_DIR}/vterm.h")
file(STRINGS ${LIBVTERM_INCLUDE_DIR}/vterm.h VTERM_VERSION_MAJOR REGEX "#define VTERM_VERSION_MAJOR")
diff --git a/cmake/FindLpeg.cmake b/cmake/FindLpeg.cmake
index 43c839da9a..3d0ff5929d 100644
--- a/cmake/FindLpeg.cmake
+++ b/cmake/FindLpeg.cmake
@@ -1,4 +1,4 @@
-find_library(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a lpeg${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
+find_library2(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a lpeg${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
find_package_handle_standard_args(Lpeg DEFAULT_MSG LPEG_LIBRARY)
mark_as_advanced(LPEG_LIBRARY)
diff --git a/cmake/FindLuajit.cmake b/cmake/FindLuajit.cmake
index f06b7ca6ad..457ceafdd4 100644
--- a/cmake/FindLuajit.cmake
+++ b/cmake/FindLuajit.cmake
@@ -1,4 +1,4 @@
-find_path(LUAJIT_INCLUDE_DIR luajit.h
+find_path2(LUAJIT_INCLUDE_DIR luajit.h
PATH_SUFFIXES luajit-2.1)
if(MSVC)
@@ -9,7 +9,7 @@ else()
list(APPEND LUAJIT_NAMES luajit-5.1)
endif()
-find_library(LUAJIT_LIBRARY NAMES ${LUAJIT_NAMES})
+find_library2(LUAJIT_LIBRARY NAMES ${LUAJIT_NAMES})
find_package_handle_standard_args(Luajit DEFAULT_MSG
LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR)
diff --git a/cmake/FindLuv.cmake b/cmake/FindLuv.cmake
index 7544859ceb..a4408fe659 100644
--- a/cmake/FindLuv.cmake
+++ b/cmake/FindLuv.cmake
@@ -1,5 +1,5 @@
-find_path(LUV_INCLUDE_DIR luv/luv.h PATH_SUFFIXES lua5.1)
-find_library(LUV_LIBRARY NAMES luv_a luv libluv_a luv${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
+find_path2(LUV_INCLUDE_DIR luv/luv.h PATH_SUFFIXES lua5.1)
+find_library2(LUV_LIBRARY NAMES luv_a luv libluv_a luv${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
find_package_handle_standard_args(Luv DEFAULT_MSG
LUV_LIBRARY LUV_INCLUDE_DIR)
diff --git a/cmake/FindMsgpack.cmake b/cmake/FindMsgpack.cmake
index a2b0174f8d..9ef18122ab 100644
--- a/cmake/FindMsgpack.cmake
+++ b/cmake/FindMsgpack.cmake
@@ -1,4 +1,4 @@
-find_path(MSGPACK_INCLUDE_DIR msgpack/version_master.h)
+find_path2(MSGPACK_INCLUDE_DIR msgpack/version_master.h)
if(MSGPACK_INCLUDE_DIR)
file(READ ${MSGPACK_INCLUDE_DIR}/msgpack/version_master.h msgpack_version_h)
@@ -10,7 +10,7 @@ else()
set(MSGPACK_VERSION_STRING)
endif()
-find_library(MSGPACK_LIBRARY NAMES msgpackc msgpack msgpackc_import msgpack-c
+find_library2(MSGPACK_LIBRARY NAMES msgpackc msgpack msgpackc_import msgpack-c
NAMES_PER_DIR)
mark_as_advanced(MSGPACK_INCLUDE_DIR MSGPACK_LIBRARY)
diff --git a/cmake/FindTreesitter.cmake b/cmake/FindTreesitter.cmake
index 23214283c0..8dac13337b 100644
--- a/cmake/FindTreesitter.cmake
+++ b/cmake/FindTreesitter.cmake
@@ -1,5 +1,5 @@
-find_path(TREESITTER_INCLUDE_DIR tree_sitter/api.h)
-find_library(TREESITTER_LIBRARY NAMES tree-sitter)
+find_path2(TREESITTER_INCLUDE_DIR tree_sitter/api.h)
+find_library2(TREESITTER_LIBRARY NAMES tree-sitter)
find_package_handle_standard_args(Treesitter DEFAULT_MSG
TREESITTER_LIBRARY TREESITTER_INCLUDE_DIR)
mark_as_advanced(TREESITTER_LIBRARY TREESITTER_INCLUDE_DIR)
diff --git a/cmake/FindUnibilium.cmake b/cmake/FindUnibilium.cmake
index 91906e6660..4f62815793 100644
--- a/cmake/FindUnibilium.cmake
+++ b/cmake/FindUnibilium.cmake
@@ -1,5 +1,5 @@
-find_path(UNIBILIUM_INCLUDE_DIR unibilium.h)
-find_library(UNIBILIUM_LIBRARY unibilium)
+find_path2(UNIBILIUM_INCLUDE_DIR unibilium.h)
+find_library2(UNIBILIUM_LIBRARY unibilium)
find_package_handle_standard_args(Unibilium
REQUIRED_VARS UNIBILIUM_INCLUDE_DIR UNIBILIUM_LIBRARY)