aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/CMakeLists.txt')
-rw-r--r--src/nvim/CMakeLists.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index d49b8dc416..7348e1475a 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -27,6 +27,17 @@ set(OPTIONS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genoptions.lua)
set(EVENTS_LIST_FILE ${PROJECT_SOURCE_DIR}/src/nvim/auevents.lua)
set(EX_CMDS_DEFS_FILE ${PROJECT_SOURCE_DIR}/src/nvim/ex_cmds.lua)
set(OPTIONS_LIST_FILE ${PROJECT_SOURCE_DIR}/src/nvim/options.lua)
+set(UNICODE_TABLES_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genunicodetables.lua)
+set(UNICODE_DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/unicode)
+set(DOWNLOAD_URL_BASE "http://unicode.org/Public/UNIDATA")
+set(UNICODEDATA_BASENAME UnicodeData.txt)
+set(CASEFOLDING_BASENAME CaseFolding.txt)
+set(EASTASIANWIDTH_BASENAME EastAsianWidth.txt)
+set(DOWNLOADED_UNICODEDATA ${UNICODE_DOWNLOAD_DIR}/${UNICODEDATA_BASENAME})
+set(DOWNLOADED_CASEFOLDING ${UNICODE_DOWNLOAD_DIR}/${CASEFOLDING_BASENAME})
+set(DOWNLOADED_EASTASIANWIDTH
+ ${UNICODE_DOWNLOAD_DIR}/${EASTASIANWIDTH_BASENAME})
+set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h)
include_directories(${GENERATED_DIR})
include_directories(${GENERATED_INCLUDES_DIR})
@@ -46,6 +57,8 @@ file(MAKE_DIRECTORY ${GENERATED_INCLUDES_DIR}/msgpack_rpc)
file(MAKE_DIRECTORY ${GENERATED_INCLUDES_DIR}/tui)
file(MAKE_DIRECTORY ${GENERATED_INCLUDES_DIR}/event)
+file(MAKE_DIRECTORY ${UNICODE_DOWNLOAD_DIR})
+
file(GLOB NEOVIM_SOURCES *.c os/*.c api/*.c api/private/*.c msgpack_rpc/*.c
tui/*.c event/*.c)
file(GLOB_RECURSE NEOVIM_HEADERS *.h)
@@ -143,6 +156,26 @@ foreach(sfile ${NEOVIM_SOURCES}
endif()
endforeach()
+file(DOWNLOAD ${DOWNLOAD_URL_BASE}/${UNICODEDATA_BASENAME}
+ ${DOWNLOADED_UNICODEDATA})
+file(DOWNLOAD ${DOWNLOAD_URL_BASE}/${CASEFOLDING_BASENAME}
+ ${DOWNLOADED_CASEFOLDING})
+file(DOWNLOAD ${DOWNLOAD_URL_BASE}/${EASTASIANWIDTH_BASENAME}
+ ${DOWNLOADED_EASTASIANWIDTH})
+
+add_custom_command(OUTPUT ${GENERATED_UNICODE_TABLES}
+ COMMAND ${LUA_PRG} ${UNICODE_TABLES_GENERATOR}
+ ${DOWNLOADED_UNICODEDATA}
+ ${DOWNLOADED_CASEFOLDING}
+ ${DOWNLOADED_EASTASIANWIDTH}
+ ${GENERATED_UNICODE_TABLES}
+ DEPENDS
+ ${UNICODE_TABLES_GENERATOR}
+ ${DOWNLOADED_UNICODEDATA}
+ ${DOWNLOADED_CASEFOLDING}
+ ${DOWNLOADED_EASTASIANWIDTH}
+)
+
add_custom_command(OUTPUT ${MSGPACK_DISPATCH}
COMMAND ${LUA_PRG} ${DISPATCH_GENERATOR} ${API_HEADERS} ${MSGPACK_DISPATCH}
DEPENDS
@@ -159,6 +192,7 @@ list(APPEND NEOVIM_GENERATED_SOURCES
"${GENERATED_EVENTS_ENUM}"
"${GENERATED_EVENTS_NAMES_MAP}"
"${GENERATED_OPTIONS}"
+ "${GENERATED_UNICODE_TABLES}"
)
add_custom_command(OUTPUT ${GENERATED_EX_CMDS_ENUM} ${GENERATED_EX_CMDS_DEFS}