aboutsummaryrefslogtreecommitdiff
path: root/cmake/Findunibilium.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Findunibilium.cmake')
-rw-r--r--cmake/Findunibilium.cmake27
1 files changed, 27 insertions, 0 deletions
diff --git a/cmake/Findunibilium.cmake b/cmake/Findunibilium.cmake
new file mode 100644
index 0000000000..7bfbcba942
--- /dev/null
+++ b/cmake/Findunibilium.cmake
@@ -0,0 +1,27 @@
+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 <unibilium.h>
+
+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()