From 4cf4ae93df6af09ef3a0df678bb3d154b65bf731 Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Thu, 2 Mar 2023 22:50:43 +0100 Subject: 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". --- cmake/FindIconv.cmake | 6 ++++ cmake/FindLibIntl.cmake | 80 ---------------------------------------------- cmake/FindLibLUV.cmake | 14 -------- cmake/FindLibTermkey.cmake | 5 --- cmake/FindLibUV.cmake | 69 --------------------------------------- cmake/FindLibintl.cmake | 80 ++++++++++++++++++++++++++++++++++++++++++++++ cmake/FindLibluv.cmake | 14 ++++++++ cmake/FindLibtermkey.cmake | 9 ++++++ cmake/FindLibuv.cmake | 69 +++++++++++++++++++++++++++++++++++++++ cmake/FindLibvterm.cmake | 22 +++++++++++++ cmake/FindLuaJit.cmake | 20 ------------ cmake/FindLuajit.cmake | 20 ++++++++++++ cmake/FindMsgpack.cmake | 22 +++++++++++-- cmake/FindTreeSitter.cmake | 5 --- cmake/FindTreesitter.cmake | 40 +++++++++++++++++++++++ cmake/FindUnibilium.cmake | 29 +++++++++++++++++ cmake/Findlibvterm.cmake | 22 ------------- cmake/Findunibilium.cmake | 29 ----------------- 18 files changed, 308 insertions(+), 247 deletions(-) delete mode 100644 cmake/FindLibIntl.cmake delete mode 100644 cmake/FindLibLUV.cmake delete mode 100644 cmake/FindLibTermkey.cmake delete mode 100644 cmake/FindLibUV.cmake create mode 100644 cmake/FindLibintl.cmake create mode 100644 cmake/FindLibluv.cmake create mode 100644 cmake/FindLibtermkey.cmake create mode 100644 cmake/FindLibuv.cmake create mode 100644 cmake/FindLibvterm.cmake delete mode 100644 cmake/FindLuaJit.cmake create mode 100644 cmake/FindLuajit.cmake delete mode 100644 cmake/FindTreeSitter.cmake create mode 100644 cmake/FindTreesitter.cmake create mode 100644 cmake/FindUnibilium.cmake delete mode 100644 cmake/Findlibvterm.cmake delete mode 100644 cmake/Findunibilium.cmake (limited to 'cmake') diff --git a/cmake/FindIconv.cmake b/cmake/FindIconv.cmake index b0ffa1bd75..48c1514ff2 100644 --- a/cmake/FindIconv.cmake +++ b/cmake/FindIconv.cmake @@ -6,3 +6,9 @@ find_library(ICONV_LIBRARY NAMES iconv libiconv) find_package_handle_standard_args(Iconv DEFAULT_MSG ICONV_INCLUDE_DIR) mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIBRARY) + +add_library(iconv INTERFACE) +target_include_directories(iconv SYSTEM BEFORE INTERFACE ${ICONV_INCLUDE_DIR}) +if(ICONV_LIBRARY) + target_link_libraries(iconv INTERFACE ${ICONV_LIBRARY}) +endif() diff --git a/cmake/FindLibIntl.cmake b/cmake/FindLibIntl.cmake deleted file mode 100644 index 8b512e5a7e..0000000000 --- a/cmake/FindLibIntl.cmake +++ /dev/null @@ -1,80 +0,0 @@ -include(CheckCSourceCompiles) -include(CheckVariableExists) - -# Append custom gettext path to CMAKE_PREFIX_PATH -# if installed via Mac Homebrew -if (CMAKE_HOST_APPLE) - find_program(HOMEBREW_PROG brew) - if (EXISTS ${HOMEBREW_PROG}) - execute_process(COMMAND ${HOMEBREW_PROG} --prefix gettext - OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE HOMEBREW_GETTEXT_PREFIX) - list(APPEND CMAKE_PREFIX_PATH "${HOMEBREW_GETTEXT_PREFIX}") - endif() -endif() - -find_path(LibIntl_INCLUDE_DIR - NAMES libintl.h - PATH_SUFFIXES gettext -) - -find_library(LibIntl_LIBRARY - NAMES intl libintl -) - -if (LibIntl_INCLUDE_DIR) - list(APPEND CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}") -endif() -# On some systems (linux+glibc) libintl is passively available. -# So only specify the library if one was found. -if (LibIntl_LIBRARY) - list(APPEND CMAKE_REQUIRED_LIBRARIES "${LibIntl_LIBRARY}") -endif() -if (MSVC) - list(APPEND CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) -endif() - -# On macOS, if libintl is a static library then we also need -# to link libiconv and CoreFoundation. -get_filename_component(LibIntl_EXT "${LibIntl_LIBRARY}" EXT) -if (APPLE AND (LibIntl_EXT STREQUAL ".a")) - set(LibIntl_STATIC TRUE) - find_library(CoreFoundation_FRAMEWORK CoreFoundation) - list(APPEND CMAKE_REQUIRED_LIBRARIES "${ICONV_LIBRARY}" "${CoreFoundation_FRAMEWORK}") -endif() - -check_c_source_compiles(" -#include - -int main(int argc, char** argv) { - gettext(\"foo\"); - ngettext(\"foo\", \"bar\", 1); - bindtextdomain(\"foo\", \"bar\"); - bind_textdomain_codeset(\"foo\", \"bar\"); - textdomain(\"foo\"); -}" HAVE_WORKING_LIBINTL) -if (MSVC) - list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) -endif() -if (LibIntl_STATIC) - list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${ICONV_LIBRARY}" "${CoreFoundation_FRAMEWORK}") -endif() -if (LibIntl_INCLUDE_DIR) - list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}") -endif() -if (LibIntl_LIBRARY) - list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${LibIntl_LIBRARY}") -endif() - -set(REQUIRED_VARIABLES LibIntl_LIBRARY LIBTERMKEY_INCLUDE_DIR) -if (HAVE_WORKING_LIBINTL) - # On some systems (linux+glibc) libintl is passively available. - # If HAVE_WORKING_LIBINTL then we consider the requirement satisfied. - unset(REQUIRED_VARIABLES) - - check_variable_exists(_nl_msg_cat_cntr HAVE_NL_MSG_CAT_CNTR) -endif() - -find_package_handle_standard_args(LibIntl DEFAULT_MSG - ${REQUIRED_VARIABLES}) -mark_as_advanced(LIBTERMKEY_INCLUDE_DIR LIBTERMKEY_LIBRARY) diff --git a/cmake/FindLibLUV.cmake b/cmake/FindLibLUV.cmake deleted file mode 100644 index 94d706e1fc..0000000000 --- a/cmake/FindLibLUV.cmake +++ /dev/null @@ -1,14 +0,0 @@ -find_path(LIBLUV_INCLUDE_DIR luv/luv.h) - -# Explicitly look for luv.so. #10407 -list(APPEND LIBLUV_NAMES luv_a luv libluv_a luv${CMAKE_SHARED_LIBRARY_SUFFIX}) - -find_library(LIBLUV_LIBRARY NAMES ${LIBLUV_NAMES}) - -set(LIBLUV_LIBRARIES ${LIBLUV_LIBRARY}) -set(LIBLUV_INCLUDE_DIRS ${LIBLUV_INCLUDE_DIR}) - -find_package_handle_standard_args(LibLUV DEFAULT_MSG - LIBLUV_LIBRARY LIBLUV_INCLUDE_DIR) - -mark_as_advanced(LIBLUV_INCLUDE_DIR LIBLUV_LIBRARY) diff --git a/cmake/FindLibTermkey.cmake b/cmake/FindLibTermkey.cmake deleted file mode 100644 index 368cd21354..0000000000 --- a/cmake/FindLibTermkey.cmake +++ /dev/null @@ -1,5 +0,0 @@ -find_path(LIBTERMKEY_INCLUDE_DIR termkey.h) -find_library(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 deleted file mode 100644 index a134ca0917..0000000000 --- a/cmake/FindLibUV.cmake +++ /dev/null @@ -1,69 +0,0 @@ -find_path(LIBUV_INCLUDE_DIR uv.h) - -list(APPEND LIBUV_NAMES uv_a uv) - -find_library(LIBUV_LIBRARY NAMES ${LIBUV_NAMES}) - -mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY) - -set(LIBUV_LIBRARIES ${LIBUV_LIBRARY}) -set(LIBUV_INCLUDE_DIRS ${LIBUV_INCLUDE_DIR}) - -include(CheckLibraryExists) - -check_library_exists(dl dlopen "dlfcn.h" HAVE_LIBDL) -if(HAVE_LIBDL) - list(APPEND LIBUV_LIBRARIES dl) -endif() - -check_library_exists(kstat kstat_lookup "kstat.h" HAVE_LIBKSTAT) -if(HAVE_LIBKSTAT) - list(APPEND LIBUV_LIBRARIES kstat) -endif() - -check_library_exists(kvm kvm_open "kvm.h" HAVE_LIBKVM) -if(HAVE_LIBKVM AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") - list(APPEND LIBUV_LIBRARIES kvm) -endif() - -check_library_exists(nsl gethostbyname "nsl.h" HAVE_LIBNSL) -if(HAVE_LIBNSL) - list(APPEND LIBUV_LIBRARIES nsl) -endif() - -check_library_exists(perfstat perfstat_cpu "libperfstat.h" HAVE_LIBPERFSTAT) -if(HAVE_LIBPERFSTAT) - list(APPEND LIBUV_LIBRARIES perfstat) -endif() - -check_library_exists(rt clock_gettime "time.h" HAVE_LIBRT) -if(HAVE_LIBRT) - list(APPEND LIBUV_LIBRARIES rt) -endif() - -check_library_exists(sendfile sendfile "" HAVE_LIBSENDFILE) -if(HAVE_LIBSENDFILE) - list(APPEND LIBUV_LIBRARIES sendfile) -endif() - -if(WIN32) - # check_library_exists() does not work for Win32 API calls in X86 due to name - # mangling calling conventions - list(APPEND LIBUV_LIBRARIES iphlpapi) - list(APPEND LIBUV_LIBRARIES psapi) - list(APPEND LIBUV_LIBRARIES userenv) - list(APPEND LIBUV_LIBRARIES ws2_32) -endif() - -find_package(Threads) -if(Threads_FOUND) - # TODO: Fix the cmake file to properly handle static deps for bundled builds. - # Meanwhile just include the threads library if CMake tells us there's one to - # use. - list(APPEND LIBUV_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) -endif() - -find_package_handle_standard_args(LibUV DEFAULT_MSG - LIBUV_LIBRARY LIBUV_INCLUDE_DIR) - -mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY) diff --git a/cmake/FindLibintl.cmake b/cmake/FindLibintl.cmake new file mode 100644 index 0000000000..630a3545fc --- /dev/null +++ b/cmake/FindLibintl.cmake @@ -0,0 +1,80 @@ +include(CheckCSourceCompiles) +include(CheckVariableExists) + +# Append custom gettext path to CMAKE_PREFIX_PATH +# if installed via Mac Homebrew +if (APPLE) + find_program(HOMEBREW_PRG brew) + if (EXISTS ${HOMEBREW_PRG}) + execute_process(COMMAND ${HOMEBREW_PRG} --prefix gettext + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE HOMEBREW_GETTEXT_PREFIX) + list(APPEND CMAKE_PREFIX_PATH "${HOMEBREW_GETTEXT_PREFIX}") + endif() +endif() + +find_path(LIBINTL_INCLUDE_DIR + NAMES libintl.h + PATH_SUFFIXES gettext +) + +find_library(LIBINTL_LIBRARY + NAMES intl libintl +) + +if (LIBINTL_INCLUDE_DIR) + list(APPEND CMAKE_REQUIRED_INCLUDES "${LIBINTL_INCLUDE_DIR}") +endif() +# On some systems (linux+glibc) libintl is passively available. +# So only specify the library if one was found. +if (LIBINTL_LIBRARY) + list(APPEND CMAKE_REQUIRED_LIBRARIES "${LIBINTL_LIBRARY}") +endif() +if (MSVC) + list(APPEND CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) +endif() + +# On macOS, if libintl is a static library then we also need +# to link libiconv and CoreFoundation. +get_filename_component(LibIntl_EXT "${LIBINTL_LIBRARY}" EXT) +if (APPLE AND (LibIntl_EXT STREQUAL ".a")) + set(LibIntl_STATIC TRUE) + find_library(CoreFoundation_FRAMEWORK CoreFoundation) + list(APPEND CMAKE_REQUIRED_LIBRARIES "${ICONV_LIBRARY}" "${CoreFoundation_FRAMEWORK}") +endif() + +check_c_source_compiles(" +#include + +int main(int argc, char** argv) { + gettext(\"foo\"); + ngettext(\"foo\", \"bar\", 1); + bindtextdomain(\"foo\", \"bar\"); + bind_textdomain_codeset(\"foo\", \"bar\"); + textdomain(\"foo\"); +}" HAVE_WORKING_LIBINTL) +if (MSVC) + list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) +endif() +if (LibIntl_STATIC) + list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${ICONV_LIBRARY}" "${CoreFoundation_FRAMEWORK}") +endif() +if (LIBINTL_INCLUDE_DIR) + list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${LIBINTL_INCLUDE_DIR}") +endif() +if (LIBINTL_LIBRARY) + list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${LIBINTL_LIBRARY}") +endif() + +set(REQUIRED_VARIABLES LIBINTL_LIBRARY LIBINTL_INCLUDE_DIR) +if (HAVE_WORKING_LIBINTL) + # On some systems (linux+glibc) libintl is passively available. + # If HAVE_WORKING_LIBINTL then we consider the requirement satisfied. + unset(REQUIRED_VARIABLES) + + check_variable_exists(_nl_msg_cat_cntr HAVE_NL_MSG_CAT_CNTR) +endif() + +find_package_handle_standard_args(Libintl DEFAULT_MSG + ${REQUIRED_VARIABLES}) +mark_as_advanced(LIBINTL_LIBRARY LIBINTL_INCLUDE_DIR) diff --git a/cmake/FindLibluv.cmake b/cmake/FindLibluv.cmake new file mode 100644 index 0000000000..9a74d5d0e1 --- /dev/null +++ b/cmake/FindLibluv.cmake @@ -0,0 +1,14 @@ +find_path(LIBLUV_INCLUDE_DIR luv/luv.h) + +# Explicitly look for luv.so. #10407 +list(APPEND LIBLUV_NAMES luv_a luv libluv_a luv${CMAKE_SHARED_LIBRARY_SUFFIX}) + +find_library(LIBLUV_LIBRARY NAMES ${LIBLUV_NAMES}) + +set(LIBLUV_LIBRARIES ${LIBLUV_LIBRARY}) +set(LIBLUV_INCLUDE_DIRS ${LIBLUV_INCLUDE_DIR}) + +find_package_handle_standard_args(Libluv DEFAULT_MSG + LIBLUV_LIBRARY LIBLUV_INCLUDE_DIR) + +mark_as_advanced(LIBLUV_INCLUDE_DIR LIBLUV_LIBRARY) diff --git a/cmake/FindLibtermkey.cmake b/cmake/FindLibtermkey.cmake new file mode 100644 index 0000000000..1fc8ac78f2 --- /dev/null +++ b/cmake/FindLibtermkey.cmake @@ -0,0 +1,9 @@ +find_path(LIBTERMKEY_INCLUDE_DIR termkey.h) +find_library(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) + +add_library(libtermkey INTERFACE) +target_include_directories(libtermkey SYSTEM BEFORE INTERFACE ${LIBTERMKEY_INCLUDE_DIR}) +target_link_libraries(libtermkey INTERFACE ${LIBTERMKEY_LIBRARY}) diff --git a/cmake/FindLibuv.cmake b/cmake/FindLibuv.cmake new file mode 100644 index 0000000000..0f6e80d915 --- /dev/null +++ b/cmake/FindLibuv.cmake @@ -0,0 +1,69 @@ +find_path(LIBUV_INCLUDE_DIR uv.h) + +list(APPEND LIBUV_NAMES uv_a uv) + +find_library(LIBUV_LIBRARY NAMES ${LIBUV_NAMES}) + +mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY) + +set(LIBUV_LIBRARIES ${LIBUV_LIBRARY}) +set(LIBUV_INCLUDE_DIRS ${LIBUV_INCLUDE_DIR}) + +include(CheckLibraryExists) + +check_library_exists(dl dlopen "dlfcn.h" HAVE_LIBDL) +if(HAVE_LIBDL) + list(APPEND LIBUV_LIBRARIES dl) +endif() + +check_library_exists(kstat kstat_lookup "kstat.h" HAVE_LIBKSTAT) +if(HAVE_LIBKSTAT) + list(APPEND LIBUV_LIBRARIES kstat) +endif() + +check_library_exists(kvm kvm_open "kvm.h" HAVE_LIBKVM) +if(HAVE_LIBKVM AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") + list(APPEND LIBUV_LIBRARIES kvm) +endif() + +check_library_exists(nsl gethostbyname "nsl.h" HAVE_LIBNSL) +if(HAVE_LIBNSL) + list(APPEND LIBUV_LIBRARIES nsl) +endif() + +check_library_exists(perfstat perfstat_cpu "libperfstat.h" HAVE_LIBPERFSTAT) +if(HAVE_LIBPERFSTAT) + list(APPEND LIBUV_LIBRARIES perfstat) +endif() + +check_library_exists(rt clock_gettime "time.h" HAVE_LIBRT) +if(HAVE_LIBRT) + list(APPEND LIBUV_LIBRARIES rt) +endif() + +check_library_exists(sendfile sendfile "" HAVE_LIBSENDFILE) +if(HAVE_LIBSENDFILE) + list(APPEND LIBUV_LIBRARIES sendfile) +endif() + +if(WIN32) + # check_library_exists() does not work for Win32 API calls in X86 due to name + # mangling calling conventions + list(APPEND LIBUV_LIBRARIES iphlpapi) + list(APPEND LIBUV_LIBRARIES psapi) + list(APPEND LIBUV_LIBRARIES userenv) + list(APPEND LIBUV_LIBRARIES ws2_32) +endif() + +find_package(Threads) +if(Threads_FOUND) + # TODO: Fix the cmake file to properly handle static deps for bundled builds. + # Meanwhile just include the threads library if CMake tells us there's one to + # use. + list(APPEND LIBUV_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) +endif() + +find_package_handle_standard_args(Libuv DEFAULT_MSG + LIBUV_LIBRARY LIBUV_INCLUDE_DIR) + +mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY) diff --git a/cmake/FindLibvterm.cmake b/cmake/FindLibvterm.cmake new file mode 100644 index 0000000000..ad2e682b30 --- /dev/null +++ b/cmake/FindLibvterm.cmake @@ -0,0 +1,22 @@ +find_path(LIBVTERM_INCLUDE_DIR vterm.h) +find_library(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") + string(REGEX MATCH "[0-9]+" VTERM_VERSION_MAJOR ${VTERM_VERSION_MAJOR}) + + file(STRINGS ${LIBVTERM_INCLUDE_DIR}/vterm.h VTERM_VERSION_MINOR REGEX "#define VTERM_VERSION_MINOR") + string(REGEX MATCH "[0-9]+" VTERM_VERSION_MINOR ${VTERM_VERSION_MINOR}) + + set(VTERM_VERSION ${VTERM_VERSION_MAJOR}.${VTERM_VERSION_MINOR}) +endif() + +find_package_handle_standard_args(Libvterm + REQUIRED_VARS LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY + VERSION_VAR VTERM_VERSION) + +add_library(libvterm INTERFACE) +target_include_directories(libvterm SYSTEM BEFORE INTERFACE ${LIBVTERM_INCLUDE_DIR}) +target_link_libraries(libvterm INTERFACE ${LIBVTERM_LIBRARY}) + +mark_as_advanced(LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY) diff --git a/cmake/FindLuaJit.cmake b/cmake/FindLuaJit.cmake deleted file mode 100644 index e3f47eee83..0000000000 --- a/cmake/FindLuaJit.cmake +++ /dev/null @@ -1,20 +0,0 @@ -find_path(LUAJIT_INCLUDE_DIR luajit.h - PATH_SUFFIXES luajit-2.0 luajit-2.1) - -if(MSVC) - list(APPEND LUAJIT_NAMES lua51) -elseif(MINGW) - list(APPEND LUAJIT_NAMES libluajit libluajit-5.1) -else() - list(APPEND LUAJIT_NAMES luajit-5.1) -endif() - -find_library(LUAJIT_LIBRARY NAMES ${LUAJIT_NAMES}) - -set(LUAJIT_LIBRARIES ${LUAJIT_LIBRARY}) -set(LUAJIT_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIR}) - -find_package_handle_standard_args(LuaJit DEFAULT_MSG - LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR) - -mark_as_advanced(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARY) diff --git a/cmake/FindLuajit.cmake b/cmake/FindLuajit.cmake new file mode 100644 index 0000000000..924e4c80d4 --- /dev/null +++ b/cmake/FindLuajit.cmake @@ -0,0 +1,20 @@ +find_path(LUAJIT_INCLUDE_DIR luajit.h + PATH_SUFFIXES luajit-2.0 luajit-2.1) + +if(MSVC) + list(APPEND LUAJIT_NAMES lua51) +elseif(MINGW) + list(APPEND LUAJIT_NAMES libluajit libluajit-5.1) +else() + list(APPEND LUAJIT_NAMES luajit-5.1) +endif() + +find_library(LUAJIT_LIBRARY NAMES ${LUAJIT_NAMES}) + +set(LUAJIT_LIBRARIES ${LUAJIT_LIBRARY}) +set(LUAJIT_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIR}) + +find_package_handle_standard_args(Luajit DEFAULT_MSG + LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR) + +mark_as_advanced(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARY) diff --git a/cmake/FindMsgpack.cmake b/cmake/FindMsgpack.cmake index 8187bce08d..43c4c3c16b 100644 --- a/cmake/FindMsgpack.cmake +++ b/cmake/FindMsgpack.cmake @@ -22,9 +22,25 @@ find_library(MSGPACK_LIBRARY NAMES ${MSGPACK_NAMES} mark_as_advanced(MSGPACK_INCLUDE_DIR MSGPACK_LIBRARY) -set(MSGPACK_LIBRARIES ${MSGPACK_LIBRARY}) -set(MSGPACK_INCLUDE_DIRS ${MSGPACK_INCLUDE_DIR}) - find_package_handle_standard_args(Msgpack REQUIRED_VARS MSGPACK_LIBRARY MSGPACK_INCLUDE_DIR VERSION_VAR MSGPACK_VERSION_STRING) + +add_library(msgpack INTERFACE) +target_include_directories(msgpack SYSTEM BEFORE INTERFACE ${MSGPACK_INCLUDE_DIR}) +target_link_libraries(msgpack INTERFACE ${MSGPACK_LIBRARY}) + +list(APPEND CMAKE_REQUIRED_INCLUDES "${MSGPACK_INCLUDE_DIR}") +check_c_source_compiles(" +#include + +int +main(void) +{ + return MSGPACK_OBJECT_FLOAT32; +} +" MSGPACK_HAS_FLOAT32) +list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${MSGPACK_INCLUDE_DIR}") +if(MSGPACK_HAS_FLOAT32) + target_compile_definitions(msgpack INTERFACE NVIM_MSGPACK_HAS_FLOAT32) +endif() diff --git a/cmake/FindTreeSitter.cmake b/cmake/FindTreeSitter.cmake deleted file mode 100644 index 2850a61b57..0000000000 --- a/cmake/FindTreeSitter.cmake +++ /dev/null @@ -1,5 +0,0 @@ -find_path(TreeSitter_INCLUDE_DIR tree_sitter/api.h) -find_library(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/FindTreesitter.cmake b/cmake/FindTreesitter.cmake new file mode 100644 index 0000000000..ef308ad5e1 --- /dev/null +++ b/cmake/FindTreesitter.cmake @@ -0,0 +1,40 @@ +find_path(TREESITTER_INCLUDE_DIR tree_sitter/api.h) +find_library(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) + +add_library(treesitter INTERFACE) +target_include_directories(treesitter SYSTEM BEFORE INTERFACE ${TREESITTER_INCLUDE_DIR}) +target_link_libraries(treesitter INTERFACE ${TREESITTER_LIBRARY}) + +list(APPEND CMAKE_REQUIRED_INCLUDES "${TREESITTER_INCLUDE_DIR}") +list(APPEND CMAKE_REQUIRED_LIBRARIES "${TREESITTER_LIBRARY}") +check_c_source_compiles(" +#include +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(treesitter INTERFACE NVIM_TS_HAS_SET_MATCH_LIMIT) +endif() +check_c_source_compiles(" +#include +#include +int +main(void) +{ + ts_set_allocator(malloc, calloc, realloc, free); + return 0; +} +" TS_HAS_SET_ALLOCATOR) +if(TS_HAS_SET_ALLOCATOR) + target_compile_definitions(treesitter INTERFACE NVIM_TS_HAS_SET_ALLOCATOR) +endif() +list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${TREESITTER_INCLUDE_DIR}") +list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${TREESITTER_LIBRARY}") diff --git a/cmake/FindUnibilium.cmake b/cmake/FindUnibilium.cmake new file mode 100644 index 0000000000..35a9016b19 --- /dev/null +++ b/cmake/FindUnibilium.cmake @@ -0,0 +1,29 @@ +find_path(UNIBILIUM_INCLUDE_DIR unibilium.h) +find_library(UNIBILIUM_LIBRARY unibilium) + +find_package_handle_standard_args(Unibilium + REQUIRED_VARS UNIBILIUM_INCLUDE_DIR UNIBILIUM_LIBRARY) + +add_library(unibilium INTERFACE) +target_include_directories(unibilium SYSTEM BEFORE INTERFACE ${UNIBILIUM_INCLUDE_DIR}) +target_link_libraries(unibilium INTERFACE ${UNIBILIUM_LIBRARY}) + +list(APPEND CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIR}") +list(APPEND CMAKE_REQUIRED_LIBRARIES "${UNIBILIUM_LIBRARY}") +check_c_source_compiles(" +#include + +int +main(void) +{ + unibi_str_from_var(unibi_var_from_str(\"\")); + return unibi_num_from_var(unibi_var_from_num(0)); +} +" UNIBI_HAS_VAR_FROM) +list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIR}") +list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${UNIBILIUM_LIBRARY}") +if(UNIBI_HAS_VAR_FROM) + target_compile_definitions(unibilium INTERFACE NVIM_UNIBI_HAS_VAR_FROM) +endif() + +mark_as_advanced(UNIBILIUM_INCLUDE_DIR UNIBILIUM_LIBRARY) diff --git a/cmake/Findlibvterm.cmake b/cmake/Findlibvterm.cmake deleted file mode 100644 index 4a2ae48ffa..0000000000 --- a/cmake/Findlibvterm.cmake +++ /dev/null @@ -1,22 +0,0 @@ -find_path(LIBVTERM_INCLUDE_DIR vterm.h) -find_library(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") - string(REGEX MATCH "[0-9]+" VTERM_VERSION_MAJOR ${VTERM_VERSION_MAJOR}) - - file(STRINGS ${LIBVTERM_INCLUDE_DIR}/vterm.h VTERM_VERSION_MINOR REGEX "#define VTERM_VERSION_MINOR") - string(REGEX MATCH "[0-9]+" VTERM_VERSION_MINOR ${VTERM_VERSION_MINOR}) - - set(VTERM_VERSION ${VTERM_VERSION_MAJOR}.${VTERM_VERSION_MINOR}) -endif() - -find_package_handle_standard_args(libvterm - REQUIRED_VARS LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY - VERSION_VAR VTERM_VERSION) - -add_library(libvterm INTERFACE) -target_include_directories(libvterm SYSTEM BEFORE INTERFACE ${LIBVTERM_INCLUDE_DIR}) -target_link_libraries(libvterm INTERFACE ${LIBVTERM_LIBRARY}) - -mark_as_advanced(LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY) diff --git a/cmake/Findunibilium.cmake b/cmake/Findunibilium.cmake deleted file mode 100644 index 3dbac31b5b..0000000000 --- a/cmake/Findunibilium.cmake +++ /dev/null @@ -1,29 +0,0 @@ -find_path(UNIBILIUM_INCLUDE_DIR unibilium.h) -find_library(UNIBILIUM_LIBRARY unibilium) - -find_package_handle_standard_args(unibilium - REQUIRED_VARS UNIBILIUM_INCLUDE_DIR UNIBILIUM_LIBRARY) - -add_library(unibilium INTERFACE) -target_include_directories(unibilium SYSTEM BEFORE INTERFACE ${UNIBILIUM_INCLUDE_DIR}) -target_link_libraries(unibilium INTERFACE ${UNIBILIUM_LIBRARY}) - -list(APPEND CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIR}") -list(APPEND CMAKE_REQUIRED_LIBRARIES "${UNIBILIUM_LIBRARY}") -check_c_source_compiles(" -#include - -int -main(void) -{ - unibi_str_from_var(unibi_var_from_str(\"\")); - return unibi_num_from_var(unibi_var_from_num(0)); -} -" UNIBI_HAS_VAR_FROM) -list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIR}") -list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${UNIBILIUM_LIBRARY}") -if(UNIBI_HAS_VAR_FROM) - target_compile_definitions(unibilium INTERFACE NVIM_UNIBI_HAS_VAR_FROM) -endif() - -mark_as_advanced(UNIBILIUM_INCLUDE_DIR UNIBILIUM_LIBRARY) -- cgit