diff options
| author | Lukas Fürmetz <fuermetz@mailbox.org> | 2018-12-14 15:32:21 +0100 |
|---|---|---|
| committer | Lukas Fürmetz <fuermetz@mailbox.org> | 2018-12-14 15:32:21 +0100 |
| commit | a29efa393f4c56b3347e200b991912e71f83bde4 (patch) | |
| tree | a29cf79ef380d553b47e33fd5391f8cd69affa8d | |
| parent | ec958982b889b4ea65216d70fa8128dcd413256a (diff) | |
Vendor libvtermvendor_libvterm
| -rw-r--r-- | .gitmodules | 3 | ||||
| -rw-r--r-- | CMakeLists.txt | 58 | ||||
| m--------- | vendor/libvterm | 0 |
3 files changed, 41 insertions, 20 deletions
diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..867d7a9 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libvterm"] + path = vendor/libvterm + url = https://github.com/neovim/libvterm diff --git a/CMakeLists.txt b/CMakeLists.txt index 521ce54..c06967e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,27 +1,8 @@ cmake_minimum_required(VERSION 3.0.2) +include(ExternalProject) project(emacs-libvterm C) -# Look for the header file. -find_path(LIBVTERM_INCLUDE_DIR NAMES - vterm.h - ) - -if(NOT LIBVTERM_INCLUDE_DIR) - message(FATAL_ERROR "vterm.h not found") -endif() - -find_library(LIBVTERM_LIBRARY NAMES - vterm - libvterm - ) - -if(NOT LIBVTERM_LIBRARY) - message(FATAL_ERROR "libvterm not found") -endif() - -include_directories(${LIBVTERM_INCLUDE_DIR}) - add_library(vterm-module MODULE vterm-module.c utf8.c elisp.c) set_target_properties(vterm-module PROPERTIES C_STANDARD 99 @@ -30,6 +11,43 @@ set_target_properties(vterm-module PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} ) +# Look for the header file. +option(USE_SYSTEM_LIBVTERM "Use system libvterm instead of the vendored version." OFF) + +if(USE_SYSTEM_LIBVTERM) + find_path(LIBVTERM_INCLUDE_DIR NAMES + vterm.h + ) + + if(NOT LIBVTERM_INCLUDE_DIR) + message(FATAL_ERROR "vterm.h not found") + endif() + + find_library(LIBVTERM_LIBRARY NAMES + vterm + libvterm + ) + + if(NOT LIBVTERM_LIBRARY) + message(FATAL_ERROR "libvterm not found") + endif() +else() + ExternalProject_add(libvterm + PREFIX ${PROJECT_SOURCE_DIR}/vendor/libvterm + SOURCE_DIR ${PROJECT_SOURCE_DIR}/vendor/libvterm + CONFIGURE_COMMAND "" + BUILD_COMMAND make + BUILD_IN_SOURCE ON + INSTALL_COMMAND "") + + set(LIBVTERM_INCLUDE_DIR vendor/libvterm/include) + set(LIBVTERM_LIBRARY ${PROJECT_SOURCE_DIR}/vendor/libvterm/.libs/libvterm.a) + + add_dependencies(vterm-module libvterm) +endif() + +include_directories(${LIBVTERM_INCLUDE_DIR}) + # Link with libvterm target_link_libraries(vterm-module ${LIBVTERM_LIBRARY}) diff --git a/vendor/libvterm b/vendor/libvterm new file mode 160000 +Subproject 7a3913a4f465fbf4f59a049f43da8d97fc573a9 |
